ROS (Robotics Operating System) is a widely used framework in robotic systems, developed by William Garage in the Stanford AI Laboratories, designed to be a robust and computationally efficient framework. I chose ROS over other pre-existing simulator such as AirSim, UWSim, and UUV Simulator as though these systems are complete, they take time to understand and implement custom code. Using ROS I will be able to easily and effectively integrate the core software framework that controls the BlueRay and import it into my own custom simulation. I will implement the simulation in the second half of the project once I have finished building and testing the software and hardware systems. The simulation will be built upon the algorithms defined in the book 'Guidance and Control of Ocean' by Thor Fossen and will be written either in a game engine or in my own custom engine written in Python/C++. ROS will facilitate serial communication between the Raspberry Pi 4 and the Arduino Uno, as well as the motor controller and sensory equipment. ROS can be seen in many simulation softwares such as UWSim (Under Water Simulator) and UUV Simulator (Unmanned Underwater Vehicle).
After installing ROS on the computer and understanding the central concepts, it was install the library and test it out on the Raspberry Pi itself. I was met with some issues as I attempted to install the software on the Pi due to the operating system being unsupported. I wanted to use the Rasbian operating system as I was familiar with it, having used it previous projects and experiments. After spending some time doing research and taking notes I came across a virtualisation software called Docker, which allowed the creation of 'containers' that allowed for the pseudo-emulation of other operating systems within specific applications. After switching from the recommended 32-bit version of Rasbian to the 64-bit version Rasbian. Using Docker I was able to create an Ubuntu container that could install the ROS framework and allow me to use ROS2 with Rasbian.
Though this process slowed me down, on a positive note, I gained so much experience handling operating systems as well learning about Docker which is an incredibly useful tool to have as a developer. It increased my understanding, knowledge, and experience with Ubuntu and Linux.Â
Learn about Docker - https://www.docker.com/
Learn about ROS - https://docs.ros.org/en/humble/index.html