Ask Your Question

ceres's profile - activity

2019-09-26 20:50:02 -0600 received badge  Nice Question (source)
2019-08-07 15:06:24 -0600 received badge  Critic (source)
2019-06-25 11:10:08 -0600 received badge  Nice Question (source)
2019-06-21 12:15:00 -0600 commented answer ur_modern_driver and teach_mode() URscript command

I haven't had any success with the method here. Does this still work with SW vers 5.2.0.61336?

2019-06-21 02:07:18 -0600 received badge  Famous Question (source)
2019-06-21 02:07:18 -0600 received badge  Notable Question (source)
2019-06-21 02:07:18 -0600 received badge  Popular Question (source)
2019-06-17 11:37:16 -0600 commented answer How to create organized pointcloud from unorganized pointcloud?

Thanks @PeteBlackerThe3rd - this is answer is really helpful for explaining the conceptual process of organizing a point

2019-06-17 11:14:09 -0600 received badge  Famous Question (source)
2019-06-17 11:14:09 -0600 received badge  Notable Question (source)
2019-06-15 11:45:36 -0600 received badge  Popular Question (source)
2019-06-14 19:36:17 -0600 edited question How to create organized pointcloud from unorganized pointcloud?

How to create organized pointcloud from unorganized pointcloud? I want to use convert_pointcloud_to_image.cpp to convert

2019-06-14 19:35:47 -0600 edited question How to create organized pointcloud from unorganized pointcloud?

How to create organized pointcloud from unorganized pointcloud? I want to use convert_pointcloud_to_image.cpp to convert

2019-06-14 14:34:50 -0600 asked a question How to create organized pointcloud from unorganized pointcloud?

How to create organized pointcloud from unorganized pointcloud? I want to use convert_pointcloud_to_image.cpp to convert

2019-05-07 18:18:15 -0600 edited question Modifications for launching UR5e ros_control with new MoveIt! config

How to launch ros_control MoveIt! config for UR5? I am using the MoveIt! Setup Assistant in ROS Kinetic to generate a ne

2019-05-07 17:43:45 -0600 edited question Modifications for launching UR5e ros_control with new MoveIt! config

How to launch ros_control MoveIt! config for UR5? I am using the MoveIt! Setup Assistant in ROS Kinetic to generate a ne

2019-05-07 17:42:11 -0600 edited question Modifications for launching UR5e ros_control with new MoveIt! config

How to launch ros_control MoveIt! config for UR5? I am using the MoveIt! Setup Assistant in ROS Kinetic to generate a ne

2019-05-07 17:30:58 -0600 edited question Modifications for launching UR5e ros_control with new MoveIt! config

How to launch ros_control MoveIt! config for UR5? I am using the MoveIt! Setup Assistant in ROS Kinetic to generate a ne

2019-05-07 17:27:58 -0600 asked a question Modifications for launching UR5e ros_control with new MoveIt! config

How to launch ros_control MoveIt! config for UR5? I am using the MoveIt! Setup Assistant in ROS Kinetic to generate a ne

2019-05-01 23:36:22 -0600 received badge  Notable Question (source)
2019-05-01 23:20:47 -0600 marked best answer Combine two parent-child transformations for common link

I am trying to connect two tf trees via a known link by following the advice from @tfoote here. One link belongs to the robot tf tree and the other belongs to a camera tf tree that is not part of the robot urdf. ar_tracker_alvar is providing the known link from the camera to a link defined in the robot urdf. I have looked up the transformations using tf2_ros, where robot_link_1 and alvar_link_1 share the same point in space:

tf_buffer =tf.Buffer()
known_transform_1 = tf_bufffer.lookup_transform('robot_link_1' , 'base_link', rospy.Time.now(), rospy.Duration(1.0))
known_transform_2 = tf_bufffer.lookup_transform('alvar_link_1' , 'camera_link', rospy.Time.now(), rospy.Duration(1.0))

I have added the position information to get a new combined xyz transformation:

t = TransformStamped()
t1 = known_transform_1.transform.translation
t2 = known_transform_2.transform.translation
t.x = t1.x + t2.x
t.y = t1.x + t2.x
t.z = t1.x + t2.x

The resulting vector appears to be the correct length from the camera to the robot base. Next, my understanding of how to combine the rotation information is as follows:

q_robot = known_transform_1.transform.rotation
q_camera = known_transform_2.transform.rotation
rotation = tf.transformations.quaternion_multiply(q_robot, q_camera)

I am using this information to send to a broadcaster to provide a link between the two trees:

tf_broadcaster = tf.TransformBroadcaster()
t_broadcaster.sendTransform(t)

Combining the quaternions, however, does not work as expected.

image description

As you can see, the rotation is off.

I have tried changing the placement of ar tags as well as other analytical solutions, but I appear to be missing a critical piece of information for how to combine the rotation components.

How do I perform the translation to link the two trees?

You can see in the visualization that the robot and camera appear to be aligned as expected.

For more context, below is the outcome of a tag placed in a different location:

image description

image description

EDIT:

Trying the suggestion by @janindu to directly link robot_link_1 and camera_link results in a similar situation where the tf_tree is completed but the translation is still incorrect at a different pose. See the following:

image description

https://answers.ros.org/question/322015/tf-static_transform_publisher-removes-link-instead-of-linking-two-tf-trees/

2019-05-01 23:20:12 -0600 commented answer Combine two parent-child transformations for common link

It did appear to be a problem with rotation. Thanks for all the help with this.

2019-05-01 21:59:00 -0600 commented answer Combine two parent-child transformations for common link

I think that's part of what I'm not grasping. The ar tag I would like to use is fixed to the joint of the robot, and has

2019-05-01 21:05:47 -0600 edited question Combine two parent-child transformations for common link

Combine two parent-child transformations for common link I am trying to connect two tf trees via a known link by followi

2019-05-01 21:05:45 -0600 received badge  Popular Question (source)
2019-05-01 20:48:26 -0600 commented answer Combine two parent-child transformations for common link

I can confirm that setting the rate to 100.0 fixes the frame linking, but the translation is still incorrect.

2019-05-01 20:35:34 -0600 commented answer Combine two parent-child transformations for common link

The Rate is set to 1.0. What should it be set at?

2019-05-01 20:30:29 -0600 commented answer Combine two parent-child transformations for common link

Wouldn't I need to also publish a zero rotation zero translation transformation for alvar_link_1 and robot_link_1 if I w

2019-05-01 20:25:19 -0600 commented answer Combine two parent-child transformations for common link

I tried what you are describing again as a sanity check, and the tf tree appears to be connected using rqt_tf_tree, but

2019-05-01 20:11:10 -0600 received badge  Famous Question (source)
2019-05-01 20:04:25 -0600 edited question Combine two parent-child transformations for common link

Combine two parent-child transformations for common link I am trying to connect two tf trees via a known link by followi

2019-05-01 19:58:05 -0600 commented answer Combine two parent-child transformations for common link

Thanks, but alvar_link_1 and robot_link_1 are not part of the same frame. They refer to the same point in the real world

2019-05-01 19:57:08 -0600 commented answer Combine two parent-child transformations for common link

Thanks, but alvar_link_1 and robot_link_1 are not part of the same frame. They refer to the same point in the real world

2019-05-01 18:33:20 -0600 edited question Combine two parent-child transformations for common link

Combine two parent-child transformations for common link I am trying to connect two tf trees via a known link by followi

2019-05-01 18:31:21 -0600 marked best answer `tf static_transform_publisher` removes link instead of linking two tf trees

When using static_transform_publisher, attempting to link to coordinate systems via a common frame the publisher removes the link from one tree and places it in the other. This happens both with tf and tf2_ros, and when execucted from the command line as well as from a launch file.

See the following example where ar_marker_master and ar_marker_0 refer to the same point in world space. Without linking the two using tf, the tf_tree looks like this:

image description

Then, we can attempt to link the two frames using:

rosrun tf static_transform_publisher 0 0 0 0 0 0 /ar_marker_master /ar_marker_0 1000

Where the resulting tree looks like this:

image description

This successfully links ar_marker_master with ar_marker_0, but notice that the link ar_marker_0 has been removed from the tree with camera_link. Shouldn't this join the two trees?

For more context, if I run rosrun tf tf_echo /camera_color_optical_frame /ar_marker_0 to view the transformation between camera_color_optical_frame and ar_marker_0 before the adding the link, I can see:

At time 1556317303.088 - Translation: [-0.380, 0.338, 1.264] - Rotation: in Quaternion [0.966, 0.072, -0.068, 0.237] in RPY (radian) [2.669, 0.166, 0.109] in RPY (degree) [152.939, 9.504, 6.273]

But after running static_transform_publisher:

Exception thrown:Could not find a connection between 'camera_color_optical_frame' and 'ar_marker_0'

Where did the link go? And, if this is not the proper way to join two trees, how should I perform the transform to join the two coordinate systems?

2019-05-01 18:31:21 -0600 received badge  Scholar (source)
2019-05-01 18:31:16 -0600 commented answer `tf static_transform_publisher` removes link instead of linking two tf trees

I've accepted your answer regarding the static_transform_publisher as correct, but I am still unclear about how the tree

2019-05-01 18:27:39 -0600 asked a question Combine two parent-child transformations for common link

Combine two parent-child transformations for common link I am trying to connect two tf trees via a known link by followi

2019-04-29 13:29:10 -0600 commented answer `tf static_transform_publisher` removes link instead of linking two tf trees

I understand the point you're making, but I suppose I assumed that my original question of linking two child frames shou

2019-04-29 12:32:36 -0600 commented answer `tf static_transform_publisher` removes link instead of linking two tf trees

Thanks for the help. I'll see if I can figure out how to do that with a 3D matrix. I'm surprised ROS doesn't have a buil

2019-04-29 12:32:36 -0600 received badge  Commentator
2019-04-29 12:27:09 -0600 received badge  Notable Question (source)
2019-04-29 11:56:28 -0600 commented answer `tf static_transform_publisher` removes link instead of linking two tf trees

So the method is correct then? Does it matter if I use quaternions or radians for the linear transformation? In the exam

2019-04-29 11:12:11 -0600 commented answer `tf static_transform_publisher` removes link instead of linking two tf trees

Using this method aligns the two frames in the XYZ coordinates, but the rotation is off.

2019-04-29 10:28:13 -0600 received badge  Popular Question (source)
2019-04-26 20:34:20 -0600 commented answer `tf static_transform_publisher` removes link instead of linking two tf trees

That makes sense. So, if I understand correctly, in your example, Twa should be the output of rosrun tf tf_echo /world /

2019-04-26 17:44:45 -0600 edited question `tf static_transform_publisher` removes link instead of linking two tf trees

`tf static_transform_publisher` removes link instead of linking two tf trees When using static_transform_publisher, atte

2019-04-26 17:13:20 -0600 asked a question `tf static_transform_publisher` removes link instead of linking two tf trees

`tf static_transform_publisher` removes link instead of linking two tf trees When using static_transform_publisher, atte

2019-03-21 06:34:00 -0600 received badge  Favorite Question (source)