Sale!

Project 2:Sampling Based Planning CS 6370 / ME EN 6225 solved

Original price was: $35.00.Current price is: $30.00.

Description

5/5 - (14 votes)

Motion Planning
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