Ask Your Question

Revision history [back]

Is your turtlebot_node running this is what rosnode info turtlebot_node should return:

turtlebot-user@turtlebot-workstation$ rosnode info turtlebot_node
--------------------------------------------------------------------------------
Node [/turtlebot_node]
Publications: 
 * /turtlebot_node/sensor_state [turtlebot_node/TurtlebotSensorState]
     * /imu/raw [sensor_msgs/Imu]
 * /imu/data [sensor_msgs/Imu]
 * /joint_states [sensor_msgs/JointState]
 * /rosout [rosgraph_msgs/Log]
 * /odom [nav_msgs/Odometry]
 * /diagnostics [diagnostic_msgs/DiagnosticArray]

Subscriptions: 
 * /turtlebot_node/cmd_vel [unknown type]

Services: 
 * /turtlebot_node/set_operation_mode
 * /turtlebot_node/set_digital_outputs


contacting node http://10.0.11.141:36131/ ...
Pid: 16071
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound
    * transport: TCPROS
 * topic: /joint_states
    * to: /robot_state_publisher
    * direction: outbound
    * transport: TCPROS
 * topic: /diagnostics
    * to: /diagnostic_aggregator
    * direction: outbound
    * transport: TCPROS

Is your turtlebot_node running this is what rosnode info turtlebot_node should return:

turtlebot-user@turtlebot-workstation$ rosnode info turtlebot_node
--------------------------------------------------------------------------------
Node [/turtlebot_node]
Publications: 
 * /turtlebot_node/sensor_state [turtlebot_node/TurtlebotSensorState]
  * /imu/raw [sensor_msgs/Imu]
 * /imu/data [sensor_msgs/Imu]
 * /joint_states [sensor_msgs/JointState]
 * /rosout [rosgraph_msgs/Log]
 * /odom [nav_msgs/Odometry]
 * /diagnostics [diagnostic_msgs/DiagnosticArray]

Subscriptions: 
 * /turtlebot_node/cmd_vel [unknown type]

Services: 
 * /turtlebot_node/set_operation_mode
 * /turtlebot_node/set_digital_outputs


contacting node http://10.0.11.141:36131/ ...
Pid: 16071
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound
    * transport: TCPROS
 * topic: /joint_states
    * to: /robot_state_publisher
    * direction: outbound
    * transport: TCPROS
 * topic: /diagnostics
    * to: /diagnostic_aggregator
    * direction: outbound
    * transport: TCPROS

Is your turtlebot_node running this running???

This is what rosnode info turtlebot_node should return:

turtlebot-user@turtlebot-workstation$ rosnode info turtlebot_node
--------------------------------------------------------------------------------
Node [/turtlebot_node]
Publications: 
 * /turtlebot_node/sensor_state [turtlebot_node/TurtlebotSensorState]
 * /imu/raw [sensor_msgs/Imu]
 * /imu/data [sensor_msgs/Imu]
 * /joint_states [sensor_msgs/JointState]
 * /rosout [rosgraph_msgs/Log]
 * /odom [nav_msgs/Odometry]
 * /diagnostics [diagnostic_msgs/DiagnosticArray]

Subscriptions: 
 * /turtlebot_node/cmd_vel [unknown type]

Services: 
 * /turtlebot_node/set_operation_mode
 * /turtlebot_node/set_digital_outputs


contacting node http://10.0.11.141:36131/ ...
Pid: 16071
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound
    * transport: TCPROS
 * topic: /joint_states
    * to: /robot_state_publisher
    * direction: outbound
    * transport: TCPROS
 * topic: /diagnostics
    * to: /diagnostic_aggregator
    * direction: outbound
    * transport: TCPROS

Is To answer your questions:

1) odom is the odometry topic published by the turtlebot_node. This report the pose of the TurtleBot base_link.

2) You should not create the odom topic. The turtlebot_node should be publishing it.

3) Run the turtlebot_node. This leads me to ask is your turtlebot_node running???

This is what rosnode info turtlebot_node should return:

turtlebot-user@turtlebot-workstation$ rosnode info turtlebot_node
--------------------------------------------------------------------------------
Node [/turtlebot_node]
Publications: 
 * /turtlebot_node/sensor_state [turtlebot_node/TurtlebotSensorState]
 * /imu/raw [sensor_msgs/Imu]
 * /imu/data [sensor_msgs/Imu]
 * /joint_states [sensor_msgs/JointState]
 * /rosout [rosgraph_msgs/Log]
 * /odom [nav_msgs/Odometry]
 * /diagnostics [diagnostic_msgs/DiagnosticArray]

