Thursday, April 16, 2015

Project Specification

OpenROV Project Description

OpenROV is an open source underwater robotics platform. It is designed to be a kit to help people quickly and easily get a working robot that is capable of navigating in lakes and oceans. The target audience of OpenROV is scientist and explorers that are interested in studying underwater environment.

ROS is a another open source project that creates a standard tool set for people developing robotics. It is a larger community than OpenROV and includes many sophisticated tools that can be applied to robotics. The addition of ROS software tools would be a valuable addition to the OpenROV community.

Our project for the Embedded Systems class is to develop an interface between the operating system running on OpenROV to an installation of ROS that is running on the control station. The interface will have to communicate with the native OpenROV operating system that uses node.js and, and convert communications into the ROS bag format. This will give access to high level libraries in ROS which could be useful for robotics applications (libraries that work with computer vision, object classification, contextual awareness, and navigation for example).

Specific libraries ROS that we will need to implement are roslibjs and rosbridge.  Roslibjs gives support for interacting with ROS from a browser at the OpenROV control station, and Rosbridge which is an API that will allow communication from the OpenROV via JSON messages.

Milestones and Schedule
  • Familiarize ourselves with the native OpenROV operating system and with ROS.  Get newest version of OpenROV software running on our ROV.  (by the end of week 4)
  • Create an interface that can convert between the javascript events and ROS events to enable two way communication between ROS and OpenROV.  (by the end of week 6)
  • Test, clean, document, and publish our work to the OpenROV community in order to get feedback and suggestions.  (by the end of week 8)
  • If time permits, integrate with one or more ROS application that would demonstrate the value that is added by having ROS functionality. One such stretch goal would be to get the ROS 3D visualization tool, rviz, working.  This could be extremely beneficial for future navigation projects.  (during weeks 9 and 10, time permitting)

Group Management

Connor Brew is a 5th year Computer Science student that is about to graduate in the fall.  He has some ROS experience from previous classes.

David Lane is a first year Computer Science Master’s student whose background is in Mechanical Engineering.  He is new to ROS, but looks forward to learning it and contributing to the OpenROV community.

We plan to work on aspects together, rather than each specializing on a particular aspect.  We think that will provide a better overall perspective as the project progresses.  For the inevitable times when we are doing individual work, we plan to follow up and provide the other partner at least a quick summary / tutorial of the work that was done.

With just two members, communication should be easily accomplished with a mix of phone, email, and meetings.  Major decisions should be made by a manor of consensus, however for external help, Eric Lo (UCSD Engineers for Exploration) and Jim Trezzo (OpenROV) are both available for counsel.  We will seek their advice whenever there is an issue that we cannot resolve ourselves.  In addition, we will provide them with status updates that correspond to the major milestones.

Project Development

We have hardware from a rev. 2.6 OpenROV available to us but as some of the electronics housing is missing will not be constructing a watertight ROV.  We will mostly be working with the controller board and BeagleBone which we have separated from the rest of the ROV.  The OpenROV team has requested that we use the beta rev. 3.0 software as the base for our integration.  For testing we will begin with sending data from the IMU to ROS.  As the IMU we currently have is not assembled we will need to assemble the IMU and connect it to the controller board before we can begin testing.