Description
Sampling Based Planning (100 total points) We will focus this project and implementing and analyzing some of the sample based planning methods discussed in class. Figure 1: Environment 0 with start and goal congurations drawn. To help you with getting started there is an included python le collisions.py which has some classes dened to help you focus on the algorithm implementation. There is an additional le 1 Figure 2: Environment 1 with start and goal congurations drawn. named PythonPointers.pdf on Canvas which gives some links and simple examples to help people who are new to python. The code also contains function headers for the search methods you need to implement. Feel free to change the function arguments necessary to make it easier for you to solve the problems. There are two environments provided in the les env0.txt and env1.txt, these dene the robot parameters the robot location and a set of obstacles. They also provided a default start and goal position, but your implementation should be able to change these values when necessary. Your planner should be general to work between both the environments. The rst one uses a simple box robot that can only translate, while the second environment has an RRR robot with a xed base. We will focus on planning in the 2D plane were we have polygonal objects, which makes collision checking easy to implement. I’ve provided a simple robot class for an the box robot and RRR robot, which we will be using for the experiments. There is also a class that denes the environments and provides collision checking and simple visualization functions in collisions.py. I’ve also provided rrt.py which has a tree structure you can use in building your RRT, as well as some empty functions to ll out. You’re on your own for setting up the PRM structures. Rapidly-Exploring Random Trees (50 Points) Implement RRT We’ll start with implementing a traditional RRT and then build upon that with a few extensions. I should be able to run your code using a map le as described above and it should be clear how to change the transition function and actions used. You will need to be able to visualize the RRT tree and resulting plan/path for evaluation. For the three link robot, you can show a tree of the end-eector positions, to make visualization easier to understand. These functions are provided in the PolygonalEnvironment class. It may be helpful to rst plan and visualize these methods using a point in 2D space instead of with the full robot. 2 1.1 (20 pts) Implement an RRT. Use the two environments provided to plan a path from init to goal. Sample towards the goal instead of a random sample with 5% probability. Provide an image of both your tree and the resulting plan your algorithm nds for running on env0. Supply images of the resulting plan execution for env1. For help debugging, I got a plan on env0 in about 1.8 seconds with a step size of 2. For env1 I used a step size of 0.15 and needed at least 5000 samples to get a plan, but sometimes more samples. This would sometimes take over 2 minutes to run. Run your RRT for both environments again with three, signicantly dierent start and goal positions for each and again provide images of the tree and plan as before. 1.2 (10 pts) Compare the trees and plans produced by sampling towards the goal with 0%, 5%, 10%, and 50% probability for env0. 1.3 (10 pts) Extend your RRT implementation to create an RRT connect, replacing the standard build_rrt() function with build_rrt_connect() which continues to extend towards a given sample instead of only making a single length step until a collision occurs. Compare the resulting tree from running RRT-Connect to running the standard RRT for both env0 and evn1. Use a 5% goal sampling bias for both versions. Again provide the images of resulting tree and plan found by your algorithm. 1.4 (10 pts) Now using your RRT connect implementation build a bi-directional RRT where you build two RRT-connects alternatively growing each one. Replace growing towards the goal with growing towards the other tree. Compare the resulting graph / trees and plan found to those found in the other versions above. Probabilistic Roadmaps (30 Pts) Implement PRM You now need to implement a PRM using the same robot and map models as above. Use a simple straight-line planner that checks collisions at a step size of for a local planner (hint use epsilon equal to what worked well for your RRT). 2.1 (30 pts) Implement the standard PRM using the same robots and environment as above. Build the PRM on the same maps, but now show results for planning with multiple start and goal locations, while building only a single roadmap. Show the roadmap built before attaching goals and initial positions, as well as the plans found for each of the dierent test situations. How does the resulting map change with dierent number of samples? How about changing the radius for Rdisk? 2.2 BONUS 15 pts Now use your standard RRT implementation from problem 1 as the local planner in your PRM. Provide an image of your resulting roadmap. How does changing the number of samples change the performance of the PRM with an RRT local planner? How does the radius aect performance? 3 Vrep 7Dof arm (15 Pts) Setup You rst need to download V-REP and get it running on your system. If you encounter problems, please post them to the Discussion board, because it is likely that others will have the same problem. Follow these steps: Download V-REP Pro Edu for your operating system (Windows, Mac, or Linux) from their website. For Mac this is a zip le, for Linux it is a tarball, and for Windows it is a setup executable. Install V-REP on your system. For Mac and Linux you simply have to expand the compressed le you downloaded to a directory of your choosing and you’re ready to go. For Windows you have to run the setup executable and it will install where you tell it on your system. Navigate to the V-REP root folder and start the application: vrep.app in Mac, vrep.sh in Linux, vrep.exe in Windows. You should see an empty environment come up: Go to your running instance of V-REP and open the environment we provide by going to File > Open Scene… and navigating to the le project2/vrepfiles/vrepfiles/lbr4_environment.tttYou should see an LBR4 robot arm with a Barrett Hand come up. Common Issues Past students have resolved VREP problems, described below 1. Students have had issues importing vrep.py because python was 32bit version. If you have this issue reinstall with 64bit version of python. Simulated Robot You now need to run your RRT implementation on the VREP simulated robot. Run the lbr4_testscript.py to verify your computer is setup correctly. If you are running Linux, you should be able to run pip install SharedArray, and get a noticable speed improvement. Otherwise expect experiments to take 1-5 minutes. If something goes wrong and you wish to turn o speed improvements set sh to false. 3.1 (5 pts) Run normal RRT with VREP robot. Show screenshot of vrep. 3.2 (5 pts) Run RRT connect with VREP robot. Show screenshot of vrep. 3.3 (5 pts) Run bidirectional RRT connect with VREP robot. Show screenshot of vrep. Self Analysis (5 pts) 4.1 (1 pt) What was the hardest part of the assignment for you? 4.2 (1 pt) What was the easiest part of the assignment for you? 4.3 (1 pt) What problem(s) helped further your understanding of the course material? 4.4 (1 pt) Did you feel any problems were tedious and not helpful to your understanding of the material? 4.5 (1 pt) What other feedback do you have about this homework? 4