CSE599J: Personal Robotics Clinic: Algorithms and Applications
Instructor: Joshua Smith
Meeting place: CSE 503.
Time: WF 10:30-11:50
Announcements
Please visit the Course Calender for further announcement and updates
[4/04]
For Friday, your priorities should be
- Get your Dijkstra implementation working. If you have it working on a laptop, please bring the laptop.If that isn't practical, please bring it on a thumb drive, or email a zip of your code to me. I am hoping we can take a quick look at (at least some of) various implementations.
- Read SrinivasaEtal11-ieee.pdf
- Read the description of Astar
And if you're running into trouble with Dijkstra, or won't have it working, please email me before class.
Finally, Joseph will be presenting A*, and Tim will present the paper on Herb 2.0.
[4/04] There is now a course calendar page for the class. It has links to the readings and lists the presenters.
[4/03]
Andrew Lewis is going to be presenting the Mobile Manipulation article. Ryan Keedy is going to talking about the Dijkstra's Algorithm. Make sure you read the articles before class. (Article can be found in the "Readings" Page)
[3/30] Here are some of the materials you need to prepare for the next class meeting (Weds):
- Mobile manipulation article Everyone read this for Weds, please.
- Dijkstra's algorithm Everyone please read for Weds. If you have or find a better description, feel free to use that instead. The wikipedia article is not bad. This Youtube video is also pretty good.
- Coding: Download and install the simulation environment. Implement a new Planner class (like RRT or Astar).
Basic goal: Make the planner do something simple like print every node ID.
Stretch goal: Then try to print coordinates, and then a list of adjacent nodes.
Super-stretch goal: Our next milestone [not expected to be done by this Weds] is to implement a planner based on Dijkstra's algorithm, so see how far you can go in that direction.
- Resourses and recommended Python tutorials are posted here
Less
More
Course Overview and Details
The Personal Computer allowed ordinary people to use computers for
countless new applications, most of which had not been imagined when
PCs first emerged. Today's Personal Robotics researchers are imagining
and prototyping tomorrow's robotic applications, and the algorithms
that these applications need.
In this "seminar-clinic" course, students will read and present recent
papers on Personal Robotics applications. They will also implement
and present classic robotics algorithms that are relevant to Personal
Robotics. The term "clinic" refers to the hands on software
implementation projects. The goal of the course as a whole is to
stimulate thinking about new Personal Robotics applications, and build
the skills needed to implement them.
Students will be provided with a custom simulation / visualization
environment (written in Python running on Ubuntu Linux, and available
as a pre-configured Virtual Machine) to support their implementation
of path planning algorithms. Other tools and environments (such as
Matlab, C++, or Java) can be used at the student's discretion. In
order to keep the focus on learning the algorithms, rather than on
learning libraries, the course will NOT emphasize existing packages or
libraries (such as ROS).
The algorithms subject matter in the course will adapt to student interests, but will include
- path planning algorithms including A*, RRT (Rapidly Exploring Random Tree) search, and planners based on solving the Laplace equation, and may include
- path smoothing
- arm forward kinematics
- arm inverse kinematics (direct and Jacobian iterative methods)
- arm planning
- collision detection algorithms
- grasping
The course will not focus on vision, learning, or control, topics that
are addressed in other UW courses.
The course will include a final project, which can be chosen by the
student, or suggested by the instructor. The final project will be
similar to the earlier implementation projects, but greater in scope.
In some cases it will be an extension of the earlier projects.
Students will be expected to participate actively. Each student will
- present application papers (twice)
- implement and present an algorithm (twice)
- implement and present a final project
Students will not all implement the same algorithms, to increase the
breadth of topics that the group as a whole explores. The number of
student presentations will be reduced if necessary for scheduling
reasons.