Simulator Architecture

From sdk-wiki
Revision as of 20:14, 18 December 2015 by Imcmahon (talk | contribs) (Process 2)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Package Description

baxter_sim_hardware

This package controls the functionalities of the simulator and acts as an interface between the user and the simulator. This package has one node

  • /baxter_emulator
    • This node subscribes to the topics robot/set_super_enable, robot/set_super_stop, robot/set_super_reset and enables/disables the controllers accordingly.
    • It also subscribes to the laser messages, wraps and publishes them as IR range and Sonar point cloud messages, accordingly.
    • It activates the head_nod state upon its command and toggles it in 1 second. Also it monitors the change in head_pan and publishes if the head is panning.
    • The digital_io light states are published based on the command received.
    • Upon gazebo startup, this node reads the RSDK image and loads it on Baxter's display.
    • This node also invokes the gravity calculation function at the arm_kinematics library (Package: baxter_sim_kinematics) to calculate the gravity comp torques at 100 Hz.
    • Once this node has completely finished loading, it will publish a latched std_msgs/Empty message to /robot/sim/started to alert all nodes that the robot will now function

baxter_sim_io

This package is responsible for the qt plugin that constitute the Naviagtor of the simulator. It has a UI file in which holds the QT buttons for the navigator. This package also listens to the qt events and records the data This has one node

  • /baxter_sim_io
    • This node is responsible for publishing the variables which are updated based on the users input.

baxter_sim_kinematics

This package caluculates the IK, FK and Gravity Compensation torques. It has two nodes, one for each limb

  • /baxter_sim_kinematics_left
    • This node holds the service call for the IK for the left arm. It unwraps the message and adds a seed to it before calling the IK function from the arm_kinematics library.
    • It calculates the endpoint state of the left arm joints (FK) at 100 HZ by subscribing to the robot/joint_states topic.
  • /baxter_sim_kinematics_right
    • This node holds the service call for the IK for the right arm. It unwraps the message and adds a seed to it before calling the IK function from the arm_kinematics library.
    • It calculates the endpoint state of the right arm joints (FK) at 100 HZ by subscribing to the robot/joint_states topic.

This package has a library

  • arm_kinematics
    • This library calcualtes the IK, FK for both the left and right arm.
    • The gravity compensation is calculated here and the resulting joint torques are shared (via ROS Service call gazebo/set_link_properties with Gazebo). These commands are then writing the torque commands to the simulator.

baxter_sim_controllers

This package constitutes the controller plugins for Baxter. It is also responsible for loading the controller information into the parameter server which is then used by gazebo. This has four plugins

  • baxter_effort_controller
    • This plugin instantiates a publisher for each of the individual joint effort controllers in an arm.
    • It unwraps the Joint command message and passes them to the appropriate controller which is then forwarded to the ros control(joint_effort_controller) and written as torque commands to gazebo
  • baxter_position_controller
    • This plugin instantiates a publisher for each of the individual joint position controllers in an arm.
    • It unwraps the Joint command message and passes them to the appropriate controller which is then forwarded to the ros controllers(joint_position_controller) where pid control is implemented before they are converted as torque commands and passed to gazebo.
  • baxter_velocity_controller
    • This plugin instantiates a publisher for each of the individual joint velocity controllers in an arm.
    • It unwraps the Joint command message and passes them to the appropriate controller which is then forwarded to the ros controllers(joint_velocity_controller) where pid control is implemented before they are converted as torque commands and passed to gazebo.
  • baxter_head_controller
    • This plugin instantiates a publisher for the head joint position controller.
    • It unwraps the Joint command message and passes them to the head joint position controller which is then forwarded to the ros controllers(joint_position_controller) where pid control is implemented before they are converted as torque commands and passed to gazebo.
  • baxter_gripper_controller
    • This plugin instantiates a publisher for the electric gripper joint position controller.
    • One of these controllers is instantiated for each of left and right electric grippers if you do not set <side>_electric_gripper:=false in the baxter_gazebo/launch/baxter_world.launch ROS launch file. "true" is set by default.

baxter_gazebo

This package holds the world models that can be loaded into gazebo. It also contains a controller plugin that regulates the messages passed between controllers. The default gazebo control plugin is overloaded as,

  • baxter_gazebo_ros_control_plugin
    • This plugin subscribes to the robot/state topic on initialization and checks if the state is enabled/disabled, based on which it starts/stops the controllers.
    • It also switches the controllers based on the mode, received in the joint command, and passes the messages to those controllers.

