· Extracurricular

Unmanned Surface Vehicle

Autonomous boat developed for RoboBoat competition

Autonomous boat developed for RoboBoat competition

This is by far out of all the projects that I’ve worked on, my favorite. I got the chance to work on it since I entered VantTec from my 2nd semester of college all the way through my 8th. This project consists in an Autonomous Boat developed to compete at RoboBoat, the biggest autonomous boat competition in the world, where the vessel is released in a delimited area surrounded by buoys, static obstacles, a docking station, and several other elements changing year by year with which the boat is supposed to interact either by avoiding them, launching water or balls, docking, and using different computer vision, localization, navigation, and control tools to solve these tasks.

Software

ROS2

When I started working on the project, the workspace for the robot was designed for ROS Kinetic, running on a Jetson TX2 on Ubuntu 16. As a part of the major contributions I had in the Software area, one was the migration from ROS Kinetic to ROS 2 Humble, as well as the architecture migration, and most nodes for the packages necessary for the competition. Currently the boat uses a Jetson Orin Nano running the Jetpack Software’s equivalent to Ubuntu 22, and the algorithms for the competition are tested both on RViz and Gazebo Sim.

Play

Control

One of the reasons why I love this project so much is because I got the opportunity to learn about the different controllers which have been developed by previous members of the team, and also implement and simulate my own controllers and guidance systems. In the beginning I simulated the dynamic model and controllers in Simulink, but since we run our custom algorithms and program them in C++, I figured I would save up some time skipping the MATLAB steps.

I have implemented Sliding Mode Controllers and a PID for low level control, and for the guidance system a LOS algorithm and an MPC as part of my latest contributions to the team.

For my 7th semester, I got a research stay at Tec de Monterrey where I got to implement a cascaded system controller where i designed an Adaptive Integral Terminal Sliding Mode Controller to control the vehicle’s surge and heading references (low level controller) received as the output from a Nonlinear Model Predictive Controller in charge of following waypoints while avoiding static and dynamic obstacles.

Play

Leadership

During my years in the project, I got to be the Leader for 2 years, yielding my position to a new leader when I became president of VantTec, managing the 5 projects (the boat included). As the boat’s leader, I managed the software, perception, mechanics, and electronics areas.

During my management, I tried several methodologies for task assignment and follow-up, such as Microsoft Teams (and To Do), Notion, Gantts in Excel, and Asana, being in the end the To Do functionality from Microsoft Teams the best one due to its simplicity, task assignment functionalities, and reminder notifications.

Other skills I developed besides leadership and management, were my communication skills. Because of the nature of this project being part of a student group, there were some monetary challenges involved, which led to talking with school directives, companies, looking for sponsorships, opening a crowdfunding campaign, and basically using any opportunity to talk about my project and seek funding for tools, sensors, materials, and money to register for competitions.

usv_leadership

Electronics

Although it was not my forte, I designed one PCB when I started on the boat. It was a very simple design, and its purpose was just to light some LEDs which would indicate the boat’s mode (teleoperated, autonomous, or killswitched). I designed it on KiCAD, and we ordered the PCB for manufacturing at the school, but in the end we didn’t use it because the requirement for showing the mode was no longer needed, and it would just take unnecessary space and power in the boat.

kicad_pcb

Besides designing, I made some changes to the STM32 boards onboard, mainly to toggle some mechanisms, like: a NEMA 23 to carry a ball collecting mechanism, and a relay which enables a water pump for water delivery.

Play

Mechanics

Although I’m not a Mechanical or Mechatronics Engineer, I really enjoy working on CAD. This is a skill that I learned in my 1st semester of college as an extracurricular practice, and although I haven’t applied for a certificate, I know the basics and enough to design some mechanisms, and apply some concepts. Here are some designs:

Electronics Rack for VTEC S-III

e_rack3

Ball Picking Mechanism Draft for VTEC S-III

ball_picker

Intake for VTEC S-IV

usv_intake

Electronics Rack for VTEC S-IV

e_rack4

CFD Analysis for dynamics coefficients

Check out the repository!

Back to Projects