Neya UxMax

learning control systems and ROS with a skid-steer UGV


The UxMax was my first assignment when I started at Neya Systems as a high school intern. It was a skid-steer, amphibious ATV that had been half-converted into a remote-control platform, and my task was to finish it.

Documentation was very sparse on the UxMax, and a much of my work relied on developing hypotheses about how the vehicle functioned, then proving or disproving them via testing. My main contributions were to modify the low level controller to integrate with ROS and to develop a closed loop feedback control system for the vehicle’s linear and angular velocity.

The feedback control system was complex since the vehicle had a very odd mechanical design. It utilized a skid-steer transmission that received power through a CVT connected to the gas engine, then delivered power to the left and right sides of the vehicle through a planetary gearing system. Band brakes controlled the left to right distribution of power, which enabled steering. This unconventional design combined with incredibly high friction when turning in-place made the control system difficult. I used a PID control system since it was intuitive to tune then modified it with feed-forward and gain scheduling to help resolve issues observed when performing tests.

I had incredible help from several mentors, which enabled me to become skilled at using ROS, Git, and Ubuntu. Their feedback greatly improved the quality of my C++ code and my knowledge of mechatronic and controls concepts. In particular, I had a lot of help from Joe Wolski, James Pace, and Constantin Savtchenko.

I worked on this project part time during the school year for three semesters, and also during the summers before and after my senior year of high school. When I left for college, the vehicle still had several unresolved issues, largely due to the odd mechanics of the drivetrain, but it was able to execute velocity commands with reasonable accuracy. Since then, it has been electrified, which circumvented the mechanical issues. It continues to be used as a testing platform, allowing Neya engineers to evaluate their software in the physical world.