Download presentation
Presentation is loading. Please wait.
Published byBenjamin Preston Modified over 9 years ago
1
Lecture 3: Details of Projects Software Workshop: High-Quality Motion Paths for Robots (and Other Creatures) Barak Raveh, School of CS, Tel-Aviv University barak@post.tau.ac.il
2
Rock Climbing with Sampling- Based Motion Planning (Movie by Jean Claude Latombe, Stanford)
3
Lecture Outline Overview of suggested projects Technical programming details –CGAL code package (Computational Geometry Algorithms Library) –OOPSMP code package (Object Oriented Programming Sampling-Based Motion Planning) –Microsoft Robotics Developer Studio
4
Final Project and Presentations Meeting By the end of the summer (August 28 th, 2009) – we will all meet together for project presentations The final project is 80% of grade, including: –A fully functional code –Documentation (code comments, user guide, developer guide) –Presentation –Your project will be tested against a set of problems we will design in advance
5
Project Milestones (I) By April 1 st, 2009 : Submitting (by mail) an initial description of the project and the workplan (2-3 pages document) –Title –Brief summary (~100-200 words) of project goal –Description of project from a user point of view (input / output, etc.) –The major algorithmic tasks –The major programming tasks (engine, UI, etc.) –List of required tools, libraries and programming languages By May 6 th, 2009: Presenting the project plan – you will present the final project plans and get our final corrections (this is the deadline for changing your plans).
6
Project Milestones (II) By June 3 rd, 2009 Testing the project basic infrastructure: The students will be required to show that the basic technical infrastructure of the project works (e.g. tools or programming libraries that need to be installed, etc.). By July 24 th, 2009 Basic prototype: At this point in time, we will want to see your initial development, in order to make sure you are working in the right direction. You will show us a basic prototype of the project. The prototype is not expected to be fully functional, but it should give a very good feeling of where you're heading. Final submission by August 28 th 2009
7
Reminder: Course Web-Site http://acg.cs.tau.ac.il/courses/workshop/spring-2009/high-quality-motion-paths
8
Suggestion I: Motion Planning in Virtual Environments with Many DoFs The goal is to automatically plan a high quality motion path for a virtual robot with many DoFs. Examples for problems with a large number of DoFs: multiple rigid robots (easier to implement) snake robot industrial robot arm We recommend to rely on the OOPSMP open-source package for programming your algorithms in C++ –built-in interface with Google SketchUp –implementations of motion planning infrastructure and popular motion planning algorithms (PRM, RRT, EST, etc.) –More details next hour
9
Suggestion I: Input / Output Input: –A 3D world made of polyhedrons and a polyhedral robot –The user will be able to design the 3D input (using, e.g. Google Sketchup) –The user will also choose from a list of path-quality criteria 5-6 options, for example, path length, path clearance, path smoothness or their combinations. Output: –a high-quality motion path, if such path is found.
10
Suggestion II: Motion Planning with a Physical Lego Mindstorms NXT robot Similar to Suggestion I, but this time for a physical Lego NXT robot –We also recommend using OOPSMP for the motion planning and Google Sketchup for describing the world –Use Microsoft Robotics Developer Studio for interface with the robot motors and robot sensors Less DoFs than in virtual environments, but new challenges – in controlling a physical robot
11
Suggestion II: Input / Output Input: –Build a robot of your choice from the Lego, e.g., the NXT TriBot we saw in class –The user will be able to describe the world and the robot using, for instance, Google Sketchup or Microsoft Robotics Visual Studio –The user will also choose a path-quality criteria 3-4 options, for example, speed, path length, path clearance, path smoothness or combinations. Output: –The motion of the robot
12
Select Examples of Lego Mindstorms NXT Robots קוביה הונגרית http://www.youtube.com/watch?v=3QOvEG27Gt4 http://www.youtube.com/watch?v=3QOvEG27Gt4 מכונית דו-מפרקית http://www.youtube.com/watch?v=oXUtzuQNUks http://www.youtube.com/watch?v=oXUtzuQNUks תנועה הולונומית http://www.youtube.com/watch?v=m9oioAL4fxc more detailshttp://www.youtube.com/watch?v=m9oioAL4fxcmore details כדורגל http://www.youtube.com/watch?v=zrjNvU3ap8w http://www.youtube.com/watch?v=zrjNvU3ap8w טיפוס מדרגות http://www.youtube.com/watch?v=t_sxkDS_pno http://www.youtube.com/watch?v=t_sxkDS_pno ערבוב חפיסת קלפים http://www.youtube.com/watch?v=-2-otVNIYfo http://www.youtube.com/watch?v=-2-otVNIYfo רובוט הולך http://www.youtube.com/watch?v=T6tAubwJLfI http://www.youtube.com/watch?v=T6tAubwJLfI חיקוי הליכה של כלב טרייר http://www.youtube.com/watch?v=CklvLnjANHM http://www.youtube.com/watch?v=CklvLnjANHM גיטרה חשמלית http://www.youtube.com/watch?v=a-gcrhmxcKY&feature=related http://www.youtube.com/watch?v=a-gcrhmxcKY&feature=related
13
Suggestion III High-quality Coordination of multiple robots in polygonal environments Develop an algorithm that combines analytical and sampling-based methods in a clever way
14
Lecture Outline Overview of suggested projects Technical programming details –CGAL code package (Computational Geometry Algorithms Library) –OOPSMP code package (Object Oriented Programming Sampling-Based Motion Planning) –Microsoft Robotics Developer Studio
15
Lecture Outline Overview of suggested projects Technical programming details –CGAL code package (Computational Geometry Algorithms Library) –OOPSMP code package (Object Oriented Programming Sampling-Based Motion Planning) –Microsoft Robotics Developer Studio
16
OOPSMP – Sampling-based Motion Planning Package in C++ http://www.kavrakilab.org/OOPSMP/ Implementation of PRM, RRT, EST and other popular algorithms Local planners, distance functions, graph data structures Collision detection implemented using the PQP package Built-in Plug-in to Google Sketch-up
17
OOPSMP Execution Example Interactive program: $ bin\Release\oopsmp.exe..\OOPSMP\input\xml\Graphics\GUserPrograms\GMotionPlannerProgram.xml lib\OOPSMP\Release\OOPSMPGUserPrograms.dll Non-interactive program: $ bin\Release\oopsmp.exe..\OOPSMP\input\xml\UserPrograms\MotionPlannerProgram.xml lib\OOPSMP\Release\OOPSMPUserPrograms.dll
18
Google Sketchup Plugin to OOPSMP Google Sketchup is a freeware for modeling 3D environments See tutorial about plug-in in http://www.kavrakilab.rice.edu/OOPSMP/sketchup.html http://www.kavrakilab.rice.edu/OOPSMP/sketchup.html Motion planning example will be available on course website
19
Input of a 2D Worspace \ Robot (input\xml\utils\Geometry\Workspace\Workspace2D) Polygons as lists of vertices:
20
Input of a 3D Worspace \ Robot (input\xml\utils\Geometry\Workspace\Workspace3D) Polyhedrons as a list of triangles that define the faces (“mesh”):
21
Exporting XML input from Sketchup to OOPSMP File OOPSMP Export Part checkbox
22
OOPSMP Code Overview http://www.kavrakilab.org/OOPSMP/Code Structure.htmlhttp://www.kavrakilab.org/OOPSMP/Code Structure.html
23
OOPSMP Execution Code Structure OOPSMPExecutable.H (project oopsmp) : Loads a Manager class from the input XML, and calls manager::manage() OOPSMPManager.H (project OOPSMPManagers) : The ancestor of all manager classes. The manager contains a program object. Manager::manage() invokes the program OOPSMPProgram.H (project OOPSMPUserPrograms) : The ancestor of any type of user program (examples: programs for doing motion queries with and without graphical interface, programs for displaying solutions of motion queries, etc.)
24
The Input is Plug-and-Play in XML Format Plug-and-play – code is invoked directly from XML –see http://www.kavrakilab.org/OOPSMP/CodeStructure.htmlhttp://www.kavrakilab.org/OOPSMP/CodeStructure.html
25
Plug-and-Play XML Example
26
MotionPlannerProgram.xml (in input\xml\GUserPrograms\)
27
GMotionPlannerProgram.xml (in input\xml\Graphics\GUserPrograms\)
28
Adding Your Own Code You can add motion planners in OOPSMPMotionPlanners Read the documentation in the OOPSMP website for more information
29
OOPSMP Installation Instructions http://www.kavrakilab.org/OOPSMP/installation.html (Mac / Linux / Windows)http://www.kavrakilab.org/OOPSMP/installation.html
30
Lecture Outline Overview of suggested projects Technical programming details –CGAL code package (Computational Geometry Algorithms Library) –OOPSMP code package (Object Oriented Programming Sampling-Based Motion Planning) –Microsoft Robotics Developer Studio
31
Mircosoft Robotics Developer Studio http://msdn.microsoft.com/en-us/robotics/default.aspx - free download for most useful functionalitieshttp://msdn.microsoft.com/en-us/robotics/default.aspx –Simulation environment for the Lego NXT Tribot –Interface with the physical Lego NXT robot –Visual C#, C++, VB, and a visual block language –Good tutorials in the Microsoft Documentation (after installation, the documentation is installed together with the package)
32
Sample Code In the course website, we will put the sample code for you: –Controls the robot with C# (you can also do it directly in C++, but it is easier in C#) –Calls functions from OOPSMP (just as a proof of concept)
33
Additional Meeting – Next Week Theory for sampling high-quality motion paths Questions and answers session
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.