Difference between revisions of "ME CS 133 2018-19"

From Robotics
Jump to: navigation, search
m (Sensor-Based Motion Planning Continued)
 
(103 intermediate revisions by the same user not shown)
Line 1: Line 1:
This is a homepage for ME/CS 133(a) (Introduction to Robotics) for Fall/Winter 2018-19.  We will also use the [https://courses.caltech.edu/course/view.php?id=2860 Caltech ''Moodle" system] for submitting homeworks, lab assignments, and final project reports.
+
This is a homepage for ME/CS 133(a) (Introduction to Robotics) for Fall/Winter 2018-19.  We will also use the Caltech ''Moodle" system for submitting homeworks, lab assignments, and final project reports.
 
   
 
   
 
__NOTOC__
 
__NOTOC__
Line 48: Line 48:
  
  
'''Lecture Schedule:'''
+
'''Lecture Schedule:''' Monday, Wednesday, Friday, 3:00-3:55 pm, 135 Gates-Thomas
* '''Days:''' Monday, Wednesday, Friday
+
* '''Time:''' 3:00-3:55 pm  
+
* '''Location:''' 135 Gates-Thomas
+
  
 
== Announcements For ME/CS 133(a,b) ==
 
== Announcements For ME/CS 133(a,b) ==
 +
* '''01/18/19''': Lab 1b is due on MONDAY.  The T.A.s should have emailed to your group the data from your lab scripts.
 +
* Lab 1b, additional code:
 +
** Run [http://robotics.caltech.edu/~jwb/courses/MECS133/bebop_s.py  this file] before sending any commands to check your trajectory. Open rviz in another terminal and add the marker from the published topic. The marker will follow the /bebop/cmd_vel commands.
 +
** In case you are missing your files from Lab 1, they are missing some values or they are corrupted, you can do the analysis on the [http://robotics.caltech.edu/~jwb/courses/MECS133/me133b_lab1_output.zip files in this zip directory].  It includes the output file bebop.csv, python script that generated the file, the matlab script to read the output file lab_csv_analysis.m. Run this file to get a comparison between the commanded path, the path bebop though it was doing and the true path from Optitrack
 +
 +
* '''12/07/2018:''' Please mail a copy of your lab 2 report to Andrew Singletary ( drewsingletary1@gmail.com )
 +
* '''11/30/2018:''' The [[Media:MECS133a_Final_Project_Instructions.pdf | Final Project Instructions]] were distributed in class.
 +
 +
== Course Text and References ==
 +
 +
The '''main course text''' for '''ME/CS 133(a)''' is: 
 +
* [https://www.cds.caltech.edu/~murray/books/MLS/pdf/mls94-complete.pdf R.M. Murray, Z. Li, and S. Sastry, ''A Mathematical Introduction to Robotic Manipulation,'' CR Press, 1994.] 
 +
* The 1st edition of this book is available freely on-line at the link above, and is perfectly adequate for the course
 +
 +
We will refer to this text as ''MLS'' (the initials of the authors' last names). While the course topics will follow the text, additional material will often be presented in class. Additional course handouts covering this material will be posted on this website
 +
 +
A ''' main text''' for the '''ME/CS 133(b)''' is: ''Planning Algorithms'' by Steve LaValle (UIUC).
 +
* You can buy this book [http://www.amazon.com/Planning-Algorithms-Steven-M-LaValle/dp/0521862051/sr=1-1/qid=1167872270/ref=sr_1_1/105-3129515-7885245?ie=UTF8&s=books  on-line at Amazon].  A [http://msl.cs.uiuc.edu/planning/  preprint of the text ] is available freely on-line, and is adequate for all course activities. 
 +
 +
The following two books are recommended (but not required) for ME/CS 133(b):
 +
* ''Principles of Robot Motion: Theory, Algorithms, and Implementations,'' by Howie Choset, Kevin Lynch, Seth Hutchinson, George Kantor, Wolfram Burgard, Lydia Kavraki, and Sebastian Thrun.
 +
* ''Probabilistic Robotics'', S. Thrun, W. Burgard, D. Fox, MIT Press, 2006.
 +
 +
This first text is [http://www.amazon.com/Principles-Robot-Motion-Implementations-Intelligent/dp/0262033275/sr=1-2/qid=1167872622/ref=sr_1_2/105-3129515-7885245?ie=UTF8&s=books  available at Amazon ] in both new and used versions.  The probabilistic robotics text has an [http://www.probabilistic-robotics.org/ associated website], and is similarly [https://www.amazon.com/gp/product/0262201623/102-8479661-9831324?v=glance&n=283155&n=507846&s=books&v=glance available on Amazon].
 +
 +
=== Grading ===
 +
 +
For ME/CS 133(b), the final grade will be based on a few homework sets, laboratories, and a final project:
 +
 +
* ''' Homework (20%):''' Homework sets are due at 5 pm on the due date (which will always coincide with a class meeting).  Homeworks can be dropped off in class, or deposited in the box outside of 245 Gates-Thomas.  Some homeworks will require computation.  MATLAB or Mathematica should be sufficient to solve every homework posed in ME/CS 133(a), though students can choose their favorite programming language. Code is considered part of your solution and should be included in with the problem set when appropriate.  ME/CS 133(b) will require a bit more knowledge of coding in C++ or python.
 +
 +
* ''' Laboratory (40%):''' Lab reports are due at 5 pm on the due date (which will usually coincide with a class meeting).  Labs can be dropped off in class, or deposited in the box outside of 245 Gates-Thomas.  The first labs will familiarize students with the class robots.  Subsequent labs will focus on how to translate the lecture material to the lab robots, and will often involve the use of software systems such as ROS and OOMPL.
 +
 +
* '''Final project (40%):''' The final project must incorporate some aspect of the course, and the topic and scope my be approved by the course instructor.  The final exam will due at 5:00 pm the last day of finals. The final project is similarly due at 5:00 pm on the last day of finals.
 +
 +
* '''Late Homework Policy:'''  Students may automatically take a 2-day extension on '''two''' homeworks or labs during each quarter.
 +
 +
=== Collaboration Policy ===
 +
 +
Collaboration on homework assignments is encouraged. You may consult outside reference materials, other students, the TA, or the instructor, but you must cite any use of material from outside references. All solutions that are handed in should be written up individually and should reflect your own understanding of the subject matter.  Computer code and graphical plots are considered part of your homework solution, and therefore should be done individually (you can share ideas, but not code). 
 +
 +
Laboratory assignments will be performed in small teams. Collaboration on laboratory assignments is different.  Each team need only submit one laboratory report.
 +
 +
== Course Lecture Schedule for ME/CS 133(b) ==
 +
{| border=1 width=100%
 +
|-
 +
| Week || Date || Topic || Reading || Optional Reading || Homework
 +
 +
|-
 +
|  align=center rowspan=4 | 1
 +
| colspan=5|
 +
=====Review of Quadcopters, Intro to Motion Planning =====
 +
|-
 +
| 7 Jan. (Mon.)
 +
| ME 133(b) Class Overview, <br> Quadcopter Review, <br> Intro to Motion Planning
 +
| [[Media:MECS_133b_overview_2019.pdf | Course Overview]], <br> [[Media:QuadCopterDynamicsControl.pdf | Brief Review of Quadcopter Mechanics/Control]]
 +
|   
 +
| rowspan=3 align=center | [[Media:MECS133b_lab1b_instructions_2019.pdf | -Lab 1b -]] <br> [http://robotics.caltech.edu/~jwb/courses/MECS133/me133b_lab1b_template.py  Python Template]
 +
 +
|-
 +
| 9 Jan. (W)
 +
| Motion Planning Intro (continued)
 +
| Lavalle, Chapter 1
 +
|
 +
 +
|-
 +
| 11 Jan. (F)
 +
| Motion Planning problems, and c-space intro
 +
|
 +
|
 +
 +
|-
 +
|  align=center rowspan=4 | 2
 +
| colspan=5|
 +
===== Intro to Motion Planning =====
 +
|-
 +
| 14 Jan. (Mon.)
 +
| [[Media:CSpace_Slides.pdf | Configuration Space Obstacles]]
 +
|Lavalle Chapter 3.1, [https://www.youtube.com/watch?v=SBFwgR4K1Gk Visualization of C-obstacles]
 +
| [http://demonstrations.wolfram.com/RobotMotionWithObstacles/ Wolfram 2R c-obstacle demo] 
 +
| rowspan=3 align=center | - N/A-
 +
 +
|-
 +
| 16 Jan. (W)
 +
| Motion Planning Intro & Road Maps
 +
| Lavalle Chapter 3.1 on c-obstacles
 +
|
 +
 +
|-
 +
| 17 Jan. (F)
 +
| Road Maps Continued
 +
| Lavalle Chapter 6.1, 6.2
 +
|
 +
 +
|-
 +
|  align=center rowspan=4 | 3
 +
| colspan=5|
 +
 +
===== RoadMap Motion Planning Methods =====
 +
|-
 +
| 21 Jan. (Mon.)
 +
| ''No Class'', Institute MLK Holiday
 +
|
 +
|   
 +
| rowspan=3 align=center | [[Media:set1b.19.pdf | Homework #1b]]
 +
 +
|-
 +
| 23 Jan. (W)
 +
| Generalized Voronoi Graphs
 +
| Lavalle Chapters 6.1 and 6.2 on Roadmaps
 +
|
 +
 +
|-
 +
| 25 Jan. (F)
 +
| Intro to Sample-Based Planners
 +
|
 +
|
 +
 +
|-
 +
|  align=center rowspan=4 | 4
 +
| colspan=5|
 +
 +
===== Sample-Based Planners, Cellular Decomposition =====
 +
|-
 +
| 28 Jan. (Mon.)
 +
| ''No Class'', Burdick sick
 +
|
 +
|   
 +
| rowspan=3 align=center | -N/A-
 +
 +
|-
 +
| 30 Jan. (W)
 +
| Random Dense Trees
 +
| Lavalle Chapter 5
 +
|
 +
 +
|-
 +
| 1 Feb. (F)
 +
| Cellular Decomposition
 +
| Lavalle Chapt. 6.3
 +
|
 +
 +
|-
 +
|  align=center rowspan=4 | 5
 +
| colspan=5|
 +
 +
===== Inertial Navigation, Odometry =====
 +
|-
 +
| 4 Feb. (Mon.)
 +
| [[Media:InertialNavigationSlides.pdf | Inertial Navigation]]
 +
| [[Media:NotesInertialNavigation.pdf | Notes on the Kinematics of Inertial Navigation]]
 +
|   
 +
| rowspan=3 align=center | [[Media:MECS133b_OdometryLab.docx | Lab 2 Instructions]] <br> (Due Feb. 20, 2019)
 +
 +
|-
 +
| 6 Feb. (W)
 +
| Inertia Navigation continued
 +
|
 +
|
 +
 +
|-
 +
| 8 Feb. (F)
 +
| Visual Odometry
 +
| [[Media:LuMilios_Scanmatch.pdf | Laser Scan Matching by Lu and Milsios]]
 +
|
 +
 +
|-
 +
|  align=center rowspan=4 | 6
 +
| colspan=5|
 +
 +
===== Intro to Estimation/SLAM =====
 +
|-
 +
| 11 Feb. (Mon.)
 +
| [[Media:ScanMatchingSlides.pdf | Scan Matching]]
 +
|
 +
|   
 +
| rowspan=3 align=center | [[Media:FinalProjectGuidelines_2019.pdf | Final Project Guidelines]]
 +
 +
|-
 +
| 13 Feb. (W)
 +
| [[Media:ProbabilityReview.pdf | Probability Review]] <br> Intro to Occupancy Grid Mapping
 +
|
 +
|
 +
 +
|-
 +
| 15 Feb. (F)
 +
| [[Media:KalmanFilter_1.pdf | Kalman Filter Intro]]
 +
|
 +
|
 +
 +
|-
 +
|  align=center rowspan=4 | 7
 +
| colspan=5|
 +
 +
===== Sensor-Based Motion Planning Continued =====
 +
|-
 +
| 18 Feb. (Mon.)
 +
| ''No Class'': President's Day Institute Holiday
 +
|
 +
|   
 +
| rowspan=3 align=center |  -N/A-
 +
 +
|-
 +
| 20 Feb. (W)
 +
|
 +
|
 +
|
 +
 +
|-
 +
| 22 Feb. (F)
 +
| Kalman Filter Derivation Completed
 +
|
 +
|
 +
 +
 +
|-
 +
|  align=center rowspan=4 | 8
 +
| colspan=5|
 +
 +
===== Sensor-Based Motion Planning Continued =====
 +
|-
 +
| 25 Feb. (Mon.)
 +
| [[Media:SLAMwrapup.pdf | SLAM Wrap-Up]]
 +
|
 +
|   
 +
| rowspan=3 align=center |  [[Media:PreLab3.docx | Pre-lab #3]] <br> [https://drive.google.com/file/d/1Vx2cJNFkb3UV9uwk3fyuSGDwUrmhBuaM/view Velodyne Bag File]  <br>
 +
[[Media:MECS133b_Lab3.docx | Lab 3]]
 +
 +
|-
 +
| 27 Feb. (W)
 +
| Sensor-Based Planning, Bug I
 +
| [[Media:BugSlides.pdf | Choset Slides on Bug Algorithms ]] <br> Lavalle 667-673
 +
| [http://robotics.caltech.edu/~jwb/courses/ME132/handouts/LumelskyBug.pdf Lumelsky Bug Algorithm Paper]
 +
 +
|-
 +
| 1 Mar. (F)
 +
| Bug II and Tangent Bug
 +
|
 +
|
 +
 +
 +
|-
 +
|  align=center rowspan=4 | 9
 +
| colspan=5|
 +
 +
===== Sensor-Based Motion Planning Continued =====
 +
|-
 +
| 4 Mar. (Mon.)
 +
| Tangent Bug
 +
| Lavalle 670-671
 +
|   
 +
| rowspan=3 align=center | Lab #3 Post-Lab data: <br> [https://drive.google.com/file/d/1ojxd60lOxx2yAp7n6Q8FoondummfNpZo/view?usp=sharing Bag File of Data from the Flipper Rover]; <br>[https://drive.google.com/file/d/1XV7AdS4lyXpbYBEiGy_91qy5YSg8W3u3/view?usp=sharing CSV file of OptiTrack Data]
 +
 +
|-
 +
| 6 Mar. (W)
 +
| Graph Searching, A* search, Intro to D*
 +
| Lavalle 27-39, <br> Lavalle Section 12.3.2 (starting P. 662) <br> [[Media:AstarAnalysis.pdf | Analysis of the A* algorithm]]; <br> [[Media:Astar.pdf | Brief Description of A* algorithm]]
 +
| [http://robotics.caltech.edu/~jwb/courses/ME132/handouts/Dstar_icra94.pdf The original D* algorithm], <br> [http://idm-lab.org/bib/abstracts/papers/aaai02b.pdf D*-lite paper]
 +
 +
|-
 +
| 8 Mar. (F)
 +
| D* continued
 +
| [[Media:DStar_Slides.pdf | Slides on D*]]
 +
|
 +
 +
|-
 +
|  align=center rowspan=3 | 10
 +
| colspan=5|
 +
 +
===== Sensor-Based Motion Planning Continued =====
 +
|-
 +
| 11 Mar. (Mon.)
 +
| More D*
 +
|
 +
|   
 +
| rowspan=2 align=center | Lab #3 Due date changed  <br> to Friday, March 15
 +
 +
|-
 +
| 13 Mar. (W)
 +
| [[Media:Policies.pdf | Sensor Based Motion Planning via Policies]]
 +
|
 +
|
 +
 +
|}
  
 
== Course Lecture Schedule for ME/CS 133(a) ==
 
== Course Lecture Schedule for ME/CS 133(a) ==
Line 67: Line 348:
 
| 1 Oct. (Mon.)
 
| 1 Oct. (Mon.)
 
| Class Overview
 
| Class Overview
| [[Media:MECS_133a_overview_2018.pdf | Course Overview]], <br> [http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page  Chapter 1 of MLS]
+
| [[Media:MECS_133a_overview_2018.pdf | Course Overview]], <br> [http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page  Chapter 1 of MLS], <br> [[Media:IntroSlides.pdf | Introduction to the DARPA Subterranean Challenge]]
 
| [http://dlxs2.library.cornell.edu/k/kmoddl/pdf/013_002.pdf History of Kinematics Through 1900] (Introductory chapter from <em> Kinematic Synthesis of Linkages</em>)   
 
| [http://dlxs2.library.cornell.edu/k/kmoddl/pdf/013_002.pdf History of Kinematics Through 1900] (Introductory chapter from <em> Kinematic Synthesis of Linkages</em>)   
 
| rowspan=3 align=center | -No Homework-
 
| rowspan=3 align=center | -No Homework-
Line 75: Line 356:
 
| Planar Rigid Body Kinematics, <br> Planar displacements
 
| Planar Rigid Body Kinematics, <br> Planar displacements
 
| [http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page MLS Ch 2.1], Pages 19-23
 
| [http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page MLS Ch 2.1], Pages 19-23
| [https://en.wikipedia.org/wiki/Peaucellier%E2%80%93Lipkin_linkage Wikepedia Page on the Peaucellier Mechanism]
+
| [https://en.wikipedia.org/wiki/Peaucellier%E2%80%93Lipkin_linkage Wikipedia Page on the Peaucellier Mechanism]
  
 
|-
 
|-
Line 94: Line 375:
 
| [[Media:EllipticalTrammel.pdf | Notes on the Elliptical Trammel]]
 
| [[Media:EllipticalTrammel.pdf | Notes on the Elliptical Trammel]]
 
|  [http://en.wikipedia.org/wiki/Trammel_of_Archimedes Archemides Trammel] (Wikipedia)<br>[https://www.youtube.com/watch?v=CBhxKavV_Xo Trammel], [https://www.youtube.com/watch?v=OMNArJh7umg&list=PL6534E936D46257BF&index=22 V 1], [https://www.youtube.com/watch?v=GAVx3x_H1eA&list=PL6534E936D46257BF&index=20# V 2], [https://www.youtube.com/watch?v=OMNArJh7umg&list=PL6534E936D46257BF&index=22 compliation], <br> [[Media:PolyhedralLinkages.pdf | Linkages Synthesized Using Cardan Motion Along Radial Lines]]
 
|  [http://en.wikipedia.org/wiki/Trammel_of_Archimedes Archemides Trammel] (Wikipedia)<br>[https://www.youtube.com/watch?v=CBhxKavV_Xo Trammel], [https://www.youtube.com/watch?v=OMNArJh7umg&list=PL6534E936D46257BF&index=22 V 1], [https://www.youtube.com/watch?v=GAVx3x_H1eA&list=PL6534E936D46257BF&index=20# V 2], [https://www.youtube.com/watch?v=OMNArJh7umg&list=PL6534E936D46257BF&index=22 compliation], <br> [[Media:PolyhedralLinkages.pdf | Linkages Synthesized Using Cardan Motion Along Radial Lines]]
| rowspan=3 align=center | [[Media:MECS133a_set1.18.pdf | Homework 1]], <br> (Due Oct. 14) <br>   
+
| rowspan=3 align=center | [[Media:MECS133a_set1.18.pdf | Homework 1]], <br> (Due Wed. Oct. 17) <br>  [[Media:MECS133a_sol1a.18.pdf | Solution 1]]
  
 
|-
 
|-
Line 118: Line 399:
 
| [http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page MLS 27-31]
 
| [http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page MLS 27-31]
 
| [https://en.wikipedia.org/wiki/Cayley_transform Wikipedia Page on Cayley Transform]
 
| [https://en.wikipedia.org/wiki/Cayley_transform Wikipedia Page on Cayley Transform]
| rowspan=3 align=center | [[Media:MECS133a_set2a.18.pdf | Homework 2]] <br> (Due Oct. 24)
+
| rowspan=3 align=center | [[Media:MECS133a_set2a.18.pdf | Homework 2]] <br> (Due Oct. 26) <br> [[Media:MECS133a_sol2a.18.pdf | Solution #2]]
 +
 
 
|-
 
|-
 
| 17 Oct. (W)
 
| 17 Oct. (W)
Line 124: Line 406:
 
|  
 
|  
 
| -N/A-
 
| -N/A-
 +
 
|-
 
|-
 
| 19 Oct. (F)
 
| 19 Oct. (F)
Line 160: Line 443:
 
|-
 
|-
 
| 29 Oct. (M)
 
| 29 Oct. (M)
| Motion Capture via Rodriguez Equation <br> Intro to Rigid Body Velocities
+
| Motion Capture  
| [[Media:Rodriguez.pdf | Using Rodriguez' Displacement Equation]], <br>[http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page MLS 51-56]
+
| [[Media:Rodriguez.pdf | Using Rodriguez' Displacement Equation]], <br> [[Media:QuadternionMotionCapture.pdf | Quaternion-Based Displacement Estimation]] <br>[http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page MLS 51-56]
|  
+
| [[Media:HornQuaternion.pdf | Horn paper on Quaternion-Based Displacement Estimation]]
| rowspan=3 align=center | [[Media:MECS133a_set3.pdf | Homework 3]] <br> [[Media:VirualMachineSetup.pdf | Instructions on Acquiring Virtual Machine]] <br> [[Media:ROS_tutorial.pdf | ROS Tutorial]] <br> [[Media:MECS133_sol3_17.pdf | Solution 3]]
+
| rowspan=3 align=center | [[Media:MECS133a_lab1.18.pdf | Lab 1]] <br> [http://robotics.caltech.edu/~jwb/courses/MECS133/me133a_lab1.zip Zip File with lab1 data and MATLAB scripts]
 
|-
 
|-
 
| 31 Oct. (W)
 
| 31 Oct. (W)
| Rigid Body Velocities Continued <br> Intro to Wrenches 
+
| Rigid Body Velocities <br>  
 
| [http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page MLS 57-64]
 
| [http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page MLS 57-64]
 
| -N/A-
 
| -N/A-
Line 172: Line 455:
 
| 2 Nov. (F)
 
| 2 Nov. (F)
 
| Rigid Body Velocities and Coordinate Transformations  
 
| Rigid Body Velocities and Coordinate Transformations  
| [[Media:Rodriguez.pdf | Using Rodriguez' Displacement Equation]], <br>[http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page MLS 51-56]
+
| [http://www.cds.caltech.edu/~murray/mlswiki/index.php/Main_Page MLS 51-56]
 
| -N/A-
 
| -N/A-
  
Line 179: Line 462:
 
| colspan=5 |
 
| colspan=5 |
  
===== Spatial Kinematics and Velocities =====
+
===== Multi-Body Kinematics =====
 
|-
 
|-
 
| 5 Nov. (M)
 
| 5 Nov. (M)
| ROS Tutorial
+
| Wrenches
 +
| MLS Chapter 2, Sections 5.1 and 5.2
 
|  
 
|  
| [[Media:ROS_tutorial.pdf | ROS Tutorial]]
+
| rowspan=3 align=center |   
| rowspan=3 align=center | [http://robotics.caltech.edu/~jbowkett/me133a_ros_tut.py Python script for ROS Tutorial] <br>  
+
 
|-
 
|-
 
| 7 Nov. (W)
 
| 7 Nov. (W)
| Intro to multirotors
+
| Joints
 
|  
 
|  
 
| -N/A-
 
| -N/A-
 
|-
 
|-
 
| 10 NOV. (F)
 
| 10 NOV. (F)
| Multirotor Equations of Motion
+
| Multi-Body Kinematics
 +
| MLS Chapter 3, Sections 1 and 2
 +
| -N/A-
 +
 
 +
|-
 +
| align=center rowspan=4 | 7
 +
| colspan=5 |
 +
 
 +
===== ROS Tutorials =====
 +
|-
 +
| 12 Nov. (M)
 +
| ROS Tutorial
 +
| [[Media:ROS_tutorial.pdf | ROS Tutorial]]
 +
|
 +
| rowspan=3 align=center |  [http://robotics.caltech.edu/~jbowkett/me133a_ros_tut.py Python script for ROS Tutorial] <br> 
 +
|-
 +
| 14 Nov. (W)
 +
| In-class tutorial on Running ROS
 +
|
 +
| -N/A-
 +
|-
 +
| 16 NOV. (F)
 +
| ''NO CLASS''
 +
|
 +
| -N/A-
 +
 
 +
|-
 +
| align=center rowspan=4 | 8
 +
| colspan=5 |
 +
 
 +
===== Forward Kinematics =====
 +
|-
 +
| 19 Nov. (M)
 +
| Denavit-Hartenberg Convention
 +
|
 +
| [http://robotics.caltech.edu/~jwb/courses/ME115/handouts/DenavitHartenberg_Craig.pdf  Scan of Craig Book on D-H Parameters]
 +
| rowspan=3 align=center |   
 +
|-
 +
| 21 Nov. (W)
 +
| More Forward Kinematics, Jacobians
 +
|
 +
| -N/A-
 +
|-
 +
| 23 NOV. (F)
 +
| ''NO CLASS,''  Thanksgiving Holiday
 +
|
 +
| -N/A-
 +
 
 +
|-
 +
| align=center rowspan=4 | 9
 +
| colspan=5 |
 +
 
 +
===== Jacobian & Differential Drive Kinematics =====
 +
|-
 +
| 26 Nov. (M)
 +
| Jacobians, Differential Drive Kinematics
 +
| MLS Chapter 3, Section 4, pages 115- 121 <br> [[Media:DifferentialDriveKinematics.pdf | Kinematics of a Differential Drive Vehicle]]
 +
|
 +
| rowspan=3 align=center |  [[Media:CSME133a_Lab2_Instructions.pdf | Lab 2 Instructions]] <br> [http://robotics.caltech.edu/~jbowkett/me133a_lab2.py Lab 2 Modifiable Python Script]
 +
|-
 +
| 28 Nov. (W)
 +
| Differential Drive Kinematics
 +
|
 +
| -N/A-
 +
|-
 +
| 30 Nov. (F)
 +
| Inverse Kinematics
 +
| MLS Chapter 3, pages 97-99
 +
| -N/A-
 +
 
 +
|-
 +
| align=center rowspan=4 | 10
 +
| colspan=5 |
 +
 
 +
===== Inverse Kinematics, Intro to Quadrotors =====
 +
|-
 +
| 3 Dec. (M)
 +
| Inverse Kinematics Continued
 +
| MLS Chapter 3, pages 108-114
 +
|
 +
| rowspan=3 align=center | 
 +
|-
 +
| 5 Dec. (W)
 +
| Intro to Multi-Rotors: dynamics
 +
|
 +
| -N/A-
 +
|-
 +
| 7 Dec. (F)
 +
| Multi-Rotors: basics of control
 
|  
 
|  
 
| -N/A-
 
| -N/A-
  
 
|}
 
|}

Latest revision as of 12:05, 13 March 2019

This is a homepage for ME/CS 133(a) (Introduction to Robotics) for Fall/Winter 2018-19. We will also use the Caltech Moodle" system for submitting homeworks, lab assignments, and final project reports.


Course Staff, Hours, Location

Position Name Office Office Hours (changing weekly) Email Phone
Instructor Joel Burdick 245 Gates-Thomas send mail for an appointment jwb at robotics dot caltech dot edu 626-395-4139
Teach Asst. Amanda Bouman 205 Gates-Thomas TBD me133tas at robotics dot caltech dot edu 626-395-4470
Teach Asst. Anushri Dixit 205 Gates-Thomas TBD me133tas at robotics dot caltech dot edu 626-395-4470
Teach Asst. Andrew Singletary Gates-Thomas TBD me133tas at robotics dot caltech dot edu 626-395-????
Administrative Sonya Lincoln 250 Gates-Thomas 7:30am-noon; 1:00pm-4:30pm lincolns at caltech dot edu 626-395-3385


Lecture Schedule: Monday, Wednesday, Friday, 3:00-3:55 pm, 135 Gates-Thomas

Announcements For ME/CS 133(a,b)

  • 01/18/19: Lab 1b is due on MONDAY. The T.A.s should have emailed to your group the data from your lab scripts.
  • Lab 1b, additional code:
    • Run this file before sending any commands to check your trajectory. Open rviz in another terminal and add the marker from the published topic. The marker will follow the /bebop/cmd_vel commands.
    • In case you are missing your files from Lab 1, they are missing some values or they are corrupted, you can do the analysis on the files in this zip directory. It includes the output file bebop.csv, python script that generated the file, the matlab script to read the output file lab_csv_analysis.m. Run this file to get a comparison between the commanded path, the path bebop though it was doing and the true path from Optitrack
  • 12/07/2018: Please mail a copy of your lab 2 report to Andrew Singletary ( drewsingletary1@gmail.com )
  • 11/30/2018: The Final Project Instructions were distributed in class.

Course Text and References

The main course text for ME/CS 133(a) is:

We will refer to this text as MLS (the initials of the authors' last names). While the course topics will follow the text, additional material will often be presented in class. Additional course handouts covering this material will be posted on this website

A main text for the ME/CS 133(b) is: Planning Algorithms by Steve LaValle (UIUC).

The following two books are recommended (but not required) for ME/CS 133(b):

  • Principles of Robot Motion: Theory, Algorithms, and Implementations, by Howie Choset, Kevin Lynch, Seth Hutchinson, George Kantor, Wolfram Burgard, Lydia Kavraki, and Sebastian Thrun.
  • Probabilistic Robotics, S. Thrun, W. Burgard, D. Fox, MIT Press, 2006.

This first text is available at Amazon in both new and used versions. The probabilistic robotics text has an associated website, and is similarly available on Amazon.

Grading

For ME/CS 133(b), the final grade will be based on a few homework sets, laboratories, and a final project:

  • Homework (20%): Homework sets are due at 5 pm on the due date (which will always coincide with a class meeting). Homeworks can be dropped off in class, or deposited in the box outside of 245 Gates-Thomas. Some homeworks will require computation. MATLAB or Mathematica should be sufficient to solve every homework posed in ME/CS 133(a), though students can choose their favorite programming language. Code is considered part of your solution and should be included in with the problem set when appropriate. ME/CS 133(b) will require a bit more knowledge of coding in C++ or python.
  • Laboratory (40%): Lab reports are due at 5 pm on the due date (which will usually coincide with a class meeting). Labs can be dropped off in class, or deposited in the box outside of 245 Gates-Thomas. The first labs will familiarize students with the class robots. Subsequent labs will focus on how to translate the lecture material to the lab robots, and will often involve the use of software systems such as ROS and OOMPL.
  • Final project (40%): The final project must incorporate some aspect of the course, and the topic and scope my be approved by the course instructor. The final exam will due at 5:00 pm the last day of finals. The final project is similarly due at 5:00 pm on the last day of finals.
  • Late Homework Policy: Students may automatically take a 2-day extension on two homeworks or labs during each quarter.

Collaboration Policy

Collaboration on homework assignments is encouraged. You may consult outside reference materials, other students, the TA, or the instructor, but you must cite any use of material from outside references. All solutions that are handed in should be written up individually and should reflect your own understanding of the subject matter. Computer code and graphical plots are considered part of your homework solution, and therefore should be done individually (you can share ideas, but not code).

Laboratory assignments will be performed in small teams. Collaboration on laboratory assignments is different. Each team need only submit one laboratory report.

Course Lecture Schedule for ME/CS 133(b)

Week Date Topic Reading Optional Reading Homework
1
Review of Quadcopters, Intro to Motion Planning
7 Jan. (Mon.) ME 133(b) Class Overview,
Quadcopter Review,
Intro to Motion Planning
Course Overview,
Brief Review of Quadcopter Mechanics/Control
-Lab 1b -
Python Template
9 Jan. (W) Motion Planning Intro (continued) Lavalle, Chapter 1
11 Jan. (F) Motion Planning problems, and c-space intro
2
Intro to Motion Planning
14 Jan. (Mon.) Configuration Space Obstacles Lavalle Chapter 3.1, Visualization of C-obstacles Wolfram 2R c-obstacle demo - N/A-
16 Jan. (W) Motion Planning Intro & Road Maps Lavalle Chapter 3.1 on c-obstacles
17 Jan. (F) Road Maps Continued Lavalle Chapter 6.1, 6.2
3
RoadMap Motion Planning Methods
21 Jan. (Mon.) No Class, Institute MLK Holiday Homework #1b
23 Jan. (W) Generalized Voronoi Graphs Lavalle Chapters 6.1 and 6.2 on Roadmaps
25 Jan. (F) Intro to Sample-Based Planners
4
Sample-Based Planners, Cellular Decomposition
28 Jan. (Mon.) No Class, Burdick sick -N/A-
30 Jan. (W) Random Dense Trees Lavalle Chapter 5
1 Feb. (F) Cellular Decomposition Lavalle Chapt. 6.3
5
Inertial Navigation, Odometry
4 Feb. (Mon.) Inertial Navigation Notes on the Kinematics of Inertial Navigation Lab 2 Instructions
(Due Feb. 20, 2019)
6 Feb. (W) Inertia Navigation continued
8 Feb. (F) Visual Odometry Laser Scan Matching by Lu and Milsios
6
Intro to Estimation/SLAM
11 Feb. (Mon.) Scan Matching Final Project Guidelines
13 Feb. (W) Probability Review
Intro to Occupancy Grid Mapping
15 Feb. (F) Kalman Filter Intro
7
Sensor-Based Motion Planning Continued
18 Feb. (Mon.) No Class: President's Day Institute Holiday -N/A-
20 Feb. (W)
22 Feb. (F) Kalman Filter Derivation Completed


8
Sensor-Based Motion Planning Continued
25 Feb. (Mon.) SLAM Wrap-Up Pre-lab #3
Velodyne Bag File

Lab 3

27 Feb. (W) Sensor-Based Planning, Bug I Choset Slides on Bug Algorithms
Lavalle 667-673
Lumelsky Bug Algorithm Paper
1 Mar. (F) Bug II and Tangent Bug


9
Sensor-Based Motion Planning Continued
4 Mar. (Mon.) Tangent Bug Lavalle 670-671 Lab #3 Post-Lab data:
Bag File of Data from the Flipper Rover;
CSV file of OptiTrack Data
6 Mar. (W) Graph Searching, A* search, Intro to D* Lavalle 27-39,
Lavalle Section 12.3.2 (starting P. 662)
Analysis of the A* algorithm;
Brief Description of A* algorithm
The original D* algorithm,
D*-lite paper
8 Mar. (F) D* continued Slides on D*
10
Sensor-Based Motion Planning Continued
11 Mar. (Mon.) More D* Lab #3 Due date changed
to Friday, March 15
13 Mar. (W) Sensor Based Motion Planning via Policies

Course Lecture Schedule for ME/CS 133(a)

Week Date Topic Reading Optional Reading Homework
1
Introduction and Review of Rigid Body Kinematics
1 Oct. (Mon.) Class Overview Course Overview,
Chapter 1 of MLS,
Introduction to the DARPA Subterranean Challenge
History of Kinematics Through 1900 (Introductory chapter from Kinematic Synthesis of Linkages) -No Homework-
3 Oct. (W) Planar Rigid Body Kinematics,
Planar displacements
MLS Ch 2.1, Pages 19-23 Wikipedia Page on the Peaucellier Mechanism
5 Oct. (F) Planar Rigid Body Displacements (continued),
Displacement groups
MLS Ch 2.1,

Change of Reference in Planar Displacements (PowerPoint)

-N/A-
2
From Planar Rigid Body Kinematics to Spherical Kinematics
08 Oct. (M) poles, Centrodes, elliptic Trammel
Notes on the Elliptical Trammel Archemides Trammel (Wikipedia)
Trammel, V 1, V 2, compliation,
Linkages Synthesized Using Cardan Motion Along Radial Lines
Homework 1,
(Due Wed. Oct. 17)
Solution 1
10 Oct. (W) Intro to Spherical Kinematics MLS Pages 22-26,
Notes on the Classical Matrix Groups
-N/A-
12 Oct. (F) Spherical Kinematics (continued),
Classical Matrix Groups
MLS Ch 2.2, 2.3,
Notes on Rotations
Herman Weyl's book on the classical groups
3
Spherical Kinematics
15 Oct. (M) Cayley's Theorem, Euler's Theorem MLS 27-31 Wikipedia Page on Cayley Transform Homework 2
(Due Oct. 26)
Solution #2
17 Oct. (W) Angle-Axis Representation, Rodriguez Formula, Matrix Exponential, -N/A-
19 Oct. (F) Euler Angles MLS 31-34 -N/A-
4
Spherical Kinematics
22 Oct. (M) Quaternions MLS 33-34 Notes On Algebras -N/A-
24 Oct. (W) Quaternion Wrap-Up,
Intro to Spatial Kinematics,
Homogeneous Coordinates,
MLS 34-39 -N/A-
26 Oct. (F) Spatial Exponential Coordinates,
Intro to screws
MLS 39-45
MLS 45-50
-N/A-


5
Spatial Kinematics and Velocities
29 Oct. (M) Motion Capture Using Rodriguez' Displacement Equation,
Quaternion-Based Displacement Estimation
MLS 51-56
Horn paper on Quaternion-Based Displacement Estimation Lab 1
Zip File with lab1 data and MATLAB scripts
31 Oct. (W) Rigid Body Velocities
MLS 57-64 -N/A-
2 Nov. (F) Rigid Body Velocities and Coordinate Transformations MLS 51-56 -N/A-
6
Multi-Body Kinematics
5 Nov. (M) Wrenches MLS Chapter 2, Sections 5.1 and 5.2
7 Nov. (W) Joints -N/A-
10 NOV. (F) Multi-Body Kinematics MLS Chapter 3, Sections 1 and 2 -N/A-
7
ROS Tutorials
12 Nov. (M) ROS Tutorial ROS Tutorial Python script for ROS Tutorial
14 Nov. (W) In-class tutorial on Running ROS -N/A-
16 NOV. (F) NO CLASS -N/A-
8
Forward Kinematics
19 Nov. (M) Denavit-Hartenberg Convention Scan of Craig Book on D-H Parameters
21 Nov. (W) More Forward Kinematics, Jacobians -N/A-
23 NOV. (F) NO CLASS, Thanksgiving Holiday -N/A-
9
Jacobian & Differential Drive Kinematics
26 Nov. (M) Jacobians, Differential Drive Kinematics MLS Chapter 3, Section 4, pages 115- 121
Kinematics of a Differential Drive Vehicle
Lab 2 Instructions
Lab 2 Modifiable Python Script
28 Nov. (W) Differential Drive Kinematics -N/A-
30 Nov. (F) Inverse Kinematics MLS Chapter 3, pages 97-99 -N/A-
10
Inverse Kinematics, Intro to Quadrotors
3 Dec. (M) Inverse Kinematics Continued MLS Chapter 3, pages 108-114
5 Dec. (W) Intro to Multi-Rotors: dynamics -N/A-
7 Dec. (F) Multi-Rotors: basics of control -N/A-