Comments (7)
@nevermore0127
Answering your questions,which axis are right?
The Z axis (the blue one) must be "going out" of the ARuco tag.
Displayed in /aruco_single/result OR displayed in rviz ?
So following the ARuco convention the /aruco_single/result has the correct orientation. Notice that this not affect translation at all.
Is the TF data right ?
As I said above, the orientation issue doesn't affect the pose estimation. So, yes the TF data is right the only difference is that it has and additional rotation. So in Rviz you see the y-axis pointing out of the tag.
Or i should do things as you say then the TF data will be right?
Is not necessary it is just for convention, according to your needs you may need a different orientation. Or you can publish a static transform with a new rotation. (this is is the simpliest solution).
Notice that the TF data is only correct if your camera is correctly calibrated.
If I am not clear enough, please let me know.
Thanks,clear about that.
from aruco_ros.
Hi, @CesMak ,
We found out that the orientation issue is caused due to a rotation matrix described in aruco_ros_utils.cpp see these code lines. You could modify the rotate_to_ros cv::Mat object and use it as an identity matrix to undo the rotation. (Actually not perform a rotation at all). So your TF data will be the same as the one found by ARuco.
If you change this take into account that the simple_double.cpp has to be modified too, in order to avoid the same issue (this only affects the simple_double.cpp file). So you will have to change this line to mDetector.detect(inImage, markers, camParam, marker_size,false);
since the default value of setYPerpendicular
is set to true in the .h file.
from aruco_ros.
I have the same question about that. So witch axis is right ? Displayed in /aruco_single/result OR displayed in rviz ?
Hi, @CesMak ,
We found out that the orientation issue is caused due to a rotation matrix described in aruco_ros_utils.cpp see these code lines. You could modify the rotate_to_ros cv::Mat object and use it as an identity matrix to undo the rotation. (Actually not perform a rotation at all). So your TF data will be the same as the one found by ARuco.If you change this take into account that the simple_double.cpp has to be modified too, in order to avoid the same issue (this only affects the simple_double.cpp file). So you will have to change this line to
mDetector.detect(inImage, markers, camParam, marker_size,false);
since the default value ofsetYPerpendicular
is set to true in the .h file.
I have the same question about that and still don't understand by your reply.
So witch axis are right ? Displayed in /aruco_single/result OR displayed in rviz ?
Is the TF data right ? Or i should do things as you say then the TF data will be right?
thank you
from aruco_ros.
You can also test with the ARuco 3.0.4 branch: https://github.com/pal-robotics/aruco_ros/tree/aruco-3.0.4
I tried to adapt the package conventions to the library convention. The problem is that if we merged this, a lot of code that relies on the orientation would stop working as expected.
from aruco_ros.
@nevermore0127
Answering your questions,
which axis are right?
The Z axis (the blue one) must be "going out" of the ARuco tag.
Displayed in /aruco_single/result OR displayed in rviz ?
So following the ARuco convention, the /aruco_single/result has the correct orientation. Notice that this not affect translation at all.
Is the TF data right ?
As I said above, the orientation issue doesn't affect the pose estimation. So, yes the TF data is right the only difference is that it has an additional rotation. So in Rviz you see the y-axis pointing out of the tag.
Or i should do things as you say then the TF data will be right?
Is not necessary it is just for convention, according to your needs you may need a different orientation. Or you can publish a static transform with a new rotation. (this is is the simplest solution).
Notice that the TF data is only correct if your camera is correctly calibrated.
If I am not clear enough, please let me know.
from aruco_ros.
Hi, I also found it is a bit confusing the TF axis direction is different from the detection result. I made a PR for this problem.
from aruco_ros.
@nevermore0127
Answering your questions,which axis are right?
The Z axis (the blue one) must be "going out" of the ARuco tag.
Displayed in /aruco_single/result OR displayed in rviz ?
So following the ARuco convention the /aruco_single/result has the correct orientation. Notice that this not affect translation at all.
Is the TF data right ?
As I said above, the orientation issue doesn't affect the pose estimation. So, yes the TF data is right the only difference is that it has and additional rotation. So in Rviz you see the y-axis pointing out of the tag.
@ctaipuj
To make it more clear, if we want to use tf to transform a vector from marker frame to camera frame, we have to use the frame in Rviz. For example, I specify the four corners in the marker frame, [[-0.5, 0, -0.5], [-0.5, 0, 0.5], [0.5, 0, -0.5], [0.5, 0, 0.5]], then use the tf to transform it to camera frame and get a correct result. if I use the frame indicated by the result image, it is wrong.
by the way, how can I directly get the corner position?
from aruco_ros.
Related Issues (20)
- Process dies everytime I try to access the topic aruco_marker_publisher/result HOT 6
- Can not get pose information and aruco_marker tf from ZED Mini camera HOT 9
- is there a way to port this back to older version (EOL) ROS2 HOT 1
- [bug] double free detected in tcache 2 HOT 2
- [Humble] Failing to build on buildfarm because of ambiguity HOT 4
- Help๏ผ HOT 1
- about no camera info HOT 2
- cannot show position,but get marks > Hello @Yaoxingtian, HOT 2
- about distance
- howto use many aruco code to make accuracy better? HOT 1
- how to change the coordinate system HOT 1
- the direction changes a lot when i put quaternion ioto navigation HOT 2
- Calculate reprojection error HOT 1
- an error when catkin_make HOT 3
- why the size of distorsionCoeff is 4? HOT 5
- can aruco_ros subscribe raw(distorted) image?
- noetic process has died HOT 11
- pose representation problem HOT 1
- Flickering in Debug View
- Is ROS2 Foxy supported? HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from aruco_ros.