Subscriptions: 
 * /turtlebot_node/cmd_vel [unknown type]

Services: 
 * /turtlebot_node/set_operation_mode
 * /turtlebot_node/set_digital_outputs


contacting node http://10.0.11.141:36131/ ...
Pid: 16071
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound
    * transport: TCPROS
 * topic: /joint_states
    * to: /robot_state_publisher
    * direction: outbound
    * transport: TCPROS
 * topic: /diagnostics
    * to: /diagnostic_aggregator
    * direction: outbound
    * transport: TCPROS

To answer your questions:

1) odom is the odometry topic published by the turtlebot_node. This report reports the pose of the TurtleBot base_link.

2) You should not create the odom topic. The turtlebot_node should be publishing it.

3) Run the turtlebot_node. This leads me to ask is your turtlebot_node running???

This is what rosnode info turtlebot_node should return:

turtlebot-user@turtlebot-workstation$ rosnode info turtlebot_node
--------------------------------------------------------------------------------
Node [/turtlebot_node]
Publications: 
 * /turtlebot_node/sensor_state [turtlebot_node/TurtlebotSensorState]
 * /imu/raw [sensor_msgs/Imu]
 * /imu/data [sensor_msgs/Imu]
 * /joint_states [sensor_msgs/JointState]
 * /rosout [rosgraph_msgs/Log]
 * /odom [nav_msgs/Odometry]
 * /diagnostics [diagnostic_msgs/DiagnosticArray]

Subscriptions: 
 * /turtlebot_node/cmd_vel [unknown type]

Services: 
 * /turtlebot_node/set_operation_mode
 * /turtlebot_node/set_digital_outputs


contacting node http://10.0.11.141:36131/ ...
Pid: 16071
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound
    * transport: TCPROS
 * topic: /joint_states
    * to: /robot_state_publisher
    * direction: outbound
    * transport: TCPROS
 * topic: /diagnostics
    * to: /diagnostic_aggregator
    * direction: outbound
    * transport: TCPROS

To answer your questions:

1) odom is the odometry topic published by the turtlebot_node. This reports the pose of the TurtleBot base_link.

2) You should not create the odom topic. The turtlebot_node should be publishing it.

3) Run the turtlebot_node. This leads me to ask is your turtlebot_node running???

This is what rosnode info turtlebot_node should return:

turtlebot-user@turtlebot-workstation$ rosnode info turtlebot_node
--------------------------------------------------------------------------------
Node [/turtlebot_node]
Publications: 
 * /turtlebot_node/sensor_state [turtlebot_node/TurtlebotSensorState]
 * /imu/raw [sensor_msgs/Imu]
 * /imu/data [sensor_msgs/Imu]
 * /joint_states [sensor_msgs/JointState]
 * /rosout [rosgraph_msgs/Log]
 * /odom [nav_msgs/Odometry]
 * /diagnostics [diagnostic_msgs/DiagnosticArray]

Subscriptions: 
 * /turtlebot_node/cmd_vel [unknown type]

Services: 
 * /turtlebot_node/set_operation_mode
 * /turtlebot_node/set_digital_outputs


contacting node http://10.0.11.141:36131/ ...
Pid: 16071
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound
    * transport: TCPROS
 * topic: /joint_states
    * to: /robot_state_publisher
    * direction: outbound
    * transport: TCPROS
 * topic: /diagnostics
    * to: /diagnostic_aggregator
    * direction: outbound
    * transport: TCPROS

To answer other questions:

1) As TurtleBots are starting to ship out we're trying to finalize much of the code that has been in development. Recently we move our development to using the turtlebot service by default, this impacted many of the launch files in turtlebot_apps, so yes the launch files did change on monday or tuesday of this week (8/8/2011). We Will most likely continue to do release updates over the next week or so to improve usability for turtlebot users.

2) looking at the documentation for the gmapping and robot_pose_ekf packages we can see that the gmapping package provides the map -> odom transform while robot_pose_ekf package provide the odom_combined -> base_link transform. TF then provides the transforms for all the resulting relations when requested.

3) the robot_pose_ekf package uses an extended Kalman filter to combine the raw odometry data from the robot with the imu data using the covariances provided in the odom and imu messages to result in a more accurate odometry that is called odom_combined.

To answer your questions:

1) odom is the odometry topic published by the turtlebot_node. This reports the pose of the TurtleBot base_link.

2) You should not create the odom topic. The turtlebot_node should be publishing it.

3) Run the turtlebot_node. This leads me to ask is your turtlebot_node running???

This is what rosnode info turtlebot_node should return:

