Page 148 - Robot Design Handbook ROBOCON Malaysia 2019
P. 148
After that, the image is separated into two, A and B, top part and the bottom part, in
order to get two contours. Once we obtained the two contours, some calculations have to be
made in order to get the centroid of the contours. Centroids and contours are shown in Figure
4. After that, the angle between two centroids had been calculated and send to the Arduino
by using serial communication. In addition, our robot is also able to detect cross-road. This
was archived by using Harriscorner detection. Harriscorner detection can detect how many
corners there are. For example, when there is a rectangular white box in the image, it means
there are four corners. When the camera captured a crossroad image, there will be 12
corners.
robot_state (imu)
This node is created in order to receive the data from the imu sensor. The imu sensor
helps the robot to locate the position of itself. After it receives the data from the imu sensor,
it will publish an imu topic and the raspberry node will subscribe to it and receive the imu
value. The robot can balance itself once it has those values. Besides, our robot is able to
know if it is on the Uukhai Zone by processing the imu value.
Movement of MR2
How the main system works when it receives the essential data from raspberry-pi B,
for example the information from the opencv and the imu data. Other than that, it interacts
with two ultrasonic sensors and one button. The function of the button is to give starting
signal to the MR2 when the Gerege is placed into the holder, thus triggerring the button in
the holder. The two ultrasonic sensors are located at front part and back part of the MR2,
and both are facing downward or the floor. The function of the ultrasonic sensor is to
measure distance from the MR2 body to the floor. This helps the MR2 to determine when
to climb up or go down from the Sand Dune by providing feed-back to the system so that
the robot can have rough estimation of its current location and movement. Besides that, we
use eight servo motors to moves four legs. Each leg has two servo motors so that the leg has
two DOF move horizontal and vertical. Moreover, there are two more servos which are
used to interact with the Gerege. One of the servo motors is use to hold the Gerege tight so
that the position of the Gerege can be fixed, and this reduces the variability for the Gerege
and the other one is to lift up the Gerege holder once the MR2 reaches the Mountain [3].
144

