Sphero RVR Needs ROS Interface

Sphero has a new robot the RVR. This is a serious, robust, and capable small tank robot for a good price.

IMO this is a good robot for high school and university level introductory work. But it really needs a ROS interface.

Creating the ROS interface would be a good undergrad or advanced high school project. I’d pursue it myself but have other activities over the next months that limit the time I can spend on it. Plus, bluntly, I don’t know enough about ROS internals, working with URDF, etc to address this.

Here’s why I think the RVR should receive attention.

It provides a serial port for control by another controller mounted on the chassis. The serial API provides access to control the motors and read gyro, accel, imu, speed, velocity, and location. Sphero is saying a 1st quarter 2020 release will provide access to the magnetometer and other drive functions. The API also accesses power and drive status, and controls LEDs. The Sphero link above provides access to the documentation on the API.

Sphero has Python code that runs on the Raspberry Pi. I’ve reverse engineered the protocol for C++. I’ve run my code on an Up Board which is a quad core 1.7 Ghz SBC mounted on the RVR. My code is at https://bitbucket.org/rmerriam/rvr-cpp/src/master/.

If someone is interested I can be of some assistance.

2 Likes

What do we need to do?
Right now I am using roslibpy to publish topics to rosbridge since RVR is in Python 3 and kinetic and Melodic for Python 2 for the PI images I am using.

1 Like

I’m not sure what is needed which is why I posted the message. Maybe someone can suggest needs to be done? Some thoughts / questions;

  1. Need to be able to use Move Base.
  2. Is Differential Drive suitable? It needs URDF definitions from looking at the code.
  3. How to get from Twist to the specific motor commands?
1 Like