top of page

Dynamics

The Original Controller

Because of the large caster wheels in the back, control of the driving wheels does not directly translate to control of the wheelchair. This presents a very steep learning curve in driving the wheelchair as well as some unpredictable nature to even a seasoned wheelchair driver who does not know the position of the back casters. All modern electric wheelchairs simply implement a PID controller for wheel velocity from  differential drive joystick input. For long moves this method is sufficient, but it requires extensive expertise for fine control in closed spaces. Even for highly experienced drivers, injuries from driving in cramped spaces are frequent. Because of the highly nonlinear nature of the reaction forces from the castor wheels, a PID on wheel speed is entirely unable to fully cancel the reaction forces and fix the driving.

This unpredictability can be frustrating at best and fatal at worst. It can be very dangerous for the user if they do not pilot the wheelchair perfectly up or down, for example, a van ramp or if they accidentally crash into walls. This is the problem that our team set out to solve by creating our own controller that incorporates the rest of the wheelchair dynamics rather than just how fast the wheels are spinning. Moreover, this controller will enable the wheelchair to accurately follow paths.

Our New Dynamics

In order to improve the previous control, we needed to add some new elements into the wheelchair. First, we added some encoders into the casters in the back to track their orientation to adjust the input torque to accurately go in the intended direction. We also needed to add an IMU on the wheelchair in order to track the pitch, yaw, and acceleration of the wheelchair. We find velocity using sensors on the drive wheels. This allows us to fully capture the wheelchair state and calculate the torques necessary to produce the motion specified by the joystick or path follower.

We performed all calculations in SymPy in a jupyter notebook in order to facilitate iteration on the model, and future expansions. In order to translate the mathematical code into executable code repeatably and without bugs, we automatically generate a python function library from the jupyter notebook that is easily accessed by the classes that need it. This allows future users to easily extend the model as needed.

​

To see a derivation of our new dynamics model, click here.

Our new dynamics controller completely eliminates the learning curve and guess-work from driving the wheelchair, and opens the door to precise path-following for automated driving. We believe that this change will lead to a much safer driving environment.

  • Facebook
  • Twitter
  • LinkedIn

©2020 by Permobil Design Sprint.

bottom of page