HowToInstallRoombaPackage
Contents
Get packages
Mode 1
Step 1: Create a rosinstall file: (e.g turtlebot_roomba.install)
- hg: uri: http://code.google.com/p/parsec/ local-name: RoCKIn/parsec - svn: uri: http://code.in.tum.de/svn/turtlebot-roomba local-name: RoCKIn/turtlebot_roomba - svn: uri: http://isr-uc-ros-pkg.googlecode.com/svn/stacks/lse_communication/trunk local-name: RoCKIn/lse_communication - svn: uri: http://isr-uc-ros-pkg.googlecode.com/svn/stacks/serial_communication/trunk/cereal_port/ local-name: RoCKIn/cereal_port
Step 2: In your ROS workspace you can launch
rosinstall . turtlebot_roomba.install
Step 3: Some packages have deprecated methods (they are from ROS electric), so we can remove them in the compilation. The turtlebot_roomba package doesn't need all of them.
ToDo: We should fix them but I haven't got time. Also the dependencies of turtlebot_roomba should be checked
- Parsec
We can move outside folder parsec:
cmd_vel_safety_filter gmapping_offline parsec_arduino parsec_arduino_tests tf_odometry_relay
We need to fix the dependencies in some stacks:
diff -r f47a20bb44a5 parsec_bringup/manifest.xml
--- a/parsec_bringup/manifest.xml Fri Mar 30 09:32:23 2012 -0700
+++ b/parsec_bringup/manifest.xml Fri Oct 18 14:04:22 2013 +0200
@@ -15,7 +15,7 @@
<depend package="rospy" />
<depend package="geometry_msgs" />
<depend package="priority_mux" />
- <depend package="cmd_vel_safety_filter" />
+ <!-- <depend package="cmd_vel_safety_filter" /> -->
<depend package="compressed_visualization_transport" />
</package>
diff -r f47a20bb44a5 parsec_navigation/manifest.xml
--- a/parsec_navigation/manifest.xml Fri Mar 30 09:32:23 2012 -0700
+++ b/parsec_navigation/manifest.xml Fri Oct 18 14:04:22 2013 +0200
@@ -16,6 +16,8 @@
<depend package="move_base" />
<depend package="navfn" />
<depend package="parsec_perception" />
- <depend package="point_cloud_converter" />
+ <!-- <depend package="point_cloud_converter" /> -->
+ <depend package="pointcloud_to_laserscan" />
+<depend package="sensor_msgs"/><!-- for point cloud should be removed-->
<depend package="rcconsole" />
</package>
diff -r f47a20bb44a5 parsec_odometry/manifest.xml
--- a/parsec_odometry/manifest.xml Fri Mar 30 09:32:23 2012 -0700
+++ b/parsec_odometry/manifest.xml Fri Oct 18 14:04:22 2013 +0200
@@ -16,6 +16,6 @@
<depend package="parsec_msgs" />
<depend package="nav_msgs" />
<depend package="sensor_msgs" />
- <depend package="eigen" />
+ <!-- <depend package="eigen" /> -->
</package>
diff -r f47a20bb44a5 rcconsole/include/rcconsole/log_filter.h
--- a/rcconsole/include/rcconsole/log_filter.h Fri Mar 30 09:32:23 2012 -0700
+++ b/rcconsole/include/rcconsole/log_filter.h Fri Oct 18 14:04:22 2013 +0200
@@ -21,6 +21,9 @@
#include <rosgraph_msgs/Log.h>
+#include "ros/ros.h"
+#include "std_msgs/String.h"
+
namespace rcconsole {
class LogFilter : public nodelet::Nodelet {
- rurtlebot_roomba
we need to fix a problem with a deprecated method
Index: turtlebot_node/src/turtlebot_node/create_sensor_handler.py
===================================================================
--- turtlebot_node/src/turtlebot_node/create_sensor_handler.py (revisión: 29)
+++ turtlebot_node/src/turtlebot_node/create_sensor_handler.py (copia de trabajo)
@@ -35,12 +35,14 @@
import logging
import time
import rospy
+import genpy
from math import radians
from turtlebot_driver import SENSOR_GROUP_PACKET_LENGTHS
-_struct_I = roslib.message.struct_I
+_struct_I = genpy.message.struct_I
_struct_BI = struct.Struct(">BI")
_struct_12B2hBHhb7HBH5B4h = struct.Struct(">12B2hBHhb7HBH5B4h")
@@ -75,7 +77,7 @@
return msg
except struct.error, e:
- raise roslib.message.DeserializationError(e)
+ raise genpy.message.DeserializationError(e)
class CreateSensorHandler(object):
Mode 2
Step 1: Create a rosinstall file: (e.g turtlebot_roomba.install)
- svn: uri: http://isr-uc-ros-pkg.googlecode.com/svn/stacks/lse_communication/trunk local-name: RoCKIn/lse_communication - svn: uri: http://isr-uc-ros-pkg.googlecode.com/svn/stacks/serial_communication/trunk/cereal_port/ local-name: RoCKIn/cereal_port - svn: uri: http://isr-uc-ros-pkg.googlecode.com/svn/stacks/roomba_robot/trunk/roomba_500_series/ local-name: RoCKIn/roomba_500_series/
Step 2: In your ROS workspace you can launch
rosinstall . turtlebot_roomba.install
Compilation
The standard ROS compilation
$rosmake
If you want to mark it as INSTALLED add -i to rosmake but remember remove ROS_NOBUILD if you want to make changes and re-compile.
Content of ROS_NOBUILD
ROS_NOBUILD : created by rosmake to mark as installed
Running
Mode 1
We use roslaunch
$ roslaunch turtlebot_roomba_bringup ias-turtlebot
Other posibilities
driver.launch ias-turtlebot.launch laser.launch ias-turtlebot-kinect.launch kinect.launch minimal.launch
Mode 2
We use rosrun and roomba500 for our model 520
$ rosrun roomba_500_series roomba500_light_node
Other possibilities
godock_client godock_server roomba500_light_node roomba560_node
ROS references
Main Contributor: Gonçalo Cabrita Institute for Systems and Robotics at the University of Coimbra ISR Embedded Systems Lab
Roomba in ROS iRobot Roomba 500 package based on the iRobot Open Interface Specification lse_roomba_toolbox