baxter_sim_examples

FIXME: This package holds the world models that can be loaded into gazebo. It also contains a controller plugin that regulates the messages passed between controllers. The default gazebo control plugin is overloaded as,

  • baxter_gazebo_ros_control_plugin
    • This plugin subscribes to the robot/state topic on initialization and checks if the state is enabled/disabled, based on which it starts/stops the controllers.
    • It also switches the controllers based on the mode, received in the joint command, and passes the messages to those controllers.

Program Flow

System Architecture

Sim flowchart.png

Processes

Process 1

P1.png

This process is responsible for passing the user commands to the appropriate joints in the various modes.
The steps involved are,

  • The baxter_emulator node waits for the enable command from the user/programs and updates the robot/state topic accordingly.
  • The baxter_gazebo_ros_control plugin waits for the enable command to start the head controller, and then switches the appropriate controller (position, velocity or effort) based on the mode from the JointCommand message. At any point of time, if the topic robot/state receives disable command, it stops all the controllers.
  • At baxter_sim_controllers package, the controller which was switched would read the JointCommand message and unwrap the message before passing them to the individual joint controllers.
  • The individual joint_controllers at the ros_controller would implement a PID control (no PID control for effort controllers) on the messages and would convert them as torque commands.
  • The torque commands to the individual joints are written to a shared location at ros_control.
  • The default_robot_hw_sim reads the torque commands from the shared memory and sums them with the gravity compesnation torquees before it passes them to the appropriate joints in gazebo.

Process 2

P2.png
This process is responsible for the gravity compensation torques' calculation.
The steps involved are,

  • The baxter_emulator node calls the gravity_compensation function at 100 Hz and passes the current robot/joint_states message.
  • The arm_kinematics library calculates the gravity compensation torques for the current state of the robot using KDL. It shares the gravity compensation torques with Gazebo in a by ROS Service call gazebo_msgs/SetLinkProperties.srv.This updates the gravity compensation torques as 0 when the robot is in disabled state.
  • Gazebo sums the gravity compensation torques with the torques from the controllers and passes them to the appropriate joints in simulation.


Process 1 and Process 2 share the gravity compensation torques.

Process 3

Kinematicslibrary.png
This process calculates the Forward Kinematics (endpoint state) and Inverse Kinematics for the simulated Baxter.
The steps involved are,

  • The baxter emulator creates two nodes named as baxter_sim_kinematics_left and baxter_sim_kinematics_right, for each of the arm. It passes the joint states at 100 Hz.
  • The kinematics nodes are subscribed to the robot/joint_states and they calculate the endpoint state by using the KDL function defined in the arm_kinematics library. The endpoint state is published at 100 Hz to the topic robot/limb/<side>/endpoint_state.
  • In addition the nodes also define the IK service. They unwrap the service requests and appends the seed (current joint state) to them before calling the KDL function from the arm_kinematics library.

Ros Nodes

  1. /baxter_emulator
  2. /baxter_sim_io
  3. /baxter_sim_kinematics_left
  4. /baxter_sim_kinematics_right
  5. /gazebo
  6. /gazebo_client
  7. /robot/controller_spawner
  8. /robot/controller_spawner_stopped
  9. /robot/left_gripper_controller_spawner_stopped
  10. /robot/right_gripper_controller_spawner_stopped
  11. /robot_state_publisher
  12. /rosout

