Task - Calibrate more than one sensor with the Advanced Calibration technique
Following the previous tutorials from the course, implement the calibration of the minimum and maximum values.
- #640
- 04 Oct 2017
Following the previous tutorials from the course, implement the calibration of the minimum and maximum values.
Implement a program for stopping at a black line with the blocks containing the implementation details for the InitArray, Calibration and Getting the calibrated result.
Following the Advance Light/Color sensors calibration for a minimum value for a single sensor tutorial, in this one, we continue with finding the maximum value detected by a sensor and storing this value in an array.
A common question is how to display arrays on the LEGO Mindstorms EV3 brick screen. Displaying values from an array is not different from any other display operation. In this tutorial, we would look at displaying two specific values. The minimum and the maximum for a specific sensor from the Advance Calibration Course Section
In this tutorial, we show you how to display all the values from an EV3-G array on the EV3 brick display. We are using an array Read Operation along with a loop. We are also detecting the loop counter and using it as an index to an array. It's basically the only viable way to do it. The process is commonly referred to as - "Iteration over an array" (although we still do not have an iterator in the programming language, we promise that one day we would do the super advance videos on "iteration" using the LEGO MINDSTORMS robots")
One of the smartest things you could do in any software program is to extract logic in small reusable, simple, understandable units. In EV3-G these are called Blocks and we are going to extract the logic for finding a minimum and maximum for each of the sensors in a new block.
Following the Advanced Sensor Calibration course section, it is time to extract the logic for getting a calibrated value into a new block. This block will have an input and on this input, we give the port number. The block will return the calibrated value for this port number. We've built all the other blocks only because of this almost final video here.
The balance of the construction of the robot has a great influence on how it will move. This is especially true if you would like to move in a straight line. If the robot is slightly heavier on the right it will move to the right. Here we have two robots - a Five Minute robot and a Box Robot and we will discuss the differences in the constructions and why the box robot is much better than the Five Minute even though it is using the same parts.
DIfferent wheels and tires will result in different behaviour of the robot. That is actually pretty common sense. The real question is what is the influence. Would the robot make smaller deviations if it has smaller wheels or it will make larger deviations? The tires could also be quite dirty or brand new. Or the wheels could be attached in different ways.
You could use the LEGO Steel Balls as a third wheel on the robot. It is a caster wheel. But this is steel and as we know from basic existence on this planet, where there is steel there is also rust. The steel ball could get quite rusty and this could have an influence on the behaviour of the robot
The robot can move with different speed by applying different power to the motors. It will most of the time make smaller deviations when it moves slower. But you can't just move with a power of 10 all the time. This is a way too slow especially for competitions like FIRST LEGO League or World Robot Olympiad. In this video tutorial I would like to discuss the balance between motor power and robot movement error, how does the battery influence the power of the robot and to conduct an EV3-G experiment that will record the values of the Gyro Sensor along with the current power.
The first part of making the robot move straight is to keep it oriented straight. While it moves it could make an error and turn slightly to the right and then the program should turn in back to the left to make its orientation straight. In this video tutorial, we would discuss how to implement a program to keep the robot orientation straight even when we are pushing or pulling it to either side and in the same time it has different wheels.
We keep the robot orientation straight while moving, but when we stop the robot could be in a different orientation. This applies for both using the Mindstorms Gyro Sensor when moving straight or the Mindstorms Color sensor when following a line. In this video tutorial, we will do a few examples of when an how this could happen.
This is where the confusion really comes. We are keeping the robot orientation straight while the robot moves, but at the end the, robot is not at the fiinal location that we would like it to be. The robot is still about 2-3 centimeters away after moving for about a meter.
The integral part "remembers" the errors that the robot has made in the past and we can compensate for those errors. This will make the robot return back to the line that we would like to keep it aligned.