End of week 4: Get OpenROV / hardware / software working in a development platform. Familiarize ourselves with the OpenROV software and ROS
Status: Completed (see previous report below)
Status: In the Final Stages - This task took longer than expected due to a number of small setbacks that all added up. We missed the end of week 6 goal, and just got roslibjs communicating with the OpenROV at the beginning of week 8.
- npm installations failed when using the proxy of the OpenROV, forcing us to shut off the proxy and get a different physical setup to connect to the internet
- We also found that npm installations using sudo can become problematic. After following instructions some of which included the use of sudo and others that did not, we ended up corrupting the installation of grunt. We learned that it is better to change the ownership of /usr/local before using npm and then do installations without sudo.
- The installation instructions were based on the use of grunt as a task runner, and made the assumption that a client side installation of grunt was already in place. This led to a sidetrack of how to install and use grunt - which ended up being unnecessary for the installation of roslibjs.
After much time spent on researching how to install roslibjs and debugging problems, we have communication between the OpenROV and ROS. Our simple example code is in a git repository:
Although we are behind schedule, we feel that we have finally made the most important step in this project. We now have a decent understanding of ROS, the OpenROV plugin structure, and a communication between the two and are optimistic that progress can be made much more quickly now.
End of Week 8: Test, clean, and document our work so that it is easy to follow for a general purpose audience.
Status: In progress - With the amount of work that it took to finally install roslibjs we went through many iterations and hit a number of pitfalls. After the first couple of setbacks, we started taking detailed notes of the process and feel that this is a good start to the documentation.
We plan to go through a clean installation starting from scratch following our notes to verify that it works and to grab screenshots along the way. We also have some notes of potential errors and how to avoid them. We feel confident that we will have a clean, step-by-step procedure documented by the end of the week.
Final Project: Publish an easy to follow tutorial to the OpenROV community on how to integrate with ROS.
Status: In progress - We hoped to have an integration of ROS that includes the video stream from the OpenROV in a clean, homogeneous setup. We thought that using the high level computer vision libraries of ROS would be a flashy example to demonstrate the potential benefit of the ROS integration. At this point, we have yet to find a feasible way to transmit video with our roslibjs - rosbridge implementation. We will do a little more research on this topic, but likely will have to find other ROS examples that would bring value to OpenROV. This will require a bit of research into existing ROS packages, and some dialog with our OpenROV contacts to find what might be the most beneficial.