Team Description Paper Sebastián Bejos, Fernanda Beltrán, Ivan Feliciano, Giovanni Guerrero, Moroni Silverio 1 Abstract We describe the design of the hardware and software components, as well as the algorithms that the robots of the Laboratory of Algorithms for Robotics(LAR) solve for the problem of the Standard Educational Kit(SEK) category of the Latin American Robotics Competition(LARC) 2014. 1. INTRODUCTION The team of the Laboratory of Algorithms for Robotics (LAR) is made up of students from the School of Higher Studies (FES) Acatlán, of the National Autonomous University of Mexico (UNAM). LAR is a research group of the UNAM dedicated primarily to the design of combinatorial and geometric algorithms with applications in planning the movements of mobile robots. On this occasion it will be the third year that LAR team participates in the Latin American Robotics Competition, highlighting that in their first participation (in 2011), they obtained third place. In addition, in April of this year we participated in the Mexican Robotics Tournament (TMR) with the rules of IEEE 2015, and won first place; LAR teams previously won two first places in the years 2011 and 2014, and a third place in 2013. First we will describe the design of the robots and explain their parts and functionality, then we will give the strategies and the algorithm being implemented to solve the problem. We will conclude with the different behaviours that the robots could take. 1 Laboratorio de Algoritmo para la Robótica, Centro de Desarrollo Tecnológico, Facultad de Estudios Superiores Acatlán UNAM 2. DESIGN According to the specifications and task demanded by the CLOCLON ; we designed and built two robots to work independently one in each module, the first Mr. Agile to act on the walls module and the second Miss Plow whose task was in the cave module. In order to build the robots, 2 LEGO MIND- STORMS Education EV3 Core Sets were used, one for each robot, as well as omnidirectional wheels and servomotors from the HiTechnic LEGO MINDSTORMS NXT kit. To program our robots we used the ROBOTC programming language, which is based on the C programming language. 2.1. Miss Plow s Design The first robot, named Miss Plow, was specially designed to maneuver in the cave module because being the largest and having no obstacles such as the walls module allows for easy mobility of a large robot. As the name says the aim of this robot is to sweep everything in its path, trying to bring as many humanoids as possible in the entrance module (rescue ship). Its role is justified by obtaining the most points, no matter how many wrong humanoids it carries. Miss plow has two main components, the car, which is the mechanism that makes it to move, and the structure surrounding it, which is where the humanoids acumulate to be pushed to the entrance module. On top of the robot is the brick and at the same height, in the front and in the rear, are two ultrasonic sensors to help verify the distance to the walls before entering into the module. Lower than the previous ultrasonic sensor is a gyro sensor that helps turn the robot as accurate as possible. On top
of the brick is an element made of small Lego kit pieces to add weight to the robot, and keep it from lifting the wheels off the floor. At the bottom are two servomotors from the Lego NXT kit, which are responsible for moving the two front wheels of the robot. Since our goal was to bring as many humanoids this involved a lot of weight that must be moved by the robot, to solve this, we needed more torque. Therefore the servomotors controlled a gear of 12 teeth and it was connected to a larger gear of 36 teeth; the latter moved the wheel. tinues to rescue another humanoid. Mr. Agile has two ultrasonic sensors, one in the front and one in the back, both are located higher than the humanoids maximum height; the objective of these sensors is to prevent the collision of the robot with the walls. It also adjusts its distance from the walls, so it can keep track of how straight it is advancing after some time. The robot can collide with the walls intentionally to position itself in a straight position. It can only transport a humanoid at once and can successfully rescue a humanoid every 2 minutes. Figure 1. A Lower Gear produce a larger output force and a larger mechanical advantage. Figure 2. Mister Agileand Miss Plow: Top View 2.2. Mister Agile s Design This is a smaller robot, allowing it to reduce the collisions with walls placed in the walls module. It has three wheels, the two front tires are each subject to a separate servomotor, this makes it easier to do turns; the rear wheel is an omnidirectional HiTechnic wheel. Mister Agile has a rotation sensor for precise turns and to reduce the deviation error when it advances forward. To detect the humanoids it has a color sensor just below the claw (which will be explained later). The color sensor allows the robot to detect the humanoid at all times once it is captured, this because at random occasions claw may close without capturing a humanoid, preventing the robot go to the module without rescuing a humanoid. The claw is closed once a humanoid is seen by the color sensor, as the robot reaches its destination with the humanoid then it opens and goes back to leave the humanoid and the robot con- 3. STRATEGIES AND PROBLEM SOLUTION As previously mentioned, our strategy was to divide the work for the limited time that was established in the rules. In the subsequent sections we explain the tactics for the solution of the challenge. 3.1. Mister Agile s Strategies The strategy for Mr. Agile is complicated because it enters a module where the number of walls ranges from one to four walls, and they can also be in different configurations specified in the rules. The route of the robot is performed once we know which configuration of the walls is going to be used in the competition. The program which generates the code for the robot route allows us to make alternate travel routes for the robot with minimal ef-
fort. We used an average to know approximately how much a servomotor had to turn for the robot to move forward 10 cm (which is our unit). This robot classifies humanoids, if a humanoid is of the color it needs to save it takes the humanoid to the corresponding module, if it is not, then it takes it to the entrance of the corresponding module so Miss Plow brings that humanoid when it arrives with the others and we can obtain more points. After advancing k units, the robot makes an adjustment using the data from the gyro sensor, this to prevent it from going as straight as possible, because of the sensor not being very precise. When the robot is near a wall it leans against it so you it can return to a straight position, if it tries to straighten itself with the help of a wall and it hits a humanoid then it tries again until it is straight. When it obtains a straightened position the robot considers it as the new reference position. The robot knows where the walls are because matrix data structure is built and every time the robot advances its coordinates are changed (position and orientation with respect to the matrix). According to the coordinates it decides whether it makes an adjustment with the walls or not. When the robot finds a humanoid it leaves the walls module through the shortest route, no matter where it is. To carry this out we did a program to make searches in amplitude (for the shortest route) on all possible wall configurations, this simple robot program allowed us to go and leave a humanoid and return to where it was (when it found the humanoid) following the shortest route. The robot based on its position and orientation followed the matrix data structure filled with arrows (created by breadth-first search) that indicated the route the robot must follow to exit the walls module. Figure 3. Matrix that shows the shortest scape way for a some walls configuration. 3.2. Ms Plow s Strategies The strategy for Miss Plow is simple, to have a planned trajectory to take as many humanoids as it can. The figure shows the route the robot travels. The width of the robot is a little less than 3 squares, so is the lenght. Therefore we seek to make the route cover as most ground as possible in the module without entering the cave. Because it doesn t Figure 4. Program that generates the rut inside the walls module (the 8 represent the walls)
classify the humanoids it gets, his priority is to follow the route exactly as planned. Because we don t actually know the exact number of humanoids that could be in the cave module, neither how they would be distributed in this module, we chose to divide the path of the robot in two parts. In the figure, the red and black for the right route and the left route, respectively. The blue and yellow arrows show the route to go to the entrance of the cave module and the sip, when we are in the central module and assuming that the ship of the robot is in that position. As it was described previously, we wanted that Miss Plow be very precise in its progress and turns. The same strategy as Mister Agile was used to increase the accuracy of progress, encoders were measured to establish a unit of progress of approximately 10 cm. The value of the rotation sensor has an error due to noise. The way we devised to prevent the accumulation of that error that affected the performance of the robot along its established path was restarting its value crashing at strategic points marked in the figure. The method to prevent the robot from following a straight line as planned was that at distances greater than a preset, the route was divided into intervals such that we checked that the value of the gyro sensor was not more than a predefined error established from the beginning. As we mentioned in the design, to ensure that the robot always go out or enter the cave module the ultrasonic sensors were used in case the progress and degrees of the rotation sensor made the robot get stuck. The figure shows light gray squares where the robot performed readings from the front, back or both ultrasonic sensors according to the location of the robot. Figure 5. Robot s path scheme for a CLOCLON with modules of the same dimensions. (1.90 m x 1.90m) ) 4. CONCLUSIONS Through the algorithm described above, our robots were able to meet the objective of competition, maybe not entirely, since we believe that the time allocated for each round of the competition was not enough. Overall they were able to rescue the largest number of humanoids, generating the most points.
ACKNOWLEDGMENTS The authors of this document would like to thank Fernando González and Araceli Pérez from the Center for Technological Development. Also to the Applied Mathematics and Computation Department for all the support given to us at different phases of this project. References [1] Rules of SEK Category 2015/2016. 14st IEEE Latin American Robotics, Rules of SEK 2015 Category. [2] Dave Astolfo, Mario Ferrari, Giulio Ferrari, Building Robots with LEGO Mindstorms NXT. Syngress Publishing, 2007. [3] Daniele Benedettelli, Creating Cool Mindstorms NXT Robots. Apress, 2008. [4] John C. Hansen, Lego Mindstorms NXT Power Programming Second Edition. Variant Press, 2009.