As we try to investigate the limits and functionalities of the gyro sensor in the EV3 kit, the first question that we came across was, what exactly does the gyro sensor even do? This was simply answered by hooking up the gyro sensor to the EV3 brick and see what the output is in the Port View. The Port View gave us “Gyro-Ang” which meant the gyro sensor was measuring the angle of rotation. But what we also noticed was that while the robot and the gyro sensor itself were still, the angle measurement in the Port View was constantly increasing. So, for the investigation, we came up with the following questions:
How can we stop the random, steady increase of the angle reading?
How accurate is the reading?
Can the gyro sensor still measure the rotation of the angle while moving at a constant speed?
To begin the investigation, we built a car that can easily rotate on its wheels to obtain readings of different angles. We also placed the gyro sensor in the back facing forward on an axis where it can measure the angle of rotation in the direction of left and right of the car. From there on, we carried out different tasks for each question that was to be answered.
RANDOM INCREASE IN ANGLE READING
At first, we had no idea what was going on when the gyro meter would not stop changing angle values. So we tried couple different things such as turning the brick on and off, which was not helpful at all. After fiddling around with the system, we figured out a way to stabilize the gyro sensor by plugging off the sensor from the brick, then leaving the robot as still as it can be while plugging it back in. This calibrates the gyro sensor and leaves the angle reading at 0 when the robot is not moving.
ACCURACY OF THE READING
Since we did not have the adequate tools such as a protractor to measure exactly the rotational angle change of the robot, we have just done an eyeball test to see if the 90, 180, 270, and 360 rotations of the robot would look to be “accurate”. The programming was done through LabView, programmed to stop the robot when the gyro sensor has made the rotation of a certain given angle. When we coded the robot to stop when the angle read was greater than 90 degrees, the robot stopped after rotating 97 degrees, meaning the robot was unable to stop right away at 91 degrees or less. This signifies there is a delay between the gyro sensor readings and stopping the movement of the motors, which may cause inaccuracy of programming which doesn’t take into account the delay of the motor movements. Respectively, when ran through the same program, but with different angle measurements, all trials resulted in delays. 90 degrees stopped when the port view read 97 degrees, 180 degrees stopped when the port view read 189 degrees, 270 degrees stopped when the port view read 278 degrees, and finally, 360 degrees stopped when the port view read 370 degrees. When taking a look at the delay in measurements of angles, the program for 90 degrees had 7 degrees of delay, the program for 180 degrees had 9 degrees of delay, the program for 270 degrees had 8 degrees of delay, and the program for 360 degrees had 10 degrees of delay. It seems like there is a slight increase in angle of delay as the angle of rotation in the program increases.
ROTATING WHILE MOVING
We wanted to find out if the gyro sensor would accurately measure the angle of rotation as it was moving at a constant speed. So we programmed in LabView a situation where the robot’s two wheels would be moving at two different powers, so that the robot would be rotating as it is also moving at a constant speed, and stop when it reaches a certain angle. One wheel was powered at 3/2 the power of the other wheel, so that the robot would end up moving in a curve or for 360 degrees, in a circle. When executed for 90 degrees, the port view reported an angle of 94 degrees when the robot stopped. For 180 degrees, it reported 183 degrees on the port view. For 270 degrees, it reported 272 degrees on the port view. For 360 degrees, the port view read 364 degrees. So respectively, 90 degrees had 4 degrees of delay, 180 degrees had 3 degrees of delay, 270 degrees had 2 degrees of delay, and 360 degrees had 4 degrees of delay. So in conclusion, for better accuracy, using the gyro sensor when the robot is rotating while moving on both wheels will result in less degrees of delay.
In conclusion, although there are delays due to sensor reactivity to programming, the gyro sensor on a robot would be useful for giving direction of the robot, counting rotations of the robot, or when functioning what the robot should do when it is pointing at a certain direction.