This year, programming is a crucial element. Indeed, out of the 5 challenges of the “At Home Challenge”, 3 are based solely on the movement of the robot, including 2 in total autonomy, without any human intervention.
This week we worked on the acceleration ramps. This consists in making the robot accelerate progressively to better control its speed. If we vary the speed of the robot too abruptly, the robot skates, shakes and/or resonates; this reaction is terrible for us because if the wheels of the robot turn without the robot moving forward, it jams the tracking of the robot, it won’t reach its destination and we won’t validate the challenge.
To avoid this while wanting to go as fast as possible, we need to program acceleration and deceleration ramps.
To fully understand our problem, we need to know that the more energy an engine receives, the faster it goes.
Currently we don’t know how to tell the engines that “I give you 8 Volts, turn”, but we should be able to tell them “go forward at 20km/h”, in order to better follow and control the robot’s progress.
For that, from Saturday, we started speed tests with different voltages, in order to recover a maximum of data: speed, acceleration, rotation, …
From the data collected, we are now able to tell the robot to go at 20km/h, and the program takes care of translating this into a precise voltage.
We use the simplified equation :
Applied voltage = KvSpeed + KaAcceleration + Kc
Where Kv, Ka and Kc are constants that we calculated from thousands of data collected during our speed tests.
They define a plane for each motor in a “3D space” where the coordinates of the points are [ speed, acceleration, voltage ].
Below is a link to download an HTML file containing the interactive 3D data collected during our tests.