top of page
jerkLimit_bg.jpg

A Differentially-Geared, Omnidirectional Robotics Platform
With Autonomous Jerk-Limited Navigation

A differentially-geared robotics platform that combines the strengths of three traditional wheeled chassis (tank, mecanum, and swerve) while eliminating their weaknesses. This platform includes custom software with autonomous, 3rd-derivative jerk-limited navigation. It is built using off-the-shelf and easy-to-manufacture parts, which increases usefulness and attainability.

manta2_white_alpha_sm.png
20220925_161830.jpg

Device Setup and Communication

I programmed an Arduino off-bot to read values from sensors. Then, configured the control system, an Nvidia Jetson, to run headlessly and connected it to external computers over ssh. I then created a script to automatically compile and upload code from the Jetson to the Arduino using Arduino CLI.

​

All of the devices need to communicate with each other. It is common to send data from an Arduino to an external device using an async UTF-8 character stream since it is simple to implement. However, it is extremely inefficient, so I implemented a system that sends binary data asynchronously with CRC error detection instead. The Jetson also had to communicate with the Roboclaw motor drivers. After finding that the official libraries were insufficient, we found an adequate third party Roboclaw library and added it to our project.

dif_chassis1_sm.png

Chassis control modules had to be controlled individually. This process involved treating the module and wheel rotation speeds as a vector and transforming it into motor space. I then created a system to control the movement of the robot using kinematics. This system treats the state of the wheels as a vector, summing together basis vectors composed of basic motions to create complex motions.

Chassis Control

Jerk Limiting

The first method I tried to use to control the robot was a PID controller that used a vector state to bring the robot to a target position. This did not work because the non-instantaneous nature of the module rotation caused severe oscillation.

​

​To solve the oscillation problem, I programmed the robot to follow an imaginary line so that it could align in one axis while moving and then align the other axis by varying wheel velocity minimizing module rotation. I improved this further by creating a jerk-limited control algorithm to replace the PID controllers. This ensured smooth movement and allowed the robot to settle in a finite amount of time, eliminating error early on. This system was highly effective and could bring the robot within 1 cm of a goal.

isef_dev.png

Chart development steps

Jerk is the third derivative of position and is responsible for the amount that a motion jerks, as the name implies. In a car, the jerk you experience is proportional to rate at which you press down on the gas pedal. If you press down on your gas pedal quickly you will feel a jolt as you rapidly start accelerating, as opposed to slowly easing on to the gas. Jerk and acceleration limiting is often implemented through a method known as motion profiling, which operates by setting power based on elapsed time. While this method does successfully limit jerk and acceleration, it can enter a catastrophic failure mode in cases of external interference due to the desynchronization of the expected and actual robot states.

While it is possible to improve this system to an extent, it is fundamentally flawed. Since it is an open loop approach, there will always be an expected position that isn’t necessarily congruent with the actual position. Due to this problem, I took a different approach. Instead of using a timer to determine what the robot should do, I use the state of the robot. Based on the robot’s position, it is possible to determine the amount of time it should take to reach the goal using the inverse of the position curve. This time can then be used to determine target velocity of the robot. This allows the robot to account for interference and even collisions. One of the biggest advantages of this system over something like a PID controller is the fact that it settles in a finite amount of time, allowing for faster more accurate control. This is useful for navigation along a line because the robot will move onto the line and stay there, rather than slowly moving closer to the line without reaching it, leaving residual error to be dealt with on arrival triggering oscillation. 

Project Awards:

Demo Video

This platform could be used in a wide variety of research, commercial, and industrial applications. Its maneuverability makes it ideal for operation in constrained spaces like warehouses and hospitals. For example, it could deliver food and medicine to highly contagious patients where human contact must be minimized. Its ability to travel across a wide variety of surfaces means that it is also well suited to most home and office environments where it could deliver food, beverages and other supplies or provide routine cleaning and maintenance services. Its high power and durability along with its maneuverability also make it ideal for industrial applications such as transporting items around factories. The platform’s versatility, usability, and accessibility also make it ideal for research and educational institutions to use their imaginations to quickly prototype new robotics applications.

bottom of page