====== Lab02 - Reactive-based Autonomous Robot Behavior ======
^ Motivations and Goals ^
| Become familiar with reactive-based robot control |
| Become familiar with collision-avoidance and be aware of robot sensors |
| Be able to implement reactive based control of mobile robot |
^ Tasks ([[courses:b4m36uir:internal:instructions:lab02|teacher]]) ^
| Implement "Tangent Bug algorithm" for autonomous reactive-based navigation of hexapod walking robot **(2 Points)**|
| The robot has to pass through the environment using the implemented algorithm |
^ Lab resources ^
| Lab scripts: {{:courses:b4m36uir:labs:lab02.zip|lab02 resource files}} |
| V-REP scenes: {{:courses:b4m36uir:labs:scenes.zip| simple_distance.ttt, obstacles.ttt}}|
| V-REP remoteAPI: {{:courses:b4m36uir:labs:hexapod_vrep.zip|hexapod_vrep}}|
===== Bug algorithm =====
Reactive algorithm for obstacle avoidance (( [[http://www.cs.cmu.edu/~./motionplanning/lecture/Chap2-Bug-Alg_howie.pdf| Carnegie Mellon University - School of Computer Science slides on bug algorithm]])) assuming only a local knowledge about the environment.\\
Uses only two motion primitives:\\
* Follow a wall (left or right)
* Move in straight line towards the goal
==== Different types of bug algorithm ====
=== Tangent bug algorithm ===
- Head towards the goal
- Follow obstacles until you can head to the goal again
- Repeat
* [[https://www.youtube.com/watch?v=SKelVC02S-U]]
* {{:courses:b4m36uir:labs:tan_bug.png?200|}}
=== Bug algorithm 1 ===
- Head towards the goal
- Circumnavigate obstacles and remember how close you get to the goal
- Return to the point which was closest to the goal and head to the goal
- Repeat
* [[https://www.youtube.com/watch?v=Vm37TRRJAjc]]
* {{:courses:b4m36uir:labs:bug1.png?200|}}
=== Bug algorithm 2 ===
- Head towards the goal along the straight line $m$ connecting start and goal
- Circumnavigate obstacles until you encounter the $m$ line again
- Continue towards the goal along the $m$ line
- Repeat
* [[https://www.youtube.com/watch?v=5MdKaZuXdfY]]
* {{:courses:b4m36uir:labs:bug2.png?200|}}
**Task 1**\\ Think of the pitfalls for individual versions of the bug algorithm. What are upper/lower bounds on the path length that the robot takes?
**Task 2 (2 Points)**\\ Implement the tangent bug algorithm and test its performance in ''obstacles.ttt'' scene. Set the goal position of the robot to be [-1.6, 1.6].
===== Support files =====
{{:courses:b4m36uir:labs:lab02.zip|Support files for lab2}}