turtlebot-user@turtlebot-workstation$ rosnode info turtlebot_node
--------------------------------------------------------------------------------
Node [/turtlebot_node]
Publications: 
 * /turtlebot_node/sensor_state [turtlebot_node/TurtlebotSensorState]
 * /imu/raw [sensor_msgs/Imu]
 * /imu/data [sensor_msgs/Imu]
 * /joint_states [sensor_msgs/JointState]
 * /rosout [rosgraph_msgs/Log]
 * /odom [nav_msgs/Odometry]
 * /diagnostics [diagnostic_msgs/DiagnosticArray]

Subscriptions: 
 * /turtlebot_node/cmd_vel [unknown type]

Services: 
 * /turtlebot_node/set_operation_mode
 * /turtlebot_node/set_digital_outputs


contacting node http://10.0.11.141:36131/ ...
Pid: 16071
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound
    * transport: TCPROS
 * topic: /joint_states
    * to: /robot_state_publisher
    * direction: outbound
    * transport: TCPROS
 * topic: /diagnostics
    * to: /diagnostic_aggregator
    * direction: outbound
    * transport: TCPROS

To answer other questions:

1) As TurtleBots are starting to ship out we're trying to finalize much of the code that has been in development. Recently we move our development to using the turtlebot service by default, this impacted many of the launch files in turtlebot_apps, so yes the launch files did change on monday or tuesday of this week (8/8/2011). We Will most likely continue to do release updates over the next week or so to improve usability for turtlebot users.

2) looking at the documentation for the gmapping and robot_pose_ekf packages we can see that the gmapping package provides the map -> odom transform while robot_pose_ekf package provide the odom_combined -> base_link transform. TF then provides the transforms for all the resulting relations when requested.

3) the robot_pose_ekf package uses an extended Kalman filter to combine the raw odometry data from the robot with the imu data using the covariances provided in the odom and imu messages to result in a more accurate odometry that is called odom_combined.

I have also create a video tutorial that gives an overview of how odometry works on the TurtleBot, since it seems to be a popular question for TurtleBot users. You can find it here: http://www.youtube.com/watch?v=illug4H_B5U

To answer your questions:

1) odom is the odometry topic published by the turtlebot_node. This reports the pose of the TurtleBot base_link.

2) You should not create the odom topic. The turtlebot_node should be publishing it.

3) Run the turtlebot_node. This leads me to ask is your turtlebot_node running???

This is what rosnode info turtlebot_node should return:

turtlebot-user@turtlebot-workstation$ rosnode info turtlebot_node
--------------------------------------------------------------------------------
Node [/turtlebot_node]
Publications: 
 * /turtlebot_node/sensor_state [turtlebot_node/TurtlebotSensorState]
 * /imu/raw [sensor_msgs/Imu]
 * /imu/data [sensor_msgs/Imu]
 * /joint_states [sensor_msgs/JointState]
 * /rosout [rosgraph_msgs/Log]
 * /odom [nav_msgs/Odometry]
 * /diagnostics [diagnostic_msgs/DiagnosticArray]

Subscriptions: 
 * /turtlebot_node/cmd_vel [unknown type]

Services: 
 * /turtlebot_node/set_operation_mode
 * /turtlebot_node/set_digital_outputs


contacting node http://10.0.11.141:36131/ ...
Pid: 16071
Connections:
 * topic: /rosout
    * to: /rosout
    * direction: outbound
    * transport: TCPROS
 * topic: /joint_states
    * to: /robot_state_publisher
    * direction: outbound
    * transport: TCPROS
 * topic: /diagnostics
    * to: /diagnostic_aggregator
    * direction: outbound
    * transport: TCPROS

To answer other questions:

1) As TurtleBots are starting to ship out we're trying to finalize much of the code that has been in development. Recently we move our development to using the turtlebot service by default, this impacted many of the launch files in turtlebot_apps, so yes the launch files did change on monday or tuesday of this week (8/8/2011). We Will most likely continue to do release updates over the next week or so to improve usability for turtlebot users.

2) looking at the documentation for the gmapping and robot_pose_ekf packages we can see that the gmapping package provides the map -> odom transform while robot_pose_ekf package provide the odom_combined -> base_link transform. TF then provides the transforms for all the resulting relations when requested.

3) the robot_pose_ekf package uses an extended Kalman filter to combine the raw odometry data from the robot with the imu data using the covariances provided in the odom and imu messages to result in a more accurate odometry that is called odom_combined.

I have also create a video tutorial that gives an overview of how odometry works on the TurtleBot, since it seems to be a popular question for TurtleBot users. You can find it here: http://www.youtube.com/watch?v=illug4H_B5U

here:http://www.youtube.com/watch?v=S4EkL68uB0c