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

Revision history [back]

To get the urdf specification to be published in the tf tree. Your robot needs to output a sensor_msgs::JointState message which gives the description of all the states in your robot's joints.The names used in the jointstate should correspond to the names used for your joints in the urdf model. Include in your roslaunch a state_publisher node from the robot_state_publisher package. It will subscribe to your jointstate message, read the robot description off the parameter server and publish the tf tree correctly.

<!-- Convert an xacro and put on parameter server -->
<param name="robot_description" command="$(find xacro)/xacro.py '$(find asp_platform)/urdf/asp.xacro'" />

<node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />

In general your robot needs to respond to a geometry_msgs::twist message published on the output of the navigation stack as the /cmd_vel topic. That is it should be able to be remotely controlled with linear.x as forward and backward and angular.z as rotation for a 2D non-holonomic robot. The robot should also output some sort of estimation of its position, typically via a nav_messages::odometry message which can be used by localisation routines such as amcl combined with some sensor data ie from your laser, to get a good estimate of position.

Once your robot can respond to cmd_vel twist messages, output its pose at least as a odometry message and you have the appropriate localisation routines to get a good estimate of pose and the full tf tree is available via the robot_state_publisher or other methods (you can output the tfs directly if you like) then you should have every thing you need to start using the planners available in the navigation stack.

have fun.