Wednesday, March 31, 2010

Rovio Driver for ROS

An initial version of the ROS driver for the Rovio has been uploaded.
There is no odometry code yet and some things are a little broken but it's enough to perform basic teleoperation while logging the data into ROS on Linux.

Here is the default joystick layout for now.

Installation instructions.
1) Install Linux (You should already have completed this step, Ubuntu is strongly suggested)
2) Install ROS
3) Install the Probe driver from the Brown University Repository
4) Pull down the I heart Robotics ROS Repository
  cd ~/ros/stacks
  git clone git://
  cd iheart-ros-pkg/rovio
  rosdep install rovio
  rosmake rovio
5) In the rovio.launch file, edit the username and password to log into the Rovio.
6) Launch ROS
  roslaunch rovio.launch
7) Complete the Tutorials
8) ???
9) Profit


Anonymous said...

I've written a Keyboard controller for the rovio using your rovio drivers, but I'm having problems with the video streaming.

The probe driver has been updated, and now it is gscam pkg. I've been trying to fix it, but I can't make it work properly. I was wondering if you could help me a little with that.

I've been also thinking in adding functionalities to the rovio_controller, to use the Wowwee's API, getting more control on the robot, like posting it's absolute position, or adding a "Save_Home"/"Go_Home" command.

I Heart Robotics said...

What kind of problems are you having?

Anonymous said...

That's what I get when launching everything:

Gstreamer Version: GStreamer 0.10.30
Failed to PAUSE.
[gscam_publisher-2] process has died [pid 1604, exit code 255].

It says something about a log file, but I can't find it anywhere.

I'd also tried to access the camera using the Gstreamer alone, following your post on Rovio Hacking. This is the error I get:

(gst-launch-0.10:1717): GLib-GIO-WARNING **: g_simple_async_result_complete() called from wrong context!
ERROR: from element
/GstPipeline:pipeline0/GstJpegDec:jpegdec0: Buffer allocation failed, reason: not-negotiated
Additional debugging info:
gstjpegdec.c(1491): gst_jpeg_dec_chain (): /GstPipeline:pipeline0/GstJpegDec:jpegdec0:
Buffer allocation failed, reason: not-negotiated
ERROR: El flujo no quiere precachearse.

I Heart Robotics said...

It looks like a problem with gstreamer.
Try making sure gst-launch works correctly before trying gscam.

You should be able to test using gst-launch by removing "fakesink" and replacing it with autovideosink.