Joystick Limit VI & Low Friction Simulation

Hi everyone,

I want to share the VI that our team put together to limit the rate of change of the motors based on the joystick. To use it, the current value of the joystick and the previous value of the motor output (passed through a shift register from the previous loop) should be passed in, along with the value of the maximum rate of change of the joystick.

I also want to share an interesting side effect of running this VI during a build session this weekend. By limiting the joystick rate of change to a low value (0.02 or less per loop of the main loop in Robot Main.vi) and driving the robot in the hallway, we found that the robot acted as if it was on a low friction surface since it would not slow down, speed up, or change velocity quickly. The robot moved much like videos of actual robots on the Regolith:

It occurred to me after this started happening that this should be an obvious consequence of severely limiting the rate of change of the motor outputs - low friction naturally limits the maximum acceleration possible on the surface - using this VI simulated this natural limit through software.

This quickly turned into an interesting test for my drivers, allowing them to practice driving around on a low friction surface without actually being on one. The wheels on the robot are IFI traction wheels, which do a pretty good job on the hallway floor of getting traction. The difference in robot handling is pretty obvious from the video, and the effects can be increased or decreased just by changing the maximum value of acceleration on the front panel.

I’m hoping to also attach the trailer to this robot to give my drivers some more practice. I know the experience of driving on the regolith with the trailer is probably still different from what this simulation allows, but it’s a good temporary solution for my team which doesn’t have a local field to practice on at this point.

Joystick limit.vi (10.5 KB)


Joystick limit.vi (10.5 KB)