CSE 481C: ROBOTICS CAPSTONE

SPRING 2022

COURSE INFO

Quarter: Spring, 2022

Class times:

  • Lecture: Tuesdays 11:30-12:50

  • Lab section A: Thursdays 10:00-11:50

  • Lab section B: Thursdays 1:00-2:50

Location: Lectures and labs: CSE2 130 a.k.a. "capstone room"

Webpage: www.cs.washington.edu/cse481c

Canvas: https://canvas.uw.edu/courses/1545386

Github: https://github.com/robotic-picker-sp22/fetch-picker

TEACHING STAFF

Maya Cakmak, Instructor

  • e-mail: mcakmak@cs | github: @mayacakmak | office: CSE2 236

  • Office hours: Tuesdays 12-1pm, get an appointment from this calendar

Vinitha Ranganeni, Teaching Assistant

  • e-mail: vinitha@cs | github: @vinitha910 | office: CSE2 Robotics Lab, G060B

  • Office hours: Mondays 3-3:30pm in CSE2 130

COURSE OBJECTIVES

The main goal of this course is to open up new career options in robotics for computer science and engineering students. To that end, the course will teach you the basics of robotics and give you implementation experience. You will learn to use libraries and tools within the most popular robot programming framework ROS (Robot Operating System). We will touch on robot motion, navigation, perception, planning, and interaction through mini-lectures, labs, and assignments, eventually integrating these components to create autonomous or semi-autonomous robotic functionalities. The project will give you team-work 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.

Find out more about general capstone objectives here.

Links to webpages of previous offerings of the robotics capstone: Spring 2020 (virtual), Winter 2019, Winter 2018, Spring 2017, Spring 2016, Autumn 2014, Autumn 2013

PROJECT: THE ROBOTIC PICKER

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 CoMotion Makerspace 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 do projects in teams. The number of teams and persons per team will be determined based on total number of registered students. 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.

LOGISTICS & RULES

Please keep in mind:

  • Collaboration:

    • Our main collaboration platform will be GitHub. If you do not yet have an account please create one.

    • One member from your team should create a repository for the class project and add the others as collaborators.

    • Collaboration across teams should be limited to exchange of ideas. Let's make sure each team has the opportunity to learn from implementing components of the project on their own.

    • 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 Monday at 5pm. The teaching staff will review and grade it immediately after this deadline.

    • One member from each 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 on Tuesdays for lectures and discussions. The rest of the time will be used for team meetings, team check-ins with the instructor and TA, and getting started on the weekly labs. The section time on Thursdays 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.

  • Sharing the robot: Four teams will need to share one robot! To make this as smooth as possible please reserve time on the robot google calendar in blocks of at most 1h30m. We recommend that you use the robot simulator to test and debug your work before trying things on the physical robot.

  • E-mails: When you email the instructor and/or the TA, please remember to include the word "CSE481" 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 in teams. Please make sure that the lead programmer role rotates among team members, no matter how slow you type or how little experience you have.

GRADING

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.