HowToInstallRoombaPackage

From robotica.unileon.es
Revision as of 16:56, 18 October 2013 by WikiSheriff (talk | contribs) (ROS references)

Jump to: navigation, search

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