Escolar Documentos
Profissional Documentos
Cultura Documentos
Philippe Martinet Professor at Ecole Centrale de Nantes Researcher at IRCCYN, Nantes, France Associated Researcher at Pascal Institute, Clermont-Ferrand, France
In this part you will make the models of two mobile robots and you will validate them using matlab simulink. You will write a report explaining both theoretical and experimental aspects. Comments are more than welcome!!
1.1
Remember the main equation of a dierential drive robot: = V cos y = V sin = = (1)
Using R as the radius of the wheel, deduce the relation between: L R V (2)
Using simulink, make a block called unicycle for this mobile robot. It will have 2 inputs (V, ) and 3 outputs (x, y, ). Save it to unicyle.mdl.
1.2
Ackermann model
x y
Remember the main equation of the Ackermann robot: = V cos = V sin V = tan L =
(3)
where L represents the wheelbase. Using simulink, make a block called Ackermanndrive for this mobile robot. It will have 2 inputs (V, ) and 4 outputs (x, y, , ). Save it to Ackermanndrive.mdl
1.3
For both type of robots, make a simulink scheme using the previous designed simulink. Fixing the longitudinal velocity V to a desired value, use the function generator to simulate and validate your model.
Mapping
Install the robot Toolbox. For this download it from the SYSTI link website : http : //www.irccyn.ec nantes.f r/ martinet/systi.html.
2.1
load map1 This will dene a 100 100 map in the workspace. Can you interpret how is made this map? We will use a particular class bug 2 of the toolbox. Create an instance bug of the bug 2 class: bug Bug 2(map) Set the goal to reach using: bug.goal = [50; 35] Run the simulation using: bug.path([20, 10]) Interpret the algorithm. Explain what are the advantages and disadvantages of theis Bug2 algorithm. Execute it again using [15,80] for the starting point. How can you extract the path? Draw it on a gure (point by point). How you transform it as a continuous path?
2.2
As you have discovered in the previous part, map is dened in a particular way. How can you dene a new map? Do it, and
2.3
Is it possible to improve the current Bug2 algorithm with simple concept? If yes, try to do it by implementing a Bug3 algorithm!!