330 likes | 539 Views
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. Rock Climbing with Sampling-Based Motion Planning (Movie by Jean Claude Latombe, Stanford). Lecture Outline.
E N D
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
Rock Climbing with Sampling-Based Motion Planning (Movie by Jean Claude Latombe, Stanford)
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
Final Project and Presentations Meeting • By the end of the summer (August 28th, 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
Project Milestones (I) By April 1st, 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 6th, 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).
Project Milestones (II) By June 3rd, 2009Testing 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 24th, 2009Basic 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 28th 2009
Reminder: Course Web-Site http://acg.cs.tau.ac.il/courses/workshop/spring-2009/high-quality-motion-paths
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
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.
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
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
Select Examples of Lego Mindstorms NXT Robots • קוביה הונגריתhttp://www.youtube.com/watch?v=3QOvEG27Gt4 • מכונית דו-מפרקיתhttp://www.youtube.com/watch?v=oXUtzuQNUks • תנועה הולונומית http://www.youtube.com/watch?v=m9oioAL4fxcmore details • כדורגלhttp://www.youtube.com/watch?v=zrjNvU3ap8w • טיפוס מדרגותhttp://www.youtube.com/watch?v=t_sxkDS_pno • ערבוב חפיסת קלפיםhttp://www.youtube.com/watch?v=-2-otVNIYfo • רובוט הולךhttp://www.youtube.com/watch?v=T6tAubwJLfI • חיקוי הליכה של כלב טריירhttp://www.youtube.com/watch?v=CklvLnjANHM • גיטרה חשמליתhttp://www.youtube.com/watch?v=a-gcrhmxcKY&feature=related
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
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
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
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
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
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 • Motion planning example will be available on course website
Input of a 2D Worspace \ Robot(input\xml\utils\Geometry\Workspace\Workspace2D) Polygons as lists of vertices:
Input of a 3D Worspace \ Robot(input\xml\utils\Geometry\Workspace\Workspace3D) Polyhedrons as a list of triangles that define the faces (“mesh”):
Exporting XML input from Sketchup to OOPSMP • File OOPSMP Export Part checkbox
OOPSMP Code Overview • http://www.kavrakilab.org/OOPSMP/CodeStructure.html
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.)
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.html
GMotionPlannerProgram.xml (in input\xml\Graphics\GUserPrograms\)
Adding Your Own Code • You can add motion planners in OOPSMPMotionPlanners • Read the documentation in the OOPSMP website for more information
OOPSMP Installation Instructions • http://www.kavrakilab.org/OOPSMP/installation.html (Mac / Linux / Windows)
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
Mircosoft Robotics Developer Studio • http://msdn.microsoft.com/en-us/robotics/default.aspx -free download for most useful functionalities • 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)
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)
Additional Meeting – Next Week • Theory for sampling high-quality motion paths • Questions and answers session