Entradas

OMPL Amazon warehouse

Imagen
 OPML AMAZON WAREHOUSE The objective of this exercise is to empower our robot to transfer a designated shelf from its initial location to a distinct area, utilizing a supplied map and shelf locations as points of reference. In my scenario, I have chosen the initial point as the destination. Additionally, it is crucial to highlight that we were constrained to crafting movement paths solely through the utilization of the OMPL library, a factor that has notably streamlined the entire task. How have I achieved it? First version The initial step involved configuring the robot to generate routes using OMPL. To achieve this, it was necessary to establish bidirectional mappings between the map and real-world coordinates, enabling seamless coordinate base transformations. Subsequently, I approximated the robot as a point (or pixel, in this context) and applied erosion to the map using a kernel size equivalent to the robot's pixel size plus an inflated area, akin to the approach employed by

Autoparking

Imagen
 Autoparking Autonomous Parking We are tasked with enabling our car for autonomous parking. Key considerations include: 1) The utilization of only three Lidar sensors, each providing information over 180 degrees. These sensors are strategically placed at the front, right side, and rear of the car. 2) A compass is available for determining the robot's orientation. 3) The initial position of the robot may not align with the correct lane for parking. 4) The initial orientation of the car may not be parallel to the street. auxiliar link Fig.1 Car sensors Having established the rules, we can now proceed to tackle the exercise. To address this challenge, I've chosen to break it down into manageable subproblems. Each subproblem represents a state for the robot, transitioning to the next upon resolution. The overarching goal is to construct a state machine, providing a comprehensive solution to the autoparking problem. Initial development phase In the initial development phase, I chose

Autonomous drone for search and rescue mission

Imagen
Autonomous drone for search and rescue mission For this exercise, we will design the control system for a drone intended for search and rescue missions. To assess the effectiveness of our program, we will simulate a shipwreck scenario. In this hypothetical situation, we will be informed of the presence of shipwreck survivors (with an unknown number of individuals) at specific coordinates. Our drone will need to navigate to the designated area, sweep the vicinity for survivors, report to the rescue team, and ultimately return to the takeoff zone. Drone behavior: For the fulfillment of our mission, we will implement a state machine in which our drone will start from the 'disarmed' state, needing to arm and take off before transitioning to the 'go to survivors' state. Once the drone is in the last sighting zone, it will switch to the 'search' state, where it will perform a spiral sweep and record the location of any spotted survivor. Finally, upon completing the se

Localized Vacuum Cleaner

Imagen
Localized Vacuum Cleaner For this practice, we are going to design the control system for a high-end vacuum cleaner. High-end vacuum cleaners stand out from the rest due to their more powerful sensors, which are required to enable the use of more optimal home cleaning algorithms. In this case, the algorithm we are going to use is the Backtracking Spiral Algorithm (BSA) for coverage. Backtracking Spiral Algorithm (BSA): This algorithm involves dividing the provided simulation world map into cells. The size of these cells will depend on the dimensions of the robot, and it is recommended that they have a slightly smaller size than the robot's diameter to prevent the robot from passing over the same area of the world multiple times, which would be represented by different cells in our auxiliary map. We will also classify our cells into three types: obstacle, already visited, and dirty. We will also expand the obstacles on the map using erosion to avoid getting too close to them and to

Arduino Vending Machine

Imagen
 Arduino Vending Machine For this practice we have to create an arduino program and use some sensors and actuators in order to simulate a real coffee vending machine. HARDWARE COMPONENTS: Joystick DHT11 (humidity and temperature sensor) Ultrasonic sensor Boton 2 Leds LCD Arduino Uno What is its behavior ? We are going to have 3 different behavior stages  1) Loading mode: The led 1 is going to blink 3 times at 1 seconds intervals. At the same time that we are executing the blinks of the led, we are going to write a loading message ("CARGANDO...") in the LCD; after that, it is going to entry to the service mode. 2) Service Mode: We are going to print a waiting for client message ("ESPERANDO CLIENTE") at the LCD until the distance sensors get a 1 meter or less detection, simulating the client detection. When the client has been detected, we are going to show the products at the LCD and letting the client search for the product that he wants using the joystick (up / dow

Global Navigation using TeleTaxi

Imagen
 Global Navigation For this practice, we will only have the teletaxi coordinates and a map and we have to make a program that will plan a safe path and drive the car in order to arrive to our destiantion What problems do we have? 1. Searching the path  2. Getting the linear and angular speed  which is the only thing that the car understand in order to arrive to our destination How did we solve it? 1. In order to find the path to our destiny, we will use the wave front algorithm which basically is a BFS approach for building a path from source to destination assigning weights to a grid of cells, being the destiny the global minimum of the grid. We also have to fatten the walls so the car will drive using the center of the road and avoiding going against a wall See a graphical example here 2. In order to get the angular and linear velocity; once we have calculate the route, we just have to convert the corresponding local destination (the next point to complete the route) and convert it t

Obstacle Avoidance

Obstacle avoidance In this practice we have an avoiding obstacle formula 1 using the VFF algorithm as objective. The VFF algorithm consist on getting repulsive and attractive forces that will represent the mobility system of our robot; getting a final force as result which will represent the angular and linear velocity for a safe navigation.  The attractive force: For the attractive force, we will get the relative position of the goal to our robot. This will represent a vector which we will normalize and use as the attractive force.  The repulsive force: This was the hard one. For getting this force, firstly we must parse the 180 measures that the laser give us in order to get the information that we want and delete the noise; then, we will transform that treated measures to a normalized vector that will have the opposite direction and sense to the object that we want to avoid. The total force: This is the final force that will have the form (lineal_velocity,angular_velocity). In order