Ros Topics

  1. /cameras/head_camera/camera_info
  2. /cameras/head_camera/image
  3. /cameras/head_camera/image/compressed
  4. /cameras/head_camera/image/compressed/parameter_descriptions
  5. /cameras/head_camera/image/compressed/parameter_updates
  6. /cameras/head_camera/image/compressedDepth
  7. /cameras/head_camera/image/compressedDepth/parameter_descriptions
  8. /cameras/head_camera/image/compressedDepth/parameter_updates
  9. /cameras/head_camera/image/theora
  10. /cameras/head_camera/image/theora/parameter_descriptions
  11. /cameras/head_camera/image/theora/parameter_updates
  12. /cameras/head_camera/parameter_descriptions
  13. /cameras/head_camera/parameter_updates
  14. /cameras/left_hand_camera/camera_info
  15. /cameras/left_hand_camera/image
  16. /cameras/left_hand_camera/image/compressed
  17. /cameras/left_hand_camera/image/compressed/parameter_descriptions
  18. /cameras/left_hand_camera/image/compressed/parameter_updates
  19. /cameras/left_hand_camera/image/compressedDepth
  20. /cameras/left_hand_camera/image/compressedDepth/parameter_descriptions
  21. /cameras/left_hand_camera/image/compressedDepth/parameter_updates
  22. /cameras/left_hand_camera/image/theora
  23. /cameras/left_hand_camera/image/theora/parameter_descriptions
  24. /cameras/left_hand_camera/image/theora/parameter_updates
  25. /cameras/left_hand_camera/parameter_descriptions
  26. /cameras/left_hand_camera/parameter_updates
  27. /cameras/right_hand_camera/camera_info
  28. /cameras/right_hand_camera/image
  29. /cameras/right_hand_camera/image/compressed
  30. /cameras/right_hand_camera/image/compressed/parameter_descriptions
  31. /cameras/right_hand_camera/image/compressed/parameter_updates
  32. /cameras/right_hand_camera/image/compressedDepth
  33. /cameras/right_hand_camera/image/compressedDepth/parameter_descriptions
  34. /cameras/right_hand_camera/image/compressedDepth/parameter_updates
  35. /cameras/right_hand_camera/image/theora
  36. /cameras/right_hand_camera/image/theora/parameter_descriptions
  37. /cameras/right_hand_camera/image/theora/parameter_updates
  38. /cameras/right_hand_camera/parameter_descriptions
  39. /cameras/right_hand_camera/parameter_updates
  40. /clock
  41. /gazebo/link_states
  42. /gazebo/model_states
  43. /gazebo/parameter_descriptions
  44. /gazebo/parameter_updates
  45. /gazebo/set_link_state
  46. /gazebo/set_model_state
  47. /robot/analog_io/left_hand_range/state
  48. /robot/analog_io/left_hand_range/value_uint32
  49. /robot/analog_io/right_hand_range/state
  50. /robot/analog_io/right_hand_range/value_uint32
  51. /robot/digital_io/command
  52. /robot/digital_io/left_inner_light/state
  53. /robot/digital_io/left_lower_button/state
  54. /robot/digital_io/left_lower_cuff/state
  55. /robot/digital_io/left_outer_light/state
  56. /robot/digital_io/left_shoulder_button/state
  57. /robot/digital_io/left_upper_button/state
  58. /robot/digital_io/right_inner_light/state
  59. /robot/digital_io/right_lower_button/state
  60. /robot/digital_io/right_lower_cuff/state
  61. /robot/digital_io/right_outer_light/state
  62. /robot/digital_io/right_shoulder_button/state
  63. /robot/digital_io/right_upper_button/state
  64. /robot/digital_io/torso_left_inner_light/state
  65. /robot/digital_io/torso_left_outer_light/state
  66. /robot/digital_io/torso_right_inner_light/state
  67. /robot/digital_io/torso_right_outer_light/state
  68. /robot/end_effector/left_gripper/command
  69. /robot/end_effector/left_gripper/properties
  70. /robot/end_effector/left_gripper/state
  71. /robot/end_effector/right_gripper/command
  72. /robot/end_effector/right_gripper/properties
  73. /robot/end_effector/right_gripper/state
  74. /robot/head/command_head_nod
  75. /robot/head/command_head_pan
  76. /robot/head/head_state
  77. /robot/head_position_controller/joints/head_controller/command
  78. /robot/head_position_controller/joints/head_controller/pid/parameter_descriptions
  79. /robot/head_position_controller/joints/head_controller/pid/parameter_updates
  80. /robot/head_position_controller/joints/head_controller/state
  81. /robot/joint_states
  82. /robot/left_gripper_controller/joints/l_gripper_l_finger_controller/command
  83. /robot/left_gripper_controller/joints/l_gripper_l_finger_controller/pid/parameter_descriptions
  84. /robot/left_gripper_controller/joints/l_gripper_l_finger_controller/pid/parameter_updates
  85. /robot/left_gripper_controller/joints/l_gripper_l_finger_controller/state
  86. /robot/left_gripper_controller/joints/l_gripper_r_finger_controller/command
  87. /robot/left_gripper_controller/joints/l_gripper_r_finger_controller/pid/parameter_descriptions
  88. /robot/left_gripper_controller/joints/l_gripper_r_finger_controller/pid/parameter_updates
  89. /robot/left_gripper_controller/joints/l_gripper_r_finger_controller/state
  90. /robot/left_joint_effort_controller/joints/left_e0_controller/command
  91. /robot/left_joint_effort_controller/joints/left_e1_controller/command
  92. /robot/left_joint_effort_controller/joints/left_s0_controller/command
  93. /robot/left_joint_effort_controller/joints/left_s1_controller/command
  94. /robot/left_joint_effort_controller/joints/left_w0_controller/command
  95. /robot/left_joint_effort_controller/joints/left_w1_controller/command
  96. /robot/left_joint_effort_controller/joints/left_w2_controller/command
  97. /robot/left_joint_position_controller/joints/left_e0_controller/command
  98. /robot/left_joint_position_controller/joints/left_e0_controller/pid/parameter_descriptions
  99. /robot/left_joint_position_controller/joints/left_e0_controller/pid/parameter_updates
  100. /robot/left_joint_position_controller/joints/left_e0_controller/state
  101. /robot/left_joint_position_controller/joints/left_e1_controller/command
  102. /robot/left_joint_position_controller/joints/left_e1_controller/pid/parameter_descriptions
  103. /robot/left_joint_position_controller/joints/left_e1_controller/pid/parameter_updates
  104. /robot/left_joint_position_controller/joints/left_e1_controller/state
  105. /robot/left_joint_position_controller/joints/left_s0_controller/command
  106. /robot/left_joint_position_controller/joints/left_s0_controller/pid/parameter_descriptions
  107. /robot/left_joint_position_controller/joints/left_s0_controller/pid/parameter_updates
  108. /robot/left_joint_position_controller/joints/left_s0_controller/state
  109. /robot/left_joint_position_controller/joints/left_s1_controller/command
  110. /robot/left_joint_position_controller/joints/left_s1_controller/pid/parameter_descriptions
  111. /robot/left_joint_position_controller/joints/left_s1_controller/pid/parameter_updates
  112. /robot/left_joint_position_controller/joints/left_s1_controller/state
  113. /robot/left_joint_position_controller/joints/left_w0_controller/command
  114. /robot/left_joint_position_controller/joints/left_w0_controller/pid/parameter_descriptions
  115. /robot/left_joint_position_controller/joints/left_w0_controller/pid/parameter_updates
  116. /robot/left_joint_position_controller/joints/left_w0_controller/state
  117. /robot/left_joint_position_controller/joints/left_w1_controller/command
  118. /robot/left_joint_position_controller/joints/left_w1_controller/pid/parameter_descriptions
  119. /robot/left_joint_position_controller/joints/left_w1_controller/pid/parameter_updates
  120. /robot/left_joint_position_controller/joints/left_w1_controller/state
  121. /robot/left_joint_position_controller/joints/left_w2_controller/command
  122. /robot/left_joint_position_controller/joints/left_w2_controller/pid/parameter_descriptions
  123. /robot/left_joint_position_controller/joints/left_w2_controller/pid/parameter_updates
  124. /robot/left_joint_position_controller/joints/left_w2_controller/state
  125. /robot/left_joint_velocity_controller/joints/left_e0_controller/command
  126. /robot/left_joint_velocity_controller/joints/left_e0_controller/pid/parameter_descriptions
  127. /robot/left_joint_velocity_controller/joints/left_e0_controller/pid/parameter_updates
  128. /robot/left_joint_velocity_controller/joints/left_e0_controller/state
  129. /robot/left_joint_velocity_controller/joints/left_e1_controller/command
  130. /robot/left_joint_velocity_controller/joints/left_e1_controller/pid/parameter_descriptions
  131. /robot/left_joint_velocity_controller/joints/left_e1_controller/pid/parameter_updates
  132. /robot/left_joint_velocity_controller/joints/left_e1_controller/state
  133. /robot/left_joint_velocity_controller/joints/left_s0_controller/command
  134. /robot/left_joint_velocity_controller/joints/left_s0_controller/pid/parameter_descriptions
  135. /robot/left_joint_velocity_controller/joints/left_s0_controller/pid/parameter_updates
  136. /robot/left_joint_velocity_controller/joints/left_s0_controller/state
  137. /robot/left_joint_velocity_controller/joints/left_s1_controller/command
  138. /robot/left_joint_velocity_controller/joints/left_s1_controller/pid/parameter_descriptions
  139. /robot/left_joint_velocity_controller/joints/left_s1_controller/pid/parameter_updates
  140. /robot/left_joint_velocity_controller/joints/left_s1_controller/state
  141. /robot/left_joint_velocity_controller/joints/left_w0_controller/command
  142. /robot/left_joint_velocity_controller/joints/left_w0_controller/pid/parameter_descriptions
  143. /robot/left_joint_velocity_controller/joints/left_w0_controller/pid/parameter_updates
  144. /robot/left_joint_velocity_controller/joints/left_w0_controller/state
  145. /robot/left_joint_velocity_controller/joints/left_w1_controller/command
  146. /robot/left_joint_velocity_controller/joints/left_w1_controller/pid/parameter_descriptions
  147. /robot/left_joint_velocity_controller/joints/left_w1_controller/pid/parameter_updates
  148. /robot/left_joint_velocity_controller/joints/left_w1_controller/state
  149. /robot/left_joint_velocity_controller/joints/left_w2_controller/command
  150. /robot/left_joint_velocity_controller/joints/left_w2_controller/pid/parameter_descriptions
  151. /robot/left_joint_velocity_controller/joints/left_w2_controller/pid/parameter_updates
  152. /robot/left_joint_velocity_controller/joints/left_w2_controller/state
  153. /robot/limb/left/endpoint_state
  154. /robot/limb/left/gravity_compensation_torques
  155. /robot/limb/left/joint_command
  156. /robot/limb/right/endpoint_state
  157. /robot/limb/right/gravity_compensation_torques
  158. /robot/limb/right/joint_command
  159. /robot/navigators/left_navigator/state
  160. /robot/navigators/right_navigator/state
  161. /robot/navigators/torso_left_navigator/state
  162. /robot/navigators/torso_right_navigator/state
  163. /robot/range/left_hand_range/state
  164. /robot/range/right_hand_range/state
  165. /robot/right_gripper_controller/joints/r_gripper_l_finger_controller/command
  166. /robot/right_gripper_controller/joints/r_gripper_l_finger_controller/pid/parameter_descriptions
  167. /robot/right_gripper_controller/joints/r_gripper_l_finger_controller/pid/parameter_updates
  168. /robot/right_gripper_controller/joints/r_gripper_l_finger_controller/state
  169. /robot/right_gripper_controller/joints/r_gripper_r_finger_controller/command
  170. /robot/right_gripper_controller/joints/r_gripper_r_finger_controller/pid/parameter_descriptions
  171. /robot/right_gripper_controller/joints/r_gripper_r_finger_controller/pid/parameter_updates
  172. /robot/right_gripper_controller/joints/r_gripper_r_finger_controller/state
  173. /robot/right_joint_effort_controller/joints/right_e0_controller/command
  174. /robot/right_joint_effort_controller/joints/right_e1_controller/command
  175. /robot/right_joint_effort_controller/joints/right_s0_controller/command
  176. /robot/right_joint_effort_controller/joints/right_s1_controller/command
  177. /robot/right_joint_effort_controller/joints/right_w0_controller/command
  178. /robot/right_joint_effort_controller/joints/right_w1_controller/command
  179. /robot/right_joint_effort_controller/joints/right_w2_controller/command
  180. /robot/right_joint_position_controller/joints/right_e0_controller/command
  181. /robot/right_joint_position_controller/joints/right_e0_controller/pid/parameter_descriptions
  182. /robot/right_joint_position_controller/joints/right_e0_controller/pid/parameter_updates
  183. /robot/right_joint_position_controller/joints/right_e0_controller/state
  184. /robot/right_joint_position_controller/joints/right_e1_controller/command
  185. /robot/right_joint_position_controller/joints/right_e1_controller/pid/parameter_descriptions
  186. /robot/right_joint_position_controller/joints/right_e1_controller/pid/parameter_updates
  187. /robot/right_joint_position_controller/joints/right_e1_controller/state
  188. /robot/right_joint_position_controller/joints/right_s0_controller/command
  189. /robot/right_joint_position_controller/joints/right_s0_controller/pid/parameter_descriptions
  190. /robot/right_joint_position_controller/joints/right_s0_controller/pid/parameter_updates
  191. /robot/right_joint_position_controller/joints/right_s0_controller/state
  192. /robot/right_joint_position_controller/joints/right_s1_controller/command
  193. /robot/right_joint_position_controller/joints/right_s1_controller/pid/parameter_descriptions
  194. /robot/right_joint_position_controller/joints/right_s1_controller/pid/parameter_updates
  195. /robot/right_joint_position_controller/joints/right_s1_controller/state
  196. /robot/right_joint_position_controller/joints/right_w0_controller/command
  197. /robot/right_joint_position_controller/joints/right_w0_controller/pid/parameter_descriptions
  198. /robot/right_joint_position_controller/joints/right_w0_controller/pid/parameter_updates
  199. /robot/right_joint_position_controller/joints/right_w0_controller/state
  200. /robot/right_joint_position_controller/joints/right_w1_controller/command
  201. /robot/right_joint_position_controller/joints/right_w1_controller/pid/parameter_descriptions
  202. /robot/right_joint_position_controller/joints/right_w1_controller/pid/parameter_updates
  203. /robot/right_joint_position_controller/joints/right_w1_controller/state
  204. /robot/right_joint_position_controller/joints/right_w2_controller/command
  205. /robot/right_joint_position_controller/joints/right_w2_controller/pid/parameter_descriptions
  206. /robot/right_joint_position_controller/joints/right_w2_controller/pid/parameter_updates
  207. /robot/right_joint_position_controller/joints/right_w2_controller/state
  208. /robot/right_joint_velocity_controller/joints/right_e0_controller/command
  209. /robot/right_joint_velocity_controller/joints/right_e0_controller/pid/parameter_descriptions
  210. /robot/right_joint_velocity_controller/joints/right_e0_controller/pid/parameter_updates
  211. /robot/right_joint_velocity_controller/joints/right_e0_controller/state
  212. /robot/right_joint_velocity_controller/joints/right_e1_controller/command
  213. /robot/right_joint_velocity_controller/joints/right_e1_controller/pid/parameter_descriptions
  214. /robot/right_joint_velocity_controller/joints/right_e1_controller/pid/parameter_updates
  215. /robot/right_joint_velocity_controller/joints/right_e1_controller/state
  216. /robot/right_joint_velocity_controller/joints/right_s0_controller/command
  217. /robot/right_joint_velocity_controller/joints/right_s0_controller/pid/parameter_descriptions
  218. /robot/right_joint_velocity_controller/joints/right_s0_controller/pid/parameter_updates
  219. /robot/right_joint_velocity_controller/joints/right_s0_controller/state
  220. /robot/right_joint_velocity_controller/joints/right_s1_controller/command
  221. /robot/right_joint_velocity_controller/joints/right_s1_controller/pid/parameter_descriptions
  222. /robot/right_joint_velocity_controller/joints/right_s1_controller/pid/parameter_updates
  223. /robot/right_joint_velocity_controller/joints/right_s1_controller/state
  224. /robot/right_joint_velocity_controller/joints/right_w0_controller/command
  225. /robot/right_joint_velocity_controller/joints/right_w0_controller/pid/parameter_descriptions
  226. /robot/right_joint_velocity_controller/joints/right_w0_controller/pid/parameter_updates
  227. /robot/right_joint_velocity_controller/joints/right_w0_controller/state
  228. /robot/right_joint_velocity_controller/joints/right_w1_controller/command
  229. /robot/right_joint_velocity_controller/joints/right_w1_controller/pid/parameter_descriptions
  230. /robot/right_joint_velocity_controller/joints/right_w1_controller/pid/parameter_updates
  231. /robot/right_joint_velocity_controller/joints/right_w1_controller/state
  232. /robot/right_joint_velocity_controller/joints/right_w2_controller/command
  233. /robot/right_joint_velocity_controller/joints/right_w2_controller/pid/parameter_descriptions
  234. /robot/right_joint_velocity_controller/joints/right_w2_controller/pid/parameter_updates
  235. /robot/right_joint_velocity_controller/joints/right_w2_controller/state
  236. /robot/set_super_enable
  237. /robot/set_super_reset
  238. /robot/set_super_stop
  239. /robot/sim/started
  240. /robot/sonar/head_sonar/state
  241. /robot/state
  242. /robot/xdisplay
  243. /robot/xdisplay/compressed
  244. /robot/xdisplay/compressed/parameter_descriptions
  245. /robot/xdisplay/compressed/parameter_updates
  246. /robot/xdisplay/compressedDepth
  247. /robot/xdisplay/compressedDepth/parameter_descriptions
  248. /robot/xdisplay/compressedDepth/parameter_updates
  249. /robot/xdisplay/theora
  250. /robot/xdisplay/theora/parameter_descriptions
  251. /robot/xdisplay/theora/parameter_updates
  252. /rosout
  253. /rosout_agg
  254. /sim/laserscan/left_hand_range/state
  255. /sim/laserscan/right_hand_range/state
  256. /tf
  257. /tf_static