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

Revision history [back]

click to hide/show revision 1
initial version

The RobotSetup navigation tutorial (http://wiki.ros.org/navigation/Tutorials/RobotSetup) is a good place to start. In particular, the diagram in section 1 of that page shows the relationship between the navigation planners (the box in the middle) and the controller that will set the speeds of the four wheels.

The output of the local planner is a geometry_msgs/Twist message on the /cmd_vel topic (by default). The controller – which you need to supply – has to convert from the linear x velocity and the angular z velocity to wheel speeds for the four motors. You don't specify much about the hardware, so I don't know which direction to point you. There are packages in ROS such as ros_control that are configurable to talk to different hardware. On my robot there is an Arduino-compatible board that controls the motors for a differential-drive robot, so I'm using instead the ros_arduino_bridge package as the controller. (Other options for my case include rosserial_arduino.)

Once you have a controller in place that listens on the /cmd_vel topic, you can send those messages either using rostopic pub or using a panel in rviz.

The RobotSetup navigation tutorial (http://wiki.ros.org/navigation/Tutorials/RobotSetup) is a good place to start. In particular, the diagram in section 1 of that page shows the relationship between the navigation planners (the box in the middle) and the controller that will set the speeds of the four wheels.

The output of the local planner is a geometry_msgs/Twist message on the /cmd_vel topic (by default). The controller – which you need to supply – has to convert from the linear x velocity and the angular z velocity to wheel speeds for the four motors. You don't specify much about the hardware, so I don't know which direction to point you. There are packages in ROS such as ros_control that are configurable to talk to different hardware. On my robot there is an Arduino-compatible board that controls the motors for a differential-drive robot, so I'm using instead the ros_arduino_bridge package as the controller. (Other options for my case include rosserial_arduino.)

Once you have a controller in place that listens on the /cmd_vel topic, you can send those messages either using rostopic pub or using a panel in rviz. After you get the controller working you will then need to set up the planners, probably using move_base.