Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 3: Details of Projects Software Workshop: High-Quality Motion Paths for Robots (and Other Creatures) Barak Raveh, School of CS, Tel-Aviv University.

Similar presentations


Presentation on theme: "Lecture 3: Details of Projects Software Workshop: High-Quality Motion Paths for Robots (and Other Creatures) Barak Raveh, School of CS, Tel-Aviv University."— 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 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


Download ppt "Lecture 3: Details of Projects Software Workshop: High-Quality Motion Paths for Robots (and Other Creatures) Barak Raveh, School of CS, Tel-Aviv University."

Similar presentations


Ads by Google