![]() This specifies the probability of expected sensor readings for a particle given the actual sensor readings that the robot detects. This is done using a multi-variate Gaussian sensor model: This way each particle in the set will have a weight assigned to it, specifying the probability that the robot is actually in that location. Using the location where the robot started and keeping track of the motions executed, it is possible to compare real sensor readings with the ones expected from measurements done on the in-memory map of the world. The particle sets begin to carry too much uncertainty after the robot moves for a while, however distance sensors on the robot's body can be used to detect nearby objects. ![]() In practice, the two noise types need to be balanced and calibrated for the robot's characteristics (e.g. The next image shows how the prediction model can also assume high rotational noise, in which case the orientation is more uncertain: This was the case of high translational noise, in which the robot may drift sideways or it may travel for longer or shorter than desired, for a certain pair of wheel speeds. ![]() Notice how uncertainty in the predicted location increases as the robot moves: The following shows how the particle set expands over a period of motion, in order to account for different possible locations of the robot. Therefore multiple possible locations are maintained as the robot moves and accrues motion error. The wheel speeds are known and can be used in the motion model to compute predicted locations for each particle. This technique involves creating a set of particles, each of which represents a possible pose of the robot at a given time. ![]() Therefore, in the Webots implementation, the equations above are used at every simulation time step (64 ms) as part of the prediction step of a particle filter (Monte Carlo) localization algorithm. The problem is that these equations would only provide an estimated pose for a single robot instance. Then the distances can be combined with randomly drawn numbers from a univariate normal distribution in order to compute, for a given duration, the predicted coordinates and orientation, i.e. Which take the left and right wheel speeds in rads/second and convert it to actual travelled distance. It is important to model these two types of motion error, since the robot's body is subject to drift and slippage as it moves. It uses a basic motion model for 2-wheeled robots, with added Gaussian noise for the distance travelled in a period of time and for the orientation. ![]() The robots navigate the map using a differential steering mechanism. The EPuck robots have an in-memory grid-based representation of the map with the location of the obstacles specified: The controllers were written in Matlab, since matrix operations are performed quickly and it is easier to plot data while the simulation runs. The simulation was built using Webots 6.x. This could be seen as a taxi-hailing situation when a customer places an order and a taxi company sends the closest available vehicle.įor an example of the simulation running when several goal locations are generated and a decision is made as to which robot is assigned, see the video Implementation The objective is to minimize response time at the team-level, such that whenever a goal location is generated one of the robots will travel to it as soon as possible. This is an implementation of a multi-robot scenario in which multiple mobile robots need to travel as a team, on a map, to assigned locations. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |