1 / 33

Lecture 3: Details of Projects

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.

kyrie
Download Presentation

Lecture 3: Details of Projects

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  5. 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).

  6. 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

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

  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 • 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/CodeStructure.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.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)

  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 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)

  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

More Related