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

robot description in turtlebot

asked 2012-01-24 03:24:19 -0500

apalomer gravatar image

Hi,

I am trying to push everithing related to my robot under the name of the robot, but when it comes to the topic robot_description I can't, the description keeps the original tree for the transform and does not go under the tf_prefix or the ns that I give. Actually the parameter goes under the ns as the new parameter is turtelbot2/robot_description.

The parameter is this:


"<?xml version=\"1.0\" ?>\n<!-- ===================================================================================\
  \ -->\n<!-- |    This document was autogenerated by xacro from /home/turtlebot/ros_electric/turtlebot/turtlebot_description/urdf/turtlebot.urdf.xacro\
  \ | -->\n<!-- |    EDITING THIS FILE BY HAND IS NOT RECOMMENDED                \
  \                 | -->\n<!-- ===================================================================================\
  \ -->\n<robot name=\"turtlebot\" xmlns:controller=\"http://playerstage.sourceforge.net/gazebo/xmlschema/#controller\"\
  \ xmlns:interface=\"http://playerstage.sourceforge.net/gazebo/xmlschema/#interface\"\
  \ xmlns:sensor=\"http://playerstage.sourceforge.net/gazebo/xmlschema/#sensor\">\n\
  \  <!-- Included URDF Files -->\n  <gazebo>\n    <controller:gazebo_ros_create name=\"\
  create_controller\" plugin=\"libgazebo_ros_create.so\">\n      <alwaysOn>true</alwaysOn>\n\
  \      <node_namespace>turtlebot_node</node_namespace>\n      <left_wheel_joint>left_wheel_joint</left_wheel_joint>\n\
  \      <right_wheel_joint>right_wheel_joint</right_wheel_joint>\n      <front_castor_joint>front_castor_joint</front_castor_joint>\n\
  \      <rear_castor_joint>rear_castor_joint</rear_castor_joint>\n      <wheel_separation>.260</wheel_separation>\n\
  \      <wheel_diameter>0.066</wheel_diameter>\n      <base_geom>base_link_geom_base_link</base_geom>\n\
  \      <updateRate>40</updateRate>\n      <torque>1.0</torque>\n    </controller:gazebo_ros_create>\n\
  \  </gazebo>\n  <gazebo reference=\"wall_sensor_link\">\n    <sensor:ray name=\"\
  wall_sensor\">\n      <alwaysActive>true</alwaysActive>\n      <rayCount>1</rayCount>\n\
  \      <rangeCount>1</rangeCount>\n      <resRange>0.1</resRange>\n      <minAngle>0</minAngle>\n\
  \      <maxAngle>0</maxAngle>\n      <minRange>0.0160</minRange>\n      <maxRange>0.04</maxRange>\n\
  \      <displayRays>false</displayRays>\n    </sensor:ray>\n  </gazebo>\n  <gazebo\
  \ reference=\"left_cliff_sensor_link\">\n    <sensor:ray name=\"left_cliff_sensor\"\
  >\n      <alwaysActive>true</alwaysActive>\n      <rayCount>1</rayCount>\n     \
  \ <rangeCount>1</rangeCount>\n      <resRange>0.1</resRange>\n      <minAngle>0</minAngle>\n\
  \      <maxAngle>0</maxAngle>\n      <minRange>0.01</minRange>\n      <maxRange>0.04</maxRange>\n\
  \      <displayRays>false</displayRays>\n    </sensor:ray>\n  </gazebo>\n  <gazebo\
  \ reference=\"right_cliff_sensor_link\">\n    <sensor:ray name=\"right_cliff_sensor\"\
  >\n      <alwaysActive>true</alwaysActive>\n      <rayCount>1</rayCount>\n     \
  \ <rangeCount>1</rangeCount>\n      <resRange>0.1</resRange>\n      <minAngle>0</minAngle>\n\
  \      <maxAngle>0</maxAngle>\n      <minRange>0.01</minRange>\n      <maxRange>0.04</maxRange>\n\
  \      <displayRays>false</displayRays>\n    </sensor:ray>\n  </gazebo>\n  <gazebo\
  \ reference=\"leftfront_cliff_sensor_link\">\n    <sensor:ray name=\"leftfront_cliff_sensor\"\
  >\n      <alwaysActive>true</alwaysActive>\n      <rayCount>1</rayCount>\n     \
  \ <rangeCount>1</rangeCount>\n      <resRange>0.1</resRange>\n      <minAngle>0</minAngle>\n\
  \      <maxAngle>0</maxAngle>\n      <minRange>0.01</minRange>\n      <maxRange>0.04</maxRange>\n\
  \      <displayRays>false</displayRays>\n    </sensor:ray>\n  </gazebo>\n  <gazebo\
  \ reference=\"rightfront_cliff_sensor_link\">\n    <sensor:ray name=\"rightfront_cliff_sensor\"\
  >\n      <alwaysActive>true</alwaysActive>\n      <rayCount>1</rayCount>\n     \
  \ <rangeCount>1</rangeCount>\n      <resRange>0.1</resRange>\n      <minAngle>0</minAngle>\n\
  \      <maxAngle>0</maxAngle>\n      <minRange>0.01</minRange>\n      <maxRange>0.04</maxRange>\n\
  \      <displayRays>fan</displayRays>\n    </sensor:ray>\n  </gazebo>\n  <gazebo\
  \ reference=\"kinect_link\">\n    <sensor:camera name=\"kinect_camera\">\n     \
  \ <imageFormat>R8G8B8</imageFormat>\n      <imageSize>640 480</imageSize>\n    \
  \  <hfov>60</hfov>\n      <nearClip>0.05</nearClip>\n      <farClip>3</farClip>\n\
  \      <updateRate>20</updateRate>\n      <baseline>0.1 ...
(more)
edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
2

answered 2012-01-24 20:29:46 -0500

Lorenz gravatar image

I don't think there is another way than creating two different robot descriptions to prefix the link names. I'm not sure if that's necessary though. The robot_state_publisher accepts the tf_prefix parameter and will prefix the links with it when it publishes the TF tree. As long as all your turtlebots are identical, you can use one robot_description parameter and several robot_state_publishers with different tf_prefix parameters. If you put robot_description into a namespace, you need to set the parameter robot_description of the robot_state_publisher as well.

edit flag offensive delete link more

Question Tools

Stats

Asked: 2012-01-24 03:24:19 -0500

Seen: 645 times

Last updated: Jan 24 '12