Posts

Global Navigation using Gradient Path Planning (GPP)

Image
 Global Navigation using Gradient Path Planning (GPP) The goal of this project is to make able to find an optimal path from the current place of a Taxi to the goal place using Gradient Path Planning (GPP) algorithm in a city map: The GPP algorithm consist of creating a field in the target position that spread among the map using a search algorithms (such as BFS, A*, etc...) without crossing the obstacles of the map. The "wave" stops when we reach the initial position. FIRST STEP: CREATING THE GPP FIELD EXPANSION As we are using a Grid Map (The image returned from MAP.getMap() is a numpy matrix), each of the position of the matrix represents a "node". We will start the BFS in the node (matrix position) of the clicked point. Using GUI.getTargetPose() and then MAP.rowColumn(targetPoseInWorld) we can transform the coordinates of the target point from the world to the image matrix. We will do the same with the Taxi coordinates in order to work all the time using the ...

Obstacle Avoidance using VFF

Image
 OBSTACLE AVOIDANCE USING VFF NAVIGATION ALGORITHM In this practice we will learn how to make a Formula 1 able to avoid obstacles in his path implementing the logic of the Virtual Force Field navigation algorithm ( VFF ):   The VFF (Virtual Force Field) is a navigation algorithm in which the trajectory of the robot (in this case, the formula1) is determined by virtual forces. We can differentiate 3 components: ATTRACTION FORCE: Force that push the robot toward an objective. REPULSIVE FORCE: Make up by the obstacles in the path (other cars, walls, etc...) which we don't want to crash into. AVERAGE FORCE: Linear combination of both the attraction and repulsive forces, each multiply by a different coefficient that adjust the weight of each force.  FIRST STEP: FINDING OUT THE VFF VECTORS:  The first thing we need to do is to find out the components of that vectors: REPULSIVE FORCE: Using the lidar sensor from the F1 we can estimate the distance from the car to each o...

Follow Line

Image
 FOLLOW LINE

Vacuum Cleaner

Image
 Vacuum Cleaner The goal of this project is be able to make a low-end vacuum cleaner. This cleaner would have to ensure to clean as much area as possible of a predetermined map that simulates a house. Since the goal is to emulate the behavior of the ones that are in the client market (of low-end), the vacuum cleaner must cover a good area in a reasonable time period: To achieve the objective, three different functionalities are presented using finite state machines (FSM). In this post we will explain all of them and we will analyze which one got the best results. First strategy: Bump & Go In this first approximation we are using a FSM of 4 states: going forward, going backwards, and turning left or right, depending on which side the bumper hits: The robot begins with "FORWARD" as initial state. In the moment he hits a wall, he will change his state to "BACKWARD", and he would start moving with the same velocity as he had in forward state, but now with negative ...