Conclusion

Overall, while the project was incomplete, several of the goals for the project were completed. The three group members of the project team were able to build up a foundation for how the OSU UWRT Riptide Software is laid out, and how the parts interact with each other. Knowledge on ROS was also developed, and the foundation code for the website was written and proven to be effective. Moving forward, the website portion of the project will be completed in the next academic year.

Update 2 (10/24/19 – 11/28/18)

Began to work on the ROS subscribers to put into the website. The subscribers were written, tested, and found to be successful. Work on web page research began.

Oct 24 2hr hr basic java script learning

Oct 31 2hr laid out and assigned java script subscribers to write

Nov 4 4hr worked on status subscribers

Nov 11 4hr refined status subscribers. compiled with other subscribers

Nov 18 4hr checked subscriber functionality and looked into hosting web page on Apache

Nov 28 2 hr worked on documentation and looked into xml coding for web page.

Update 1 (9/9/18 – 10/21/18)

So far learning ROS has been a slow, steady, but successful process. I have developed enough information about it to the point that we have recently outlined the project specifications.

Sept 9 4hr reviewed competition footage and went over riptide software layout

Sept 16 4hrs began ROS learning. Basic subscriber

sept 23 4hrs ROS learning publishers

sept 26 2hrs combined ROS subscriber and publishers for a demo

Oct 7 4hr robothoughts project outlined by software team lead.

oct 21 4hr background research on js

 

Planning/Methodology

This capstone project was the culmination of copious hours of research in to the complex topic of Robotics Operating System (ROS), eXtensible Markup Language (XML), and the Ohio State University’s Underwater Robotics Team’s (UWRT) Riptide Software. Since the Ohio State University’s Underwater Robotics Team’s Riptide Software is built on a very strong fundamental use of ROS, this capstone project began with learning what ROS is and how to operate it.

To answer this question, ROS is an open source framework that gives access to a lot of features that are found on traditional operating systems for the use of expanding the field of robotics. Some of these features include hardware abstraction, low-level device control, implementation of commonly-used functionality, message-passing between processes, and package management (Open Source Robotics Association, 2019). The main feature used in the Robo Thoughts project was the ability to pass messages between processes. ROS is at a fundamental level made up of things called nodes. Each node is assigned a duty of the programmers choosing based on the code that they write. To make up a large and complex system, these nodes must communicate with each other. This requires the transfer of data between nodes. To perform this movement of data, nodes can communicate through topics. Topics are a form of transportation between nodes that operates on a publisher-subscriber type of system. To send data out of a node, that node publishes a message, a structure of data types, to a topic name. If another node needs to receive the data from a publishing node, it subscribes to the desired topic name, and receives the message through the topic.

The UWRT Riptide software uses these principles to take data from various sensors such as depth sensors, pings, and cameras, and publishes that data to various nodes that process that data and publish refined data or instructions to parts like thrusters or torpedo launchers to accomplish tasks. The Riptide state machine has well over 20 nodes that handle various parts of the robot. At its lowest level the robot has a switch plate, a forward-facing camera, a downward-facing camera, an inertial measurement unit for heading, a depth sensor, thrusters, and a pneumatics system. This robot has many sensors, and the team has several people that work on various parts of the robot since the project is too big for one person to be involved in all the parts. Many of the processes that take place in the decision-making part of the robot rely on these various sensors to determine the best course of action. The Robo Thoughts project will allow the inner workings of the robot to be displayed on a webpage so that the people that are working on different parts of the robot, and not necessarily software components can look at data to help explain why the robot is behaving the way that it is with both visual (camera footage) and statistical (data values for sensors) information.

Introduction

The Ohio State University’s Underwater Robotics Team competes in an autonomous underwater vehicle competition every year in San Diego. The robot that has been developed over the course of several years runs Robot Operating System (ROS) to help manage the large number of states and data processing required to have a functioning autonomous robot. A problem that the leadership on the team found is that beginning members and members not focused on the software side of the robot were confused on what the robot was “thinking” at any given moment in a competition or test. From this problem the Robo Thoughts project was born.

The goal of the project was to allow two new members and a more experienced member to team up and build a foundation for how the OSU UWRT Riptide Software is laid out, how the parts interact with each other, and build knowledge and understanding on how to effectively use ROS. The Robo Thoughts project is a web page that allows the inner workings of the robot to be displayed on a web page so that new members and members that are not familiar with software can look at a single web page during the robots operation that will give all relevant data to help explain why the robot is behaving the way that it is with both visual and numerical data.