Find the perfect balance between top speed and manoeuvrability
This challenge aims to get the most of the B-robot EVO 2 while you have fun adjusting its behaviour. Tune the robot for different circuits and race modes!
Below you will find an introduction to this challenge, the How, What and Where to race and tips about tuning your robot.
We have created three different circuits to race on and three different ways to compete: “B for noob” (easy, perfect for beginners) ,“Boomerang” (good to improve your driving skills) and “The Key” (the most challenging test!). Basically, you will have to get to the GOAL faster than your competitor/s. Two laps (at least) races recommended. Feel free to modify the racing rules and adapt your robot as much as you want (Want to drive an extremely stable B-robot instead of a Speedy-Spark Robot? That is up to you!)
Any ideas or contributions will be more than welcome in the community
Using the default setting, the B-robot EVO is quite fast, but it can be faster (way more).
Increasing the MAX_THROTTLE value in the B-robot´s ARDUINO CODE will make the robot faster but, at the same time, less stable/agile. You will need to adjust the Robot´s Behaviour parameters in order to adapt it to your driving skills and circuit!.
The general behaviour of the B-robot EVO 2 is defined by a group of parameters. They are set in the Arduino CODE BROBOT_EVO2_XX.ino file :
// NORMAL MODE PARAMETERS #define MAX_THROTTLE 550 MAXIMUM VELOCITY #define MAX_STEERING 140 MAXIMUM SPINNING VELOCITY #define MAX_TARGET_ANGLE 14 MAXIMUM ANGLE REACHED WHEN MOVING // PRO MODE = MORE AGGRESSIVE (MAXIMUM SETTINGS) #define MAX_THROTTLE_PRO 860 MAXIMUM VELOCITY. PRO MODE #define MAX_STEERING_PRO 280 MAXIMUM SPINNING VELOCITY. PRO MODE #define MAX_TARGET_ANGLE_PRO 32 MAXIMUM ANGLE REACHED WHEN MOVING. PRO MODE // Default control terms for EVO 2 THESE PARAMETERS DEFINE THE GENERAL BEHAVIOUR OR THE ROBOT (STABILITY AND SPEED OF RESPONSE) MORE INFO ABOUT THE B-ROBOT PID PARAMETERS HERE. WE ARE NOT GOING TO PLAY WITH THEM HERE. FOR THAT, TAKE A LOOK TO THE CHALLENGE: "The Robotic Waiter" #define KP 0.32 // 0.14 #define KD 0.050 // 0.028 #define KP_THROTTLE 0.075 //0.075 #define KI_THROTTLE 0.1 // 0.1 #define KP_POSITION 0.06 //0.055 #define KD_POSITION 0.45 //0.5 //#define KI_POSITION 0.02
A good idea is to set the PRO parameters (in the Arduino CODE: BROBOT_EVO2_XX.ino file) as the “testing” parameters. So, if you tap on the PRO button while using the CONTROL APP, you will activate, during the race, the PRO configuration you have previously set.
Tuning example: Increase slightly the MAX_THROTTLE_PRO, MAX_STEERING_PRO, MAX_TARGET_ANGLE_PRO valuesand see what happens. If you can control the B-robot with those parameters, push forward and increase them a little bit more! Keep in mind that for every circuit, a different set of parameters will work better than others.
- Open the BROBOT_EVO2_XX.ino file with the Arduino IDE. Set the parameters as below:
// PRO MODE = MORE AGGRESSIVE (MAXIMUM SETTINGS) #define MAX_THROTTLE_PRO 600 #define MAX_STEERING_PRO 200 #define MAX_TARGET_ANGLE_PRO 25
2. Compile the code and upload it to the Arduino Leonardo.
3. Turn the B-robot EVO 2 and check if you can manage to control it easily. If not, reduce the values (play a little with them).
// PRO MODE = MORE AGGRESSIVE (MAXIMUM SETTINGS) #define MAX_THROTTLE_PRO 860 #define MAX_STEERING_PRO 280 #define MAX_TARGET_ANGLE_PRO 32
A high MAX_THROTTLE_PRO value will make the B-robot faster, but less stable if you do not recover the vertical position smoothly.
A high MAX_STEERING_PRO value will let the B-robot to rotate faster but it will make it harder to control precisely when turning.
A high MAX_TARGET_ANGLE_PROvalue will let the B-robot to reduce its angle in relation with the horizontal plane (the floor) but that will make harder to recover and make a turn (increase the top speed but reduce manoeuvrability)
In Robotics, you will always have to find the balance between accuracy and speed. Some robots with a set of “already know” positions can achieve high velocity and precision at the same time (assembling robots) but that condition will not be certain for robot which have to adapt it behaviour continuously. A good example of an adapting robot is the Handle Robot, capable of change its centre of gravity location as it moves (and jumps). Pay attention in the video to its arms and head and how it moves them in order to keep the balance.
Robotic arm assembling: VIDEO And example of how robotics arms can assembly a car in Mercedes Benz, Rastatt plant. Germany.
Cheetah robot running: VIDEO, A very impressive running robot capable of getting up to 28.3 mph (actually, faster than Usain Bolt’s)
We have created (and tested) three very different circuits (and created a traffic cone 3D model so you can print them and set the circuit boundaries). Below, the layout of them all: The dimensions are indicated. A lane width of aprox. 30 cms is recommended for a race with 2 or more Brobots.
Each circuit will make the most of different B-robot EVO “behaviour parameters”. As in Formula-1 every circuit will fit some F1 cars better than others, the same will happen here. To get the most of your B-robot in the race, tweak it according to what you will have to face in every circuit! PREPARE YOUR ROBOT!
1. Print at least 7 (+10 recommended) traffic cones using your 3D printer: Traffic Cone 3D model (stl)
2. Place them as indicated in the circuit layouts shown above.The “B” for noob circuit is a good start for racing
3. Alternatively: “Draw” the circuit boundaries on the floor using insulation tape or masking tape
3. Set your B-robots EVO next to starting line (white line) and choose a racing direction to follow (clockwise recommended)
4. Race according to the rules! (or not). We recommend races of just 3 LAPS
EXAMPLE: HOW NOT TO RACE THE “FAIR PLAY” MODE 😀