Robot Operating System (ROS) in Quadcopter Flying Robot Using Telemetry System

ABSTRACT


Introduction
The Indonesian Flying Robot Contest has several divisions, one of which is Vertical Take Off Landing (VTOL).The robot used in the robot contest is in the form of a multirotor or a flying robot that uses several motors as the main driving force for flying movements.The type of multirobot used is the Quadcopter / Quadrotor which is a type of unmanned aircraft using four motors that are used to perform flight movements.Each year the VTOL division has a different mission or obstacle.In general, robots carry out missions in an automatic way without controlling them using the remote, but by pressing one command button to complete the mission.The automatic control system used by Quadrotor is using the Linux operating system with a program built from the dronekit open source platform, and the programming language used is python [1].In this study implementing odometry using RVIZ on a quadcopter flying robot that uses the Pixhawk Cube firmware version 3.6.8as the sub-controller.Then the Lenovo G400 laptop as the main-controller as well as the Ground Control Station using the ubuntu 16.04 linux operating system.The ROS platform uses the Kinetic and MAVROS versions as a quadcopter platform package using MAVlink communication with the telemetry module.The odometry system was tested using Rviz as a navigation for Quadcopter movements in carrying out movements that follow movement patterns in certain shapes and perform basic robot movements.Data were collected using a standard measuring instrument inclinometer as a measurement of the slope of the robot and visualization RVIZ as a visual display of the odometric robot.The results of the research obtained are that the flying robot can maneuver according to the shape on the RVIZ according to the movements carried out directly at the airport, as well as the effect of roll angle on the quadcopter (negative left roll, positive right) and the pitch angle on the quadcopter (negative forward pitch, the pitch returns positive).
The problem that is often encountered in Quadrotor is evaluating the behavior of the flying robot when it will determine the best movement when conducting research or flight trials.Therefore, real time monitoring is needed and can be presented in three dimensions on the Linux operating system which can support the evaluation of flight behavior in robots.In this research, we will propose about odometry using RVIZ.Odometry is the use of data from robot motion sensors to estimate the position of the robot.Meanwhile, RVIZ is a service provided by Robot Operating Systems (ROS) that can display information visually on quadcopter flying robots [2].

Quadcopter Robot
One type of UAV (unnamed Aerial Vehicle) that is currently being studied is a quadcopter [3].A helicopter type UAV that uses four motors to move the propeller.The strength of a quadcopter is its ability to take off and land vertically.In general, a quadcopter is controlled via a radio transmitter remotely by humans so that control errors often occur, especially in the landing mechanism.

Quadcopter Robot Frame Design
Robot modeling using four rotors can be seen in Fig. 1, there are three axes x, y, and z as the positioning of the accelerometer, gyro, and compass sensors to determine the position of the robot so that it can be adjusted to the robot's movement displayed through RVIZ.

System Design
The diagram of a robot system using 4 rotors as a driver with 4 ESCs as motor drivers can be seen in Fig. 2. Pixhwak is flight controller, telemetry is a communication protocol between a robot and a laptop is a Ground Control Station (GCS).

Orientation
Orientation is a vector rotation in the form of a matrix that is used to determine the results of changes in pitch, roll, and yaw from processing data taken from the IMU sensor [4].The orientation of the robot is influenced by two parts of the rotation equation according to its respective functions which can be seen in Fig. 3, the "base link" rotation equation is a rotation used as a parameter of child rotation or robot rotation and "aircraft" is used as the main rotation or movement medium.The quarternion is part of the orientation unit where it is divided into two parts, namely using NED (north-east-down), namely the axis consisting of north, east, and down and ENU (east-north-up), which is the part of the axis consisting of east, north, and up.

