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

Roomba teleoperation and telepresence... need help

asked 2011-08-23 17:26:43 -0500

kleekru gravatar image

updated 2011-08-24 05:06:25 -0500

AHornung gravatar image

I have a Roomba 550, an IRobot SCI cable, a laptop running Ubuntu and installed ROS and went through most of the tutorials. I've done some coding, have worked in IT for 2 decades, built a 12 servo music bot with pedals, swtiches and shift registers leveraging a Basic Stamp... but I'm a novice and not a developer or Engineer by trade. I'm finding it difficult to put the pieces together to get some basic navigation in place for the Roomba (without the Kinect for now). Can someone help me get started with some basic instruction with installing the Roomba 550 code, getting web-based control of the roomba in place. I have a platform on the Roomba for the laptop and I currently have Windows installed with Roborealm. Telepresence works great and I can control the bot remotely using skype and Roborealm.... but once the trial runs out, I don't want to buy it. I'm really interested in learning ROS and getting the Roomba &/or turtlebot code working with it.... and once I'm comfortable, add a kinect and maybe a manipulator someday. I really need someone to take me under their wing. I know I can get this with the right help. For now, some instruction on getting the roomba to move around the room with remote operation... would be a a good start.

edit retag flag offensive close merge delete

5 Answers

Sort by » oldest newest most voted
1

answered 2011-09-21 20:46:33 -0500

The turtlebot drivers are not out-of-the-box compatible with a Roomba, take a look at the roomba_500_series pkg.

edit flag offensive delete link more
0

answered 2012-06-27 22:32:17 -0500

Crazyrobotman gravatar image

Hey Guys:

This isn't exactly using ROS, but if you are looking for the info on how to communicate to the roomba, it might help to look at this: http://www.robotappstore.com/Knowledge-Base/3-Serial-Port-Baud-Rate-Configuration/17.html

I've spent a little bit of time with the ROS software package, and if you are just trying to play around with it initially - it might be worth your time to try out the tutorial first - using ultra basic serial communications.

It goes over connecting to the unit, baud rates, and various other things which could easily be overlooked when using ROS.

Otherwise - ROS is a pretty cool development platform. How has your development been going?

Best, Ryan

edit flag offensive delete link more
2

answered 2012-05-04 05:20:09 -0500

kleekru gravatar image

updated 2012-05-04 05:59:05 -0500

I eventually got a real working telepresence bot going... And operated it around my home in California from a hotel room in Tokyo. Here is a link: Roomba ROS telepresence bot

I hope to get more details posted about the entire project. Let me know if you are interested. Kevin

edit flag offensive delete link more

Comments

Congratulations! I also applaud your persistence. It's easy to give up, but you didn't. We are definitely interested to get more details about your project.

Alex Bravo gravatar image Alex Bravo  ( 2012-06-10 05:16:29 -0500 )edit
2

answered 2011-09-06 10:14:22 -0500

lucascoelho gravatar image

Plug the Create on laptop, ssh, and use "$ dmesg | grep tty". It will show in which port the Create is plugged.

Now edit the file "turtlebot_node.py".

edit flag offensive delete link more

Comments

It may also be useful to create a symbolic link (aka. /dev/create_serial) and set up your ROS node's configuration to reflect that. You can then be sure that the create will always come up as the same hardware device (to ROS), no matter what /dev/ttyS* it shows up to as Ubuntu.
mjcarroll gravatar image mjcarroll  ( 2011-09-07 01:22:26 -0500 )edit
Here is an example udev rules file: https://github.com/wjwwood/au-automow/blob/master/au_automow_common/automow_etc/etc/udev/rules.d/42-mowbot-ftdi.rules to be placed in /etc/udev/rules.d/file.rules. You can find matching attributes using the command at the top of the file.
mjcarroll gravatar image mjcarroll  ( 2011-09-07 01:24:00 -0500 )edit
Thank you for the reply! I receive the following but I cannot tell if this means I'm actually communicating with the roomba or not: turtlebot@kevin-laptop:~/ros_workspace$ dmesg |grep tty [ 0.000000] console [tty0] enabled [ 0.639839] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A [ 0.640245] 00:09: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
kleekru gravatar image kleekru  ( 2011-09-16 18:58:25 -0500 )edit
Are you using a rs232 connector, and after a serial-usb converter to plug on the laptop? Or are you connecting on the laptop directly through a serial port?
lucascoelho gravatar image lucascoelho  ( 2011-09-18 02:13:41 -0500 )edit
I'm using the iRobot SCI cable which has the RS232 on te laptop side (no USB) and the mini DIN connected directly to the port on the Roomba. There is a unit on the iRobot cable which has LEDs that seem to indicate there is something flowing to the Roomba... at one point it was on the tb dashboard
kleekru gravatar image kleekru  ( 2011-09-18 02:52:18 -0500 )edit
Actually, somehow overnight (the dashboard was not showing the Roomba about 8 hours ago), the Roomba battery status. When I try to put it in "Full mode", I get the following error: "Failed to put the turtlebot in full mode: service call failed with error: service [/turtlebot_node/set_operation_mode] unavailable" and all of the sensors, etc. are stale. There seems to be an ongoing permissions issues... I tried to run turtlebot_node.py directly through Python and received an error that it could not recognize rospy... in another case, I tried to install Roomba_500_series stack and I am receiving errors that the cereal_port package could not be created. I can't see a pattern here... hopefully someone else (with much more experience) can. Thank you!
kleekru gravatar image kleekru  ( 2011-09-18 03:20:39 -0500 )edit
I noticed the dashboard power indicator for the Roomba updates only when it is connected to the home base dock/charger. Odd.
kleekru gravatar image kleekru  ( 2011-09-18 07:56:08 -0500 )edit
2

answered 2011-08-24 05:14:55 -0500

mjcarroll gravatar image

You should have no issue following the turtlebot tutorials: http://www.ros.org/wiki/Robots/TurtleBot?action=show&redirect=TurtleBot#Tutorials without the Kinect.

Doing telepresence should work "out of the box" with ROs, the Turtlebot stacks, and a compatible Roomba.

From there, you could easily add a Kinect and IMU to the design.

edit flag offensive delete link more

Comments

Thanks, I've been through the turtlebot tutorial... and I can't seem to get ROS to recognize turtlebot packages... it recognizes it as a stack which I think is a reasonable start. Pardon my ignorance here but I thought I would need to perform a rosmake on turtlebot to compile the packages. Help
kleekru gravatar image kleekru  ( 2011-08-30 18:53:29 -0500 )edit
So if you try to "roscd" to any of the turtlebot directories and it won't work? If you have a computer that you can reformat or dual-boot, I would strongly recommend using the Turtlebot ISO image to get started with the Turtlebot platform.
mjcarroll gravatar image mjcarroll  ( 2011-08-31 05:09:16 -0500 )edit
OK, I'm much further now... I have an OSX Lion workstation with an Ubuntu VM and nearly complete with the ros install. I now have the laptop installed with the turtlebot image and was able to start the turtlebot service... but I'm noticing (probably because the software is expecting a Create with a USB cable...) that the SCI cable connected to the Roomba is not allowing connectivity to it through the service. Any additional suggestions on easy updates to allow communication across the Serial cable (iRobot SCI)?
kleekru gravatar image kleekru  ( 2011-09-04 16:59:14 -0500 )edit
I found a post here (http://profmason.com/?p=1565) that includes the following instructions to fix.... roscd turtlebot_node. cd to the node directory. gedit the file “turtlebot_node.py” and change the default_port to ‘/dev/ttyS0′ ... HOWEVER, this didn't work. I still get a message when I launch turtlebot_bringup that says: "[ERROR] [WallTime: 1315203720.702371] Failed to open port /dev/ttyS0. Please make sure the Create cable is plugged into the computer."
kleekru gravatar image kleekru  ( 2011-09-04 18:30:46 -0500 )edit
1
Do you have permission to access ttyS0? try doing a sudo chmod a+rw /dev/ttyS0 then rerun the software. The default turtlebot software adds /dev/ttyUSB0 to the default permissions but not /dev/ttyS0
mmwise gravatar image mmwise  ( 2011-09-07 03:40:28 -0500 )edit
Thank you, that seemed to partially work... but now I have a different but maybe related problem. I'm getting the following failure when launching the turtlebot: process[turtlebot_node-3]: started with pid [7040] [INFO] [WallTime: 1316330254.072326] serial port: /dev/ttyS0 [INFO] [WallTime: 1316330254.072595] update_rate: 30.0 [INFO] [WallTime: 1316330254.072796] drive mode: twist [INFO] [WallTime: 1316330254.072993] has gyro: True shutdown request: new node registered with same name Failed to contact device with error: [Error reading from SCI port. No data.]. Please check that the Create is powered on and that the connector is plugged into the Create.[turtlebot_node-3] process has finished cleanly. Any ideas?
kleekru gravatar image kleekru  ( 2011-09-17 19:20:25 -0500 )edit

Question Tools

4 followers

Stats

Asked: 2011-08-23 17:26:43 -0500

Seen: 2,197 times

Last updated: Jun 27 '12