Being the RoboJackets team with the first competition this school year, RoboRacing has been busy learning and improving!
The team has been preparing to enter evGrand Prix Autonomous, the go-kart scale autonomous racing competition, starting all the way back in 2019 after the conclusion of Sparkfun AVC. This two year time frame gave the team a unique opportunity to thoroughly flesh out vehicle designs. However, as most in RoboJackets know, the real test of designs are at competitions. This past September at the Purdue University Track, the team was able to finally do just that at evGrand Prix 2021! You can read more about the competition and the results here.
The team was incredibly proud of the second place result (especially considering this was the first ever team entry into the competition), but running the robot all week made clear some places for improvement on all subteams, which inspired many of the projects the teams have been working on post-competition.
Mechanical had multiple projects inspired by pain-points at competition, with one being a new component mounting system. An initial goal of the robot was to be able to handle light rain (partially from competition rules and partially from convenience of not needing to rush for cover if rain starts). However, competition crunch came around and the electrical subteam had more parts to mount. This led to components to be mounted in three different containers across the robot and a few outside of the containers. After further reassessment from competition, the team decided to consolidate all of the components into one large container. They are actively capturing the parts that needed to be added in the CAD and designing new mounts where needed.
Another issue at competition was that the brakes were not very easily controlled and the motors had a risk of burning out. This led the team to pursue a lead-screw motor design to actuate the brakes, to both more finely control the braking for use in speed control along with reducing the likelihood of motor burnout. They are working on force calculations and CAD design to prepare for manufacturing in coming months. Additionally, the mechanical team has been working on other projects like a revised steering system, new mounting for cameras, and battery covers.
Electrical, also inspired by the problems faced at competition, have many active projects. Almost all of the new projects now utilize a STM32H7 based microcontroller board, with the team opting to use existing Nucleo boards with daughterboards instead of complete custom boards due to the chip shortage.
One of these projects involves developing a new Ethernet vehicle protocol.The entirety of the car’s electronics (barring some cameras and IMUs) communicates over Ethernet. This includes all of the existing custom boards, the Intel NUC, GPS, and LIDAR. Occasionally the custom boards would lock up and no longer communicate, often bringing other boards down with them. The team suspected the combination of TCP and use of under-specced WizNet chips combined with the simpler Atmega microcontrollers. This led to the team transitioning to using UDP and STM32 with built-in Ethernet support and multithreading. Current smaller scale testing indicates great performance improvement, but larger scale testing and full system integration are still required.
Electrical and mechanical are collaborating on improving aspects of the steering system. Originally a stepper motor with a custom board, it was decided that a brushless motor with feedback control would better handle the power requirements along with being much faster. The team decided to utilize an ODrive board. This, coupled with absolute encoder and new steering models controlled by a new STM32 board, will allow for more accurate and faster motor control. Electrical is also working on an enhanced remote control system and battery monitoring system. Design of the daughterboards for all of these boards along with firmware will continue into the spring.
The software team has taken on a new daunting task: transition to ROS 2. For many years, the software has been written for ROS 1. Due to major architectural changes, ROS 2 requires a redesign or conversion of many aspects of the software stack. As RoboJackets software training has now shifted to ROS 2, now was a good time to transition as ever! The difficult part of the ROS 2 migration was laying out all of the dependencies of the ROS 1 codebase and determining which already had ROS 2 and which would have to be written by the team or substituted. The major issue that the team has been working on is updating the sensor drivers to communicate with ROS 2 since many have not been updated for years, with the RTK GPS and IMU being the main focuses.
The path planner (which determines how the robot should drive) utilized standard ROS libraries, so updates for ROS 2 had been made. However, competition indicated that some aspects were not as customizable or true to real-world contestants as the team would hope. Now served as a good time as any to re-architect the planner, largely in part due to the bloated feature support for by-gone platforms such as Macaroni and Bigoli (discontinued in ~2018 and ~2019, respectively). The team looked into using teb_local_planner because of the support and built-in functionality, but the need for a specific target destination didn’t work well for not knowing the track or multiple laps. The team settled on writing a brand new planner with heavy inspiration from the old planner, which progress will be carried on into the spring. The new members have also just finished training and are hopping on new member projects going into the spring as well!
The next evGrand Prix competition is going to be April 2022, so the team will certainly be busy going into the Spring!