Fig. 3. Vector Rotation
The quarternion determination uses the gyro value instead of the eulerian angle equation.The results of the value from the raw gyro data are then processed by EFK (Extended Kalman Filter) which is a filter used to stabilize the flying attitude of the robot, so that coovariance is obtained in each determination of the robot's flying attitude as the basic value of the change in direction in the matrix [5].Determination of the position of the robot can use DCM (Direction Cosine Matrix) from the value of the accelerometer and gyroscope to get real time measurements, so that the information that can be received is the euler angle in the form of roll, pitch, and yaw [6].The orientation value is the variable value x, y, z.Where, the values of x, y, z are influenced by the size of the angle in degrees, which is the result of changes in drone position [7].To obtain the orientation value, the following equation is used: The value of the x, y, z orientation is used to determine the angular velocity value for each variable x, y, z with the equation = nilai orientation y/ t ( 5) Where   is the angular velocity x (rad/s),   is the angular velocity y (rad/s),   is the angular velocity z (rad/s), t is the time in second (s).
The liner velocity equation is Where   is the linear velocity x (m/s),   is the linear velocity y (m/s),   is the linear velocity z (m/s), and T is the time period in the second (s) unit.
The linear velocity x, y, z values are used to obtain the linear acceleration value with the following equation: ̇=   / (11) To obtain total linear acceleration, equations are used With the total acceleration ax detected by the accelerometer sensor on the x-axis (m/ 2 ), ay the total acceleration detected by the accelerometer sensor on the y-axis (m/ 2 ), az the total acceleration detected by the accelerometer sensor on the z-axis (m/ 2 ), (ax) ̇ x-axis linear acceleration (m/ 2 ), (ay) ̇ y-axis linear acceleration (m/ 2 ), (az) ̇ z-axis linear acceleration (m/  2 ), and T is the time in second (s)

Rviz
Robot Operating System or ROS is a platform for developing Robot applications [8].Some examples such as sending and receiving information between one node and another node in a topic is one of the basic functions of ROS [9].Utilization of ROS in flying robots is often used for real time mapping and data retrieval [10].One of the features of ROS is Rviz which functions to display two-dimensional and three-dimensional simulations, some of the conditions provided by MAVROS [11] in utilizing Rviz as a GUI (Graphical User Interface) display for linux, can be seen in Fig. 4. MAVROS Services [12] which can be seen in Fig. 4 sends information from several IMU 3 DOF data nodes, mission way points, battery status, attitude, acceleration, and actuator controls.This study uses Rviz as a navigation for quadcopter movements in carrying out movements that follow movement patterns in certain forms.The settings applied to Rviz as a monitoring medium use the grid function as a mapping form of thirty squares as shown in Fig. 4 in the middle.

Result and Discussion
To determine the success rate of the robot in implementing a system that has been built using ROS, it is necessary to have a testing stage for each sub-system on the robot.The first test is hardware testing and system integration or system communication between the use of telemetry and GCS (laptop) which is connected so that the system can run according to using Rviz.
The second test is testing the movement accuracy between the Rviz navigation system and the movements carried out by the robot in simulating maneuvers using basic forward, backward, right-side and left-side movements.Testing the accuracy of the Movement was carried out in the Kotagede area, Yogyakarta.The third test is to carry out the test by flying the robot according to several types of movements carried out, including a square motion with each side having a side length of five meters, then performing a triangular motion with each side having a side length of five meters, and a movement that resembled a side length of five meters.Movement testing that resembles a square, triangle and the letter "V" was carried out in the Godean area, Yogyakarta.

Testing the Local Position Topic Axis
In the hardware and software configuration process, telemetry is required as a link between the two so that to find out whether the configuration process is carried out correctly or successfully, you can test the call of one of the commands from the ROS or call the topic provided by Mavros as in Fig. 5.After testing the function basic has been fulfilled, then next check on RVIZ by calling the topic "mavros / local position / local" on RVIZ.These stages can be seen in Fig. 6 by adjusting the shape of the robot modeling in the direction of the arrow which is blue.In the direction of the blue arrow shows the x-axis of the robot, so it can be seen that the robot is in the x-axis position on the left or the robot's face is facing to the left.In basic motion testing, 4 basic movements are carried out, namely when the robot makes a forward motion by testing the forward tilt data of the robot, the robot performs a reverse motion by testing the backward tilt of the robot, the robot performs right movements by testing the robot tilt data to the right, and the robot performs a left movement by testing the tilt data of the robot to the left.The basic movement consists of four different tables of motion, so that you can see the effect of the axis value on the robot's movement.

Forward Robot Tilt Testing
Basic motion testing by doing forward tilt testing can be seen on the following youtube link https://www.youtube.com/watch?v=xJJ8W16Eidc.In Table 1 and Fig. 7 shows the results of the forward slope test showing that the X value in the IMU data is experiencing change in value reduction by moving away from the number 0. The Y value in the IMU data changes in value addition by approaching the number 0. The Z value in the IMU data changes in value reduction by approaching the number 0. In the forward movement the pitch value is a movement that can be done by increasing the speed at the rear and reduces the speed at the front of the propeller.

Backward Tilt Testing of Robot
Basic motion testing by doing a backward tilt test can be seen on the youtube link as https://www.youtube.com/watch?v=xJJ8W16Eidc.In Table 2 and Fig. 8, the results of the forward slope test show that the X value in the IMU data changes in value addition by moving away from the number 0. The Y value in the IMU data changes in value addition by approaching the number 0 to more.The Z value on the data imu changes the value reduction by approaching the number 0. In the backward or backward movement the pitch value is a movement that can be done by reducing the velocity on the back and increasing the speed at the front of the propeller.

Pengujian Kemiringan Robot Ke Kanan
Basic motion testing by doing tilt testing to the right and left can be seen at the link https://www.youtube.com/watch?v=63uQA4iySsQ.In Table 3 and Fig. 9 shows the results of the tilt test to the right show that the X value in the IMU data changes in value addition by moving away from 0 the value is close to the number 0. In the movement to the right or to the left, the roll value is a movement that can be done by reducing the speed on the right side and increasing the speed on the left side of the propeller.

Tilt Test of Robot to the Left
Basic motion testing by doing tilt testing to the right and left can be seen at the link https://www.youtube.com/watch?v=63uQA4iySsQ.In Table 4 and Fig. 10 shows the results of the tilt test to the left show that the X value in the IMU data changes in value addition by moving away from the number 0. The Y value in the IMU data changes in value addition by moving away from the number 0. The Z value on the IMU data changes in reduction the value is close to the number 0. In the movement to the right or to the left the roll value is a movement that can be done by reducing the speed on the left and increasing the speed on the right side of the propeller.

Testing Forms a Flight Pattern
Retrieval of data using Rviz in monitoring the movement of the robot using rectangular modeling, the length of each side of the square arena is five meters and a grid of twenty cells.In Fig. 11 is a view from above when the robot maneuvers that resemble a square shape, robot modeling can be seen in the red arrow, while the robot maneuver process can be seen on the link as follows: https://www.youtube.com/watch?v=jp1zN7loz_Q.Maneuvers that resemble a triangle shape, robot modeling can be seen in the green arrow in the middle, while the robot maneuver process can be seen in the following link: https://www.youtube.com/watch?v=F1ShhQDoNXE.maneuvers that resemble the "V" shape in the right image, robot modeling can be seen in the green array, while the robot maneuvering process can be seen on the following link: https://www.youtube.com/watch?v=F1ShhQDoNXE.

Conclusion
Based on the results of research and testing of the ROS application system as navigation on quadcopter flying robots using telemetry that has been done, it can be concluded as follows.Quadcopter flying robots can implement ROS as a support for the robot in making basic movements using telemetry.Based on the tilt data to the front of the robot, it can be concluded that the X value on the IMU cube sensor changes very significantly starting from a slope of 1.10 ° to 40.10 °, experiencing a change in value from -0.3 to -6.4 compared to the Y value.and Z.Based on the slope data to the back of the robot, it can be concluded that the X value on the IMU cube sensor changes very significantly starting from a slope of 1.30 ° to 41.60 °, experiencing a change in value from 0.2 to 6.8 compared to the value Y and Z.Based on the slope data to the right of the robot, it can be concluded that the Y value on the IMU cube sensor changes very significantly starting from a slope of 0.10 ° to 20.30 °, experiencing a change in value from 0 to 3.5 compared to the X value and Z.Based on the slope data to the left of the robot, it can be concluded that the Y value on the IMU cube sensor changes very significantly starting from a slope of 1.60 ° to 20.60 °, experiencing a change in value from -0.2 to k e value -4.9 is compared to the value of X and Z.The flying robot can maneuver according to the shape on the Rviz according to the movements performed directly on the airfield.

Fig. 11 .
Fig. 11.Results of Square, Triangle, and Letter V Maneuver Modeling

Table 1 .
Forward Robot Tilt Data Fig. 7. CCW Pitch Data Retrieval Results

Table 2 .
Backward Slope Robot Data Fig. 8. Results of CW Pitch Data Retrieval

Table 3 .
Right Tilt Robot Data