UbiquityRobotics / fiducials

Simultaneous localization and mapping using fiducial markers.
BSD 3-Clause "New" or "Revised" License
265 stars 135 forks source link

Exact orientation of tf for Fiducial #271

Closed pitosalas closed 1 year ago

pitosalas commented 2 years ago

I'm troubleshooting a problem with my use of Armco_detect. It seems to work well except that the fiducials tfs relatvive to the camera are 90 degrees in the wrong direction. The fiducial_imates topic shows the fiducials. But in stead of x-y-z colored lines to show the orientation, I see the following

Can that be changed into a x,y,z axis in rgb? That would be much more useful

anfederman commented 2 years ago

Is the camera mounted to a robot, and is there a link to the base_link or base_footprint? I am guessing the camera is oriented incorrectly.

On Thu, Mar 31, 2022, 5:28 PM Pito Salas @.***> wrote:

I'm troubleshooting a problem with my use of Armco_detect. It seems to work well except that the fiducials tfs relatvive to the camera are 90 degrees in the wrong direction. The fiducial_imates topic shows the fiducials. But in stead of x-y-z colored lines to show the orientation, I see the following

  • a green outline around the marker
  • a red square in the top left
  • a blue id = x label.

Can that be changed into a x,y,z axis in rgb? That would be much more useful

— Reply to this email directly, view it on GitHub https://github.com/UbiquityRobotics/fiducials/issues/271, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHZ3727MKA4IN6M5RRMNFLVCY7MJANCNFSM5SHDO2ZQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

pitosalas commented 2 years ago

Yes, there is a link. But the transform is wrong.

My question really was about the visualization (fiducial_camera I think it's called). The image shows the outline and number of the fiducial. But more helpful would be if I could get it to show the three axes in perspective (like it does in the demo visualization). Seeing the three axes will really help me troubleshoot!

Pito Salas Faculty, Computer Science Brandeis University

On Mar 31, 2022, at 10:16 PM, Alan Federman @.***> wrote:

Is the camera mounted to a robot, and is there a link to the base_link or base_footprint? I am guessing the camera is oriented incorrectly.

On Thu, Mar 31, 2022, 5:28 PM Pito Salas @.***> wrote:

I'm troubleshooting a problem with my use of Armco_detect. It seems to work well except that the fiducials tfs relatvive to the camera are 90 degrees in the wrong direction. The fiducial_imates topic shows the fiducials. But in stead of x-y-z colored lines to show the orientation, I see the following

  • a green outline around the marker
  • a red square in the top left
  • a blue id = x label.

Can that be changed into a x,y,z axis in rgb? That would be much more useful

— Reply to this email directly, view it on GitHub https://github.com/UbiquityRobotics/fiducials/issues/271, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABHZ3727MKA4IN6M5RRMNFLVCY7MJANCNFSM5SHDO2ZQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>

— Reply to this email directly, view it on GitHub https://github.com/UbiquityRobotics/fiducials/issues/271#issuecomment-1085336365, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAAK5CLJYORQTBXAFJ3RZ63VCZL7VANCNFSM5SHDO2ZQ. You are receiving this because you authored the thread.

JanezCim commented 2 years ago

@pitosalas might be a bit of workaround, but you can see the three axis prespective if you enable tf visualisation in rviz. If you do fiducial slam, that also publishes markers of fiducials (red squares, blue lines):

image

but afaik this node does not have an option of displaying frame coordiante system in the image stream.

ivan140 commented 2 years ago

You can add the following code to map.cpp , function publishMarker :

// Arrow
visualization_msgs::Marker arrow;
arrow.type = visualization_msgs::Marker::ARROW;
arrow.action = visualization_msgs::Marker::ADD;
toMsg(fid.pose.transform, arrow.pose);

arrow.scale.x = 0.15;
arrow.scale.y = 0.05;
arrow.scale.z = 0.05;
if (fid.visible) {
    arrow.color.r = 1.0f;
    arrow.color.g = 0.0f;
    arrow.color.b = 0.0f;
    arrow.color.a = 1.0f;
} else {
    arrow.color.r = 1.0f;
    arrow.color.g = 0.0f;
    arrow.color.b = 0.0f;
    arrow.color.a = 1.0f;
}
tf2::Quaternion q = fid.pose.transform.getRotation();

arrow.pose.orientation.x = q.getX();
arrow.pose.orientation.y = q.getY();
arrow.pose.orientation.z = q.getZ();
arrow.pose.orientation.w = q.getW();
arrow.id = fid.id;
arrow.ns = "fiducial";
arrow.header.frame_id = mapFrame;
markerPub.publish(arrow);

And get the following output. Feel free to add more axis if needed.

image

pitosalas commented 2 years ago

Thanks!

Pito Salas Faculty, Computer Science Brandeis University

On Apr 6, 2022, at 3:39 AM, Janez Cimerman @.***> wrote:

@pitosalas might be a bit of workaround, but you can see the three axis prespective if you enable tf visualisation in rviz. If you do fiducial slam, that also publishes markers of fiducials:

but afaik this node does not have an option of displaying frame coordiante system in the image stream.

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.