ROS and Simulations

The ROS (Robot Operating System) team uses the ROS software libraries and tools to enable communication between the Perception, AI, and Controls code.  Members spend a lot of time thinking about the big picture of our codebase, optimizing its design and usability, troubleshooting integration issues, and ensuring the rest of the team’s code is compatible. 

This year we made a couple major changes to our ROS framework. First was decoupling our path planning and path execution by placing them in two separate nodes. This allows us to plan and analyze paths at the same time as we are moving along them, an essential for performing unanticipated collision avoidance. We also created two new nodes which each host a websocket for transmitting and receiving data over our communication system to our onshore station. One sends data for our user interface application run on an onshore laptop to visualize the boat’s state. The other is responsible for receiving data sent from the onshore GNSS correction source and conveying that data to the boat’s GNSS board, making our positional data more accurate. The structure of the framework and how it interacts with our various pieces of hardware can be seen in the diagram below.

This group is also responsible for building a simulation framework that interfaces with the ROS framework to test code. In the future, we hope to transition from ROS 1 to ROS 2 and further improve our simulation framework using Virtual Robot X or Unity software.