TF Transforms for Sonar Array and Camera


#1

Hi there,

I’ve been working on incorporating some of our own sensor setups into our magni robot. Currently, I am working on setting up the tf transform messages for the sensors as well as setting up a range_sensor_layer on the 2D costmaps available in ROS. However, I am having difficulties locating the code that sets up the tf trannsforms for the sensors (such as the sonar array). The only tf readings I can find are those for the left and right wheels.

Can anyone point me in the right direction to find the code for the tf transforms for the sensors if this code exists?

Thanks!


#2

The static transforms are specified in the URDF, you can learn more about that here http://wiki.ros.org/urdf/Tutorials

The urdf for magni is here: https://github.com/UbiquityRobotics/magni_robot/blob/indigo-devel/magni_description/urdf/magni.urdf.xacro


#3

Alright, thanks! I have a few follow up questions.
Firstly, is there a way to manual set the value of sonars_installed to true or is automatic?
Secondly, are all of the sonar readings published over the same rostopic and what type of message is used?
Lastly, just to make sure, if for some reason the sonars are positioned differently on the robot, is it possible just to change the URDF file or do we need to create a new one?

Thanks again for any help, it’s greatly appreciated!


#4

Most of your questions are answered here https://learn.ubiquityrobotics.com/sensors

I would recommend copying your modified URDF somewhere else, in case it gets overwritten on an update. We are working on a better solution for custom URDFs.

Rohan


#5

Alright thanks again!

So this might be a strange question, but when looking for the robot.yaml file mentioned in the setting up sonar stuff, the file is not in /etc/ubiquity . The only thing there is env.sh. Is there some place different that this would have been on an older version of the software?


#6

If you upgraded from an older version of the software (with apt), you won’t have the robot.yaml file, but the code should still use it if it exists.