Today, we tested the new offboard comms pyserial method for communicating with the thrusters, alongside using two arduinos on the robot instead of the original three. After some trial and error, we had to revert to an earlier commit of the code where the start flag for serial communication is a single byte (0xFF), instead of two bytes (0xFFFF) to get the thrusters operating normally.
The results were a huge success! The pyserial system operated smoothly, with no noticeable issues driving the thrusters. We power-cycled the system three times using the joystick and once with the autonomous task planning code, and everything worked as expected each time.
While testing, we encountered a few auxiliary issues that will need to be addressed.
Bottom Camera Feed Alignment: The feed from the bottom camera is rotated and does not align with the robot’s orientation. This could impact vision-based tasks and will need to be corrected.
Ethernet Connectivity Issues: Only my (Patrick’s) ethernet dongle worked when connecting to the robot. Using the network switch as an intermediary caused connection failures, preventing us from SSH-ing into the robot.
Regarding the next steps, we plan to lint the pyserial code and implement the more robust 2-byte start flag (0xFFFF) for serial communication. We also need to convert this code to ROS 2. On top of this, the arduinos and wires need to be mounted more securely to prevent damage or disconnections during operation.
Overall, today’s tests helped confirm the stability of the robot’s thruster system as we transition to ROS 2. These improvements will enable further testing with the rest of our controls and task planning systems in ROS 2.