aruco | Aruco marker detector and pose estimation | Robotics library

 by   tentone C++ Version: Current License: MIT

kandi X-RAY | aruco Summary

kandi X-RAY | aruco Summary

aruco is a C++ library typically used in Automation, Robotics, OpenCV applications. aruco has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.

Aruco marker detector and pose estimation for AR and Robotics with ROS support
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              aruco has a low active ecosystem.
              It has 66 star(s) with 21 fork(s). There are 6 watchers for this library.
              OutlinedDot
              It had no major release in the last 6 months.
              aruco has no issues reported. There are no pull requests.
              It has a neutral sentiment in the developer community.
              The latest version of aruco is current.

            kandi-Quality Quality

              aruco has 0 bugs and 0 code smells.

            kandi-Security Security

              aruco has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
              aruco code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              aruco is licensed under the MIT License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              aruco releases are not available. You will need to build from source code and install.
              It has 17 lines of code, 0 functions and 1 files.
              It has low code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
            Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of aruco
            Get all kandi verified functions for this library.

            aruco Key Features

            No Key Features are available at this moment for aruco.

            aruco Examples and Code Snippets

            No Code Snippets are available at this moment for aruco.

            Community Discussions

            QUESTION

            Make can't find my opencv.hpp file - how to direct it?
            Asked 2022-Apr-15 at 16:36

            I have a dual camera hardware module for my raspberry pi zero. It requires some software to get working though. I have cloned the required repo from, as seen here:

            ...

            ANSWER

            Answered 2022-Apr-15 at 16:36

            This has nothing to do with make per se. The problem is that your compiler invocation is wrong for the include statement you have.

            You can debug this yourself: first, see the command make invoked:

            Source https://stackoverflow.com/questions/71886375

            QUESTION

            Using AprilTag python library on Windows 10?
            Asked 2022-Mar-15 at 00:11

            I'm in need of a fiducial marker for a rover project as its primary control is image processing for steering down a driveway and when it gets to the end i need it to go to a precise location.

            I was going to use ArUco tags but my version of OpenCV for the OpenVino framework doesn't support it. Then i tried to use AprilTags but i couldn't get it to install on my Windows 10 machine and later discovered its not supported on that OS. While my robot uses RaspPi i absolutely need my desktop environment for development and debugging.

            Anyone get AprilTag library compiled for Windows Python 3? If not does anyone know of an alternate tag library (not ArUco) that is similar? I don't need anything fancy here - just something printed on a 4" x 4" (ish) piece of paper that my image processing pipeline can easily pick out of the image and i can then navigate to it. I don't even need to encode data on it - just need something unique to lock into.

            Much appreciated!

            ...

            ANSWER

            Answered 2022-Jan-04 at 07:43

            Intel® Distribution of OpenVINO™ Toolkit can also be installed through PyPI repository instead of installing the binary package that had compiled OpenCV community version.

            • Runtime package with the Inference Engine inside.
            • Developer package that includes the runtime package as a dependency, Model Optimizer, Accuracy Checker and Post-Training Optimization Tool.

            Next, you can get the ArUco library that included in the opencv-contrib-python package which you can install via:

            Source https://stackoverflow.com/questions/70545451

            QUESTION

            Error using board_create for aruco markers due to objPoints type
            Asked 2022-Feb-28 at 12:16

            I want to be able to detect aruco markers on a 3D object and I'm therefore trying to create my own custom aruco board in OpenCV, with the locations of the markers.

            I have produced a snippet of the code, to reproduce the error.

            ...

            ANSWER

            Answered 2022-Feb-28 at 12:16

            I managed to solve the problem myself. The problem was I was running a too old version of OpenCV. The version needs to be 3.4.x or above since it was a bug that got fixed in 3.4.

            Source https://stackoverflow.com/questions/71294233

            QUESTION

            Error while trying to make Camera Calibration using Charuco Board (OpenCV, C++)
            Asked 2022-Feb-22 at 07:55

            I'm trying to find distortion coeffitients using Charuco Board from the Aruco OpenCV library. I'm using Qt and OpenCV libraries compiled for Qt.

            First I've needed to do is to create the Charuco Board. I've done it using this:

            ...

            ANSWER

            Answered 2022-Feb-22 at 07:55

            The problem was in OpenCV library. Maybe it was badly compiled, or the problem is in the library itself. I have used OpenCV version 4.5.3 before. Then I compiled 4.5.4 version, and the program started to work well.

            Source https://stackoverflow.com/questions/71157409

            QUESTION

            ArUco Markers are not detected
            Asked 2022-Feb-16 at 07:56

            I'm trying to detect the ArUco markers in this image:

            using this code:

            ...

            ANSWER

            Answered 2022-Feb-16 at 07:56

            The picture is a mirror image of the markers.

            ArUco markers will not be decoded when they're mirrored.

            Prevent/undo the mirroring. Find the device/driver setting that does this.

            flipped = cv.flip(img, 1) flips the image around the Y-axis.

            Source https://stackoverflow.com/questions/71126639

            QUESTION

            Rotation/translation vector incorrect
            Asked 2022-Feb-03 at 13:52

            I calibrated a camera according to:

            ...

            ANSWER

            Answered 2022-Feb-01 at 18:37

            Rt is just the transformation (rotation, translation) from world to camera frame.

            You expected a projection?

            If you want to project the point, you still need to apply the camera matrix (and then maybe the distortion coefficients to be precise, but let's not get into that).

            Source https://stackoverflow.com/questions/70940724

            QUESTION

            ArUco Markers, pose estimatimation- Exactly for which point the traslation and rotation is given?
            Asked 2022-Feb-03 at 03:36

            I Detected the ArUco marker and estimated the pose. See the image below. However, Xt (X translation) I get is a positive value. According to the drawAxis function, the positive direction is away from the image center. So I thought it was supposed to be a negative value. Why I am getting positive instead.

            My camera is about 120 mm away from the imaging surface. But I am getting Zt (Z translation) in the range of 650 mm. Is pose estimation giving the pose of marker with respect to physical camera or image plane center? I didn't get why the Zt is so high.

            I kept measuring Pose while changing Z, and obtained roll, pitch, yaw. I noticed roll ( rotation w.r.t. cam X-axis) is changing its sign back and forth magnitude change 166-178, but the sign of Xt did not change with the sign change in roll. Any thoughts on why it behaves like that? Any suggestion to get more consistent data?

            ...

            ANSWER

            Answered 2022-Feb-02 at 14:17

            Without checking all the code (looks roughly okay), a few basics about OpenCV and aruco:

            Both use right-handed coordinate systems. Thumb X, index Y, middle Z.

            OpenCV uses X right, Y down, Z far, for screen/camera frames. Origin for screens and pictures is the top left corner. For cameras, the origin is the center of the pinhole model, which would be the center of the aperture. I can't comment on lenses or lens systems. Assume the lens center is the origin. That's probably close enough.

            Aruco uses X right, Y far, Z up, if the marker is lying flat on a table. Origin is in the center of the marker. The top left corner of the marker is considered the "first" corner.

            The marker can be considered to have its own coordinate system/frame.

            The pose given by rvec and tvec is the pose of the marker in the camera frame. That means np.linalg.norm(tvec) gives you the direct distance from the camera to the marker's center. tvec's Z is just the component parallel to optical axis.

            If the marker is in the right half of the picture ("half" defined by camera matrix's cx,cy), you'd expect tvec's X to grow. Lower half, Y positive/growing.

            Conversely, that transformation transforms marker-local coordinates to camera-local. Try transforming some marker-local points, such as origin or points on the axes. I believe that cv::transform can help with that. Using OpenCV's projectPoints to map 3D space points to 2D image points, you can then draw the marker's axes, or a cube on top of it, or anything you like.

            Say the marker sits upright and faces the camera dead-on. When you consider the frame triads of the marker and the camera in space ("world" space), both would be X "right", but one's Y and Z are opposite the other's Y and Z, so you'd expect to see a rotation around the X axis by half a turn (rotating Z and Y).

            You could imagine the transformation to happen like this:

            • initially the camera looks through the marker, from the marker's back out into the world. The camera would be "upside down". The camera sees marker-space.
            • the pose's rotation component rotates the whole marker-local world around the camera's origin. Seen from the world frame (point of reference), the camera rotates, into an attitude you'd find natural.
            • the pose's translation moves the marker's world out in front of the camera (Z being positive), or equivalently, the camera backs away from the marker.

            If you get implausible values, check aruco_marker_side_length and camera matrix. f would be around 500-3000 for typical resolutions (VGA-4k) and fields of view (60-80 degrees).

            Source https://stackoverflow.com/questions/70956515

            QUESTION

            ArUco markers, why does the pose change when I change image resolution?
            Asked 2022-Feb-01 at 18:53

            I use this reference https://automaticaddison.com/how-to-perform-pose-estimation-using-an-aruco-marker/ to estimate pose of a marker.

            When I obtain cam matrix and distortion matrix I used the full camera resolution.

            However, when I change the resolution (image size) before pose estimation, I am getting different results. I am not sure why and which resolution would be correct to use.

            Should we always use the same resolution as what was used for camera calibration?

            I expected the pose to be somewhat independent from image size other than minor changes. Any thoughts?

            ...

            ANSWER

            Answered 2022-Feb-01 at 18:51

            Yes, always use the same resolution.

            One could recalculate the camera matrix and distortion coefficients to fit a different resolution but that's a hassle, and requires some knowledge of how the camera made these pictures (binning, cropping). Unless you understand the math behind it, just stick with same resolution.

            Source https://stackoverflow.com/questions/70943254

            QUESTION

            Problem with Aruco markers detection using Python
            Asked 2021-Dec-22 at 23:27

            I try detect Aruco codes on images. I'm working at Jupyter Notebook in Docker, so I working with images, not videos and do not have access to some functions (for example cv2.imshow('QueryImage', QueryImg) )

            Based on code: https://github.com/kyle-bersani/opencv-examples/blob/master/SimpleMarkerDetection/DetectMarkersAndPrint.py

            I prepare this script:

            ...

            ANSWER

            Answered 2021-Dec-22 at 23:27

            Now everything working, code after improvements:

            Source https://stackoverflow.com/questions/70394023

            QUESTION

            Why is detection rate of Charucos in cv2.aruco.detectMarkers() so poor?
            Asked 2021-Nov-15 at 09:00

            I am in trouble figuring out why cv2.aruco.detectMarkers() has problems in finding more than just a few markers with my calibration board. Playing around with the paramters didn't essentially improve the quality. The dictionary is correct as I tried it with the digital template before printing. Here is, what I do to detect CHAruco markers from a real image:

            ...

            ANSWER

            Answered 2021-Nov-10 at 05:59

            Without looking at your code I may say that the image quality and perspective you selected is a bit poor. You may try to work with more clear view of your markers. For instance, hang the markers on the wall take one or two step back and try to take photo of it with better light and if not necessary do not add extra rotation, and keep the contrast high :). This will probably give better results.

            Source https://stackoverflow.com/questions/69879720

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install aruco

            You can download it from GitHub.

            Support

            When debug parameter is se to true the node creates a new cv window to show debug information. When set opencv coordinates are used, otherwise ros coords are used (X+ depth, Z+ height, Y+ lateral). Cosine limit used during the quad detection phase. The bigger the value more distortion tolerant the square detection will be. Adaptive threshold base block size. Minimum area considered for aruco markers. Should be a value high enough to filter blobs out but detect the smallest marker necessary. Used to indicate if the camera should be calibrated using external message of use default calib parameters. Camera intrinsic calibration matrix as defined by opencv (values by row separated by _ char) Ex "260.3_0_154.6_0_260.5_117_0_0_1". Camera distortion matrix as defined by opencv composed of up to 5 parameters (values separated by _ char) Ex "0.007_-0.023_-0.004_-0.0006_-0.16058". These parameters are used to pass to the node a list of known markers, these markers will be used to calculate the camera pose in the world.Markers are declared in the format marker###: " Ex marker768 0.156_0_0_0_0_0_0".
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/tentone/aruco.git

          • CLI

            gh repo clone tentone/aruco

          • sshUrl

            git@github.com:tentone/aruco.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Explore Related Topics

            Consider Popular Robotics Libraries

            openpilot

            by commaai

            apollo

            by ApolloAuto

            PythonRobotics

            by AtsushiSakai

            carla

            by carla-simulator

            ardupilot

            by ArduPilot

            Try Top Libraries by tentone

            nunuStudio

            by tentoneJavaScript

            geo-three

            by tentoneTypeScript

            potree-core

            by tentoneJavaScript

            enva-xr

            by tentoneTypeScript

            webxr-occlusion-lighting

            by tentoneJavaScript