====== 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}}