Linking Pixhawk's odometry to rtabmap

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Linking Pixhawk's odometry to rtabmap

Lewthie
As the subject mentions, I am currently trying to setup a quadrotor that uses the Xtion Pro Live and rtabmap to gather map data using /proj_map while trying to use a Pixhawk autopilot to provide odometry.

I'm thinking of using a static transform publisher but I'm not sure what the frame_id and child_frame should be set to. I understand I have to put it into the launch file so as a temporary setup (for experimenting) I've put it in rgbd_mapping.launch but it doesn't seem to be running. I'm not sure I've put it in the right place.

Assuming the camera and pixhawk are mounted on the same surface, how should I set up the static transform publisher? I'll be using a similar launch file to the one shown here: http://wiki.ros.org/rtabmap_ros/Tutorials/SetupOnYourRobot#Kinect_.2B-_Odometry

Any help would be appreciated and I apologise for the newbie question.
Reply | Threaded
Open this post in threaded view
|

Re: Linking Pixhawk's odometry to rtabmap

matlabbe
Administrator
Can you link which package is used for Pixhawk autopilot? Odometry TF should not be static. What TFs are published by the Pixhawk package, or is there a nav_msgs/Odometry message published?

cheers
Reply | Threaded
Open this post in threaded view
|

Re: Linking Pixhawk's odometry to rtabmap

Lewthie
Apologies for the extremely tardy reply.

I am using the mavros package. Specifically, I'm launching px4.launch file.

http://wiki.ros.org/mavros

Reply | Threaded
Open this post in threaded view
|

Re: Linking Pixhawk's odometry to rtabmap

matlabbe
Administrator
Hi,

I cannot start launch file on my computer (I don't have the pixhawk), so it is a little difficult to see what TF/msgs are published. Looking at the px4_config.yaml file and the related code (global_position.cpp and local_position.cpp), TF and odometry messages are set. Not sure what global_position means, local_position would be the odometry message. Using local_position, the frame_id would be /odom and child_frame_id would be /base_link. At first you may want to look what the TF tree looks like:
$ roslaunch mavros px4.launch
$ rosrun tf view_frames
# evince frames.pdf
to see what is the base link used for the pixhawk. If global_position publishes /map -> /odom, it should be disabled because rtabmap will publish it too.

cheers