ROS (Robot Operating System)

From GICL Wiki
Revision as of 14:14, 29 April 2012 by Jryan (Talk | contribs)

Jump to: navigation, search

We're using ROS to do our work so we can easily translate it to the robot.



The ROS stack for hooking up to the pioneer. Here is an example of our robot using ROS and the navigation system:


After following the directions above, we have to set the p2os/port to our cable's device name:

$ rosparam set p2os/port /dev/ttyUSB0


Run on the base:

$ rosrun p2os_driver p2os

Run on the computer controlling the base:

$ rosrun p2os_dashboard p2os_dashboard

If you get an error like:

P2OS connection opening serial port /dev/ttyS0...

This command should fix it:

$ rosparam set p2os/port /dev/ttyUSB0

Control with Keyboard

After starting the p2os driver and everything, you can control the robot via keyboard with:

$ roslaunch p2os_launch teleop_keyboard.launch


There are two major parts to getting Navigation setup/working. First we have to setup the robot, and the ROS software to publish the needed information on the ROS message bus. Then we have to setup the navigation package to interact with these messages.


It looks like for the pose we need to use robot_pose_ekf to:

  • Merge sensor data from the GPS and P2OS interface.
  • Apply the EKF filter to this data.
  • Publish the information on the message bus for the nav stack to use.

TODO We need to get this working to have the robot pose:

!! - Updated April 19th

Point Cloud Library

SLAM, tf, Navigation

To get rviz to work put this in your .bashrc