Quarter: Spring, 2022
Class times:
Lecture: Wednesdays 10:00-12:00
Lab: Wednesdays 1:00-3:00
Location:
Lectures: GIX 240
Labs: GIX Robotics Lab
Webpage: https://sites.google.com/cs.washington.edu/techin517sp22/home
Canvas: https://canvas.uw.edu/courses/1553617
Github: https://github.com/robotic-picker-sp22/fetch-picker/wiki
Prof. Maya Cakmak, Instructor
E-mail: mcakmak@cs.washington.edu | Github: @mayacakmak
Office: UW Seattle Campus, Bill & Melinda Gates Center, CSE2 236
Office hours: Tuesdays 1-2pm, get an appointment from this calendar
Zhitao Yu, Teaching Assistant
E-mail: zhitaoyu@uw.edu | Github: @ironmanyu | Office: UW Seattle Campus, Mechanical Engineering Building, MEB 107
Office hours: Wednesday 3-4 pm, Friday 3-4 pm | Location: Wednesday in GIX, Friday on zoom or GIX by appointment.
Bob Nesse, Prototyping Lab Coordinator
E-mail: robert.h.nesse@gmail.com
Prof. John Raiti, Advisor
E-mail: jraiti@uw.edu
The main goal of this course is to open up new career options in robotics for GIX students. The course follows on TECHIN 516 - Robotics Lab I where you learned and practiced basics of robotics and gained some implementation experience. In Robotics Lab II you will revise topics in robot motion, navigation, perception, planning, and interaction and learn to use libraries and tools within the robot programming framework ROS (Robot Operating System) for each of them through mini-lectures, labs, and assignments. You will eventually integrate these components to create autonomous or semi-autonomous robotic functionalities. The project will give you hands-on experience with large scale software integration and it will get you thinking about opportunities for using robots to address societal challenges. At the end of the quarter students are expected to be able to:
Explain basics of robot navigation, perception, planning, interaction;
Enumerate challenging problems in robotics;
Use important tools in ROS, contribute to ROS, find available packages in ROS;
Operate a robot platform using ROS tools;
Articulate the importance of interface design and robustness of functionalities in robotics.
This course is inspired by and based on materials from previous offerings of the UW Allen School robotics capstone: Winter 2019, Winter 2018, Spring 2017.
The steady rise of e-commerce in the past two decades, further fueled by the pandemic, has created the massive-scale logistical challenge of fulfillment. E-commerce giants, like Amazon, are looking to automate as much of the fulfillment process as possible to meet the demands. In 2012 Amazon acquired Kiva systems, to build a dynamic warehouse with moving shelves to increase efficiency. They have since continued efforts to automate picking and stowing, packing, moving boxes around the warehouse, and even delivery, with autonomous sidewalk robots and drones. Here is a video that gives an overview of some of the robotics and AI efforts at Amazon.
Despite great progress one key part of the process, picking items off the shelf, remains manual. Further, this task is undesirable for humans given how repetitive it can be and how it involves ergonomically challenging actions like bending down or stretching up, as described in the video.
This task is particularly challenging given the diversity of items that need to be picked and the need to pack them densely into the shelves for efficient use of the warehouse space. A universal robotic solution does not currently exist for picking any item from any configuration in the environment, even if it is physically possible. Roboticists have nonetheless made great strides in addressing some versions of this problem after decades of research. In 2015 Amazon launched the Picking Challenge, a competition to design robotics hardware and software to pick common items off of warehouse shelves. The challenge was repeated in 2016 and 2017 with some updates, as teams made progress in successfully completing the picking task with increasingly complex items. Here are some videos describing these efforts.
Your projects in the robotics capstone this year will address the problem framed in the Amazon picking challenge. You will use the Fetch mobile manipulator to approach a shelf with densely packed items, identify a particular bin of the shelf in which the item is expected to be, detect the item in the bin, extract the item from the bin, and finally deliver the item into a box. You will program the robot to do:
perception: processing its sensor data to extract information about the world
navigation: using its mobile base to move to target locations based on its perception
manipulation: using its arm to grasp and remove an object from the shelf based on its perception
collaboration: communicating with a remote user ask for help when perception, navigation, or manipulation fails.
In addition to programming the robot, you might also physically augment the robot platform (e.g., design a gripper attachment or tool) or structuring the robot's environment (make modifications to the shelves or the floor) to enable functionalities that might not be possible in environments that are designed for humans.
What resources are available to you? Each team will have an Ubuntu desktop. We will have one Fetch mobile manipulator robot for teams to share. You can request also request (1) an Android tablet and/or a mobile smartphone that can be attached to the robot or used for controlling the robot, (2) Arduino or Raspberry Pi kits, (3) servo motors, LEDs, or other actuators, (4) additional sensors or peripherals for the robot, (5) special controllers or wearables, (6) furniture related to the robot's functionality. You will have access to the amazing GIX prototyping equipment for 3D printing, laser cutting, and other tools; you can request fabrication materials.
We will mainly support software development within ROS but you will get the opportunity to learn or practice web, Android, or embedded programming if you wish to do so.
You will complete this project as a team. The team structure is flexible, but we recommend an even distribution of the following roles among team members:
ROS guru: Understands the nitty gritty details of ROS (e.g. what's the difference between a topic and a message?) and knows how to use different ROS tools.
Perception guru: Understands sensor data and can write software for processing it.
Hardware guru: Understand the hardware, is not afraid of using a screw-driver or a 3D printer.
Design and fabrication guru: Makes sketches of ideas, knows 2D and 3D computer-aided design tools, knows how to operate the laser cutter and 3D printer.
User interface guru: Understands human factors and usability, makes things look good.
Manager: Makes sure every team member is on the same page at all times. Help make decisions (layout pros and cons). Enforce "interface agreements" so components can be easily integrated.
Documentation and communications: Makes videos, takes notes, writes blog posts, gives presentations and acts as spokesperson.
Please keep in mind:
Collaboration:
Our main collaboration platform will be GitHub. If you do not yet have an account please create one.
Our TA will create a repository for the class project and add everyone as collaborators.
You can use the Github wiki for internal documentation.
Assignments:
You will post a weekly update every week on your team webpage.
Each week we will give you a list of things we would like to see in the update and tell you how the materials in the update will be reviewed and graded, here.
Your updates are due on the following Tuesday at 5pm. The teaching staff will review and grade it immediately after this deadline or the following morning.
One member of the team should submit a link to the update on Canvas by this deadline.
There is no penalty for late submissions. Late posts will be reviewed the following week. Hence, the natural consequence of late submissions is that you might fall behind on the project and not complete by the end of the quarter, or not receive feedback on components of your project before you need to build upon it.
Lecture versus lab: We will use some of our class time in the morning session for lectures and discussions. The rest of the time will be used for team check-ins with the instructor, and getting started on the weekly labs. The afternoon session time will be used for labs and consulting with the instructor and TA about your labs and weekly assignments.
Office hours: See above (under Teaching Staff) for office hour times and appointment link. You can use office hours with the instructor to discuss feedback about weekly assignments, consult about your individual learning and growth in robotics, or to address team challenges. You can use office hours with the TA to consult about any problems you are having related to the weekly labs.
Robotics news of the day: At the beginning of Tuesday lectures at least one person will give a two-minute presentation of a robotics-related news or fun-fact. You can volunteer for this by sending the instructors a link to a news and a 1 or 2 sentence blurb about the link, which will be posted on the course blog.
E-mails: When you email the instructor and/or the TA, please remember to include the word "TECHIN517" in your subject line.
Discussions: Please use Canvas discussion boards for questions that might be relevant for the rest of the class.
Sharing the driver's seat: All labs and assignments will be done as a team. Please make sure that the lead programmer role rotates among team members, no matter how slow you type or how little experience you have.
The distribution of your grades will be as follows:
60% Weekly assignments (including labs)
20% Final project demo and video
20% Participation and teamwork
Grades will be available on Canvas.