OpenROV Controller Board API


#1

I am working to make the OpenROV v2.6 a ROS(http://ros.org/) enabled robot inorder to increase its viability as a tool for the robotics research community.

I have some success upgrading the current openrov image to ubuntu 14.04.1 LTS for compatibility with the latest release of ROS (indigo). I have also deciphered some of protocol sterilizer API however i am looking for a formal specification of the serial, SPI and I2C APIs.

Any help would be gratefully appreciated

Robert


#2

Hey Robert,

I know that we Jim T and Colin H have both spent some time looking at integrating ROS. There are also some guys that have code in github for the same.

I can use help in formally documenting the APIs that we have right now, I have a very basic digram that lists the command names for the messages for the socket.io and serial commands: https://github.com/OpenROV/openrov-software/blob/master/docs/OpenRovSoftwareArchitectureOverview.pdf?raw=true

The I2C commands that the arduino is using with different components is whatever those components requires.

We are only using SPI at the moment for programming the ATMEGA chip from the beaglebone.

The easiest way to interface with ROS IMHO would be to have a bridge to socket.io which would talk to the existing OpenROV node.js process. The work would simply be to map the socket.io messages to ROS topics. That said, you can of course go the other extreme and bypass all of the OpenROV software if you really want to and load the firmata sketch on the Arduino and talk to the serial port directly.

-Brian


#3

Hi Brian

The current plan is to bypass the OpenROV software on the BeagleBone and talk directly to the Arduino via the serial connection. This in the interest of freeing up processing power for other applications.

I'd be happy to help document the Controller Board API but there is still a large number of status messages returned from the board that I have not figured out yet.


#4

Also future integration with ROS would be eased by upgrading the base ubuntu image to 14.04 LTS, the long term service release being a bonus.


#5

Oh man, well...

For several reasons, the base distro that we are supporting is Debian. That is where the focus happens to be in the beaglebone community. For the moment, beagllebone.org is releasing Ubuntu images, but not with as much investment. Another option is to look in to running docker directly on the beaglebone image which should make supporting ROS a ton easier.

You can always go with the pre-built ROS for beaglebone image if your going full ROS stack including UI, control, and video...

Good luck!

-Brian


#6

@Robert_Codd, if you have not already, check out ROS Integration via roslibjs. There is a reference for running docker containers on the BeagleBone Black, so in theory there is an easy to maintain, distro neutral approach for running ROS directly on the BeagleBone.