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 [email protected]

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

Embed Size (px)

Citation preview

Page 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

Lecture 3: Details of ProjectsLecture 3: Details of Projects

Software Workshop:High-Quality Motion Paths for Robots (and Other Creatures)

Barak Raveh, School of CS, Tel-Aviv University

[email protected]

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

Rock Climbing with Sampling-Based Motion

Planning (Movie by Jean Claude Latombe, Stanford)

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

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

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

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

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

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

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

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

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

Reminder: Course Web-Sitehttp://acg.cs.tau.ac.il/courses/workshop/spring-2009/high-quality-motion-paths

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

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

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

OOPSMP Execution ExampleInteractive 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

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

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

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

Input of a 2D Worspace \ Robot(input\xml\utils\Geometry\Workspace\Workspace2D)

Polygons as lists of vertices:

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

Input of a 3D Worspace \ Robot(input\xml\utils\Geometry\Workspace\Workspace3D)

Polyhedrons as a list of triangles that define the faces (“mesh”):

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

Exporting XML input from Sketchup to OOPSMP

• File OOPSMP Export Part checkbox

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

OOPSMP Code Overview

• http://www.kavrakilab.org/OOPSMP/CodeStructure.html

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

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

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

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

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

Plug-and-Play XML Example

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

MotionPlannerProgram.xml (in input\xml\GUserPrograms\)

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

GMotionPlannerProgram.xml (in input\xml\Graphics\GUserPrograms\)

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

Adding Your Own Code

• You can add motion planners in OOPSMPMotionPlanners

• Read the documentation in the OOPSMP website for more information

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

OOPSMP Installation Instructions

• http://www.kavrakilab.org/OOPSMP/installation.html (Mac / Linux / Windows)

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

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

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

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)

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

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)

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

Additional Meeting – Next Week

• Theory for sampling high-quality motion paths

• Questions and answers session