ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

Does the transform between several sensors need to be included in the final launch file of the robot?

asked 2022-03-08 08:00:31 -0500

Question gravatar image

updated 2022-04-30 13:46:37 -0500

lucasw gravatar image

Hello,

So I have a robot with several sensors. Each sensor has their own frame and they are all child-frames which have the same parent frame, namely the reference sensor. Now I have a calibration program that calculates the transforms between all of the child_frames and the parent frame, so all of the transforms are know. These sensors will not move so this is a static transform. Now my question is, If my transforms are know and will not change over time, do I insert these transforms into the .launch file for the robot?

And by .launch file I mean the file that you must launch in order to start up the bot and all of it's nodes. This is not clear to me since I now have the correct transforms with the help of a calibration program, but I am not sure if it is a normal procedure to add these transforms into the launch file of the robot.(I am also new to this and searched about TF publishers but I could not find any answers for this)

Extra question: Does a sensor determine it's own frame coordinates with the help of measurements? or must this be given before hand?

Thanks in advance!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
1

answered 2022-03-10 18:13:20 -0500

Generally, to have transforms set up and ready you have to write an URDF file and use robot_state_publisher to provide static transforms for all the links. You can add transform publishers separately, but it gets pretty cumbersome after a while. As for the extra question, I'm not sure I follow exactly, but the sensor driver code can provide its own TF publisher that could readjust the position of those frames. It definitely could be helpful to learn what those sensors are to improve this answer.

edit flag offensive delete link more

Comments

Thanks for your response!

The reference sensor is a lidar which spins around and the child frames are three different radars. So from what i've seen (this is an existing project) the static transform publisher is given in the launch file. So the transforms have been given for each sensor to it's parent frame, which is the Lidar. So I don't think that this project has an URDF file since the TF publisher is added inside of the launch file.

Question gravatar image Question  ( 2022-03-11 03:39:42 -0500 )edit
1

I'm not sure I follow entirely, if I understand correctly, you have a launch file that contains static transform publishers, and you want to override them?

Serafadam gravatar image Serafadam  ( 2022-03-11 12:14:49 -0500 )edit

Yeah, so I have a launch file that contains static transform publishers. Now I was wondering if these static transform publishers which are given in the launch file override the static transform publishers which are given in the sensor nodes themselves. And also if this is good practise to provide static transform publishers inside of the launch file. Because each sensor node has their own static transform publisher from what I have seen, and then in the launch file the static transform publisher is given for each sensor relative to it's parent frame.

Question gravatar image Question  ( 2022-03-14 03:22:14 -0500 )edit

Having multiple static transform publishers will make tf frames jump between locations, since the frame is being broadcast by different topic publishers. A good practice is to have URDF and robot_state_publisher set up, since then you have all the frames in single file.

Serafadam gravatar image Serafadam  ( 2022-03-14 04:47:21 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2022-03-08 08:00:31 -0500

Seen: 142 times

Last updated: Mar 10 '22