CSE 481C: ROBOTICS CAPSTONE
SPRING 2023
COURSE INFO
Quarter: Spring, 2023
Class times:
Lecture: Thursdays 11:30-12:50
Lab section: Tuesdays 11:30-12:50
Location: Lectures and labs: CSE2 (Gates Center) 130 a.k.a. "capstone room"
Webpage: www.cs.washington.edu/cse481c
Ed board: edstem.org/us/courses/38401/
Canvas: canvas.uw.edu/courses/1632191
Github: TBA
TEACHING STAFF
Maya Cakmak, Instructor
e-mail: mcakmak@cs | github: @mayacakmak | office: CSE2 236
Office hours: Get an appointment from this calendar
Vinitha Ranganeni, Teaching Assistant
e-mail: vinitha@cs | github: @vinitha910 | office: CSE2 Robotics Lab, G060B
Office hours: TBD
Noah Ponto, Teaching Assistant
e-mail: ponton@cs | github: @TBA | office: CSE2 Robotics Lab, G060B
Office hours: TBD
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:
Identify real world problems where robots are the right solution
Use important tools in ROS, contribute to ROS, find available packages in ROS
Describe the basics of robot perception, navigation, manipulation, and planning; appropriately use related ROS libraries to solve real problems
Develop and integrate complex robot software
Safely operate robot hardware
Articulate the importance of interface design and robustness of functionalities in robotics.
Find out more about general capstone objectives here.
PROJECT THEME: ASSISTIVE ROBOT CAREGIVERS
Robots that can assist people in everyday tasks and challenges can bring independence to people with disabilities, enable aging in place, and more generally improve the quality of our lives. In this capstone you will develop an assistive robot that helps address challenges faced by a disadvantaged user group, such as:
older adults or persons with age-related disabilities,
persons with sensory or motor impairments (e.g. hearing, vision, mobility, use of limbs),
persons with chronic health conditions (e.g. asthma, diabetes).
Depending on the nature of the challenge being addressed, the assistance provided by the robot can fall into different categories:
Physical/sensory assistance: the robot can navigate the environment, and physically manipulate and transport objects. The robot can also gather information from the environment leveraging its mobility. For example, Henry Evans (quadriplegic as a result of a stroke) worked with a team from Georgia Tech to program a PR2 robot to perform tasks like shaving and a team from Brown University to use a drone for surveillance of his grape vines.
Social/cognitive/emotional assistance: the robot can act as a social agent to facilitate and support cognitive/emotional tasks. For example a team from the University of Southern California used a social robot to support stroke survivors in doing rehabilitation exercises.
Your projects will primarily focus on physical assistance taking advantage of robots as a unique solution, but it can include social assistance features. Our robot platform for the class is the Stretch 2 mobile manipulator. In addition to programming and possibly physically augmenting the robot platform, your projects will likely involve structuring the robot's environment to enable functionalities that might not be possible in environments that are designed for humans.
Besides solving technical problems for your project, you will work on identifying needs or pain points of your chosen user group, evaluating usability of your solution, and ensuring its potential viability.
The progression of the projects will follow roughly these milestones:
Week 1: Identify possible target populations and challenges to work on
Week 2: Form teams, choose target population, refine challenges/tasks, perform a literature review of related work
Week 3: Interact with stakeholders to better understand their needs
Week 4: Teleoperate the robot to perform the tasks, assess feasibility, refine solution; create a high-level design for your system (e.g., block diagram)
Week 5: Define evaluation methods, make a plan with a timeline and milestones, present project proposal
Week 6: Start implementation of your system
Week 7: Complete initial implementation of your system
Week 8: Get feedback about your system from stakeholders
Week 9: Refine your implementation, evaluate your implementation, revisit the literature given what you’ve learned
Week 10: Write a report and create a short video to communicate your results
What resources are available to you? Each team will have an Ubuntu desktop. We will have a Stretch 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 Allen School 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.
User research lead: Recruits users, maintains communication with user, schedules interactions with users, prepares materials for user interactions, leads for user interaction sessions, analyses data from users.
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.
GRADING
The distribution of your grades will be as follows:
45% Weekly assignments
20% Project proposal and report
15% Final project video, demo, and Q&A
20% Participation and teamwork
Grades will be available on Canvas.
ASSIGNMENTS & LATE POLICY
Your weekly assignment involves posting an update 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 Wednesday at 11:59pm. The teaching staff will start reviewing and grading it on the next day. 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.
COMMUNICATION
Day-to-day announcements about this class will be sent through Ed Discussion boards. Please check your Ed settings to ensure you will receive announcements immediately. Students who have questions about the course content or logistics that might be relevant to the rest of the class are encouraged to post their questions on the Ed Discussion boards. Any other questions can be sent to the instructor and TAs via email. Be sure to include the course number ("CSE 481 C") in the subject line when you email.
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.
Lecture versus lab: We will use some of our class time on Thursdays 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 Tuesdays 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 Thursday 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: We have a team-to-robot ratio of 3:1! 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.
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.
SICK POLICY
Students should stay home if they have any symptoms of possible illness, even if mild. We will enable students to complete class work without having to attend class. The instructor might change a lecture to be online if a large number of students cannot attend or if she has any symptoms herself. Read more about COVID-19 safety here (TBA).
ACADEMIC INTEGRITY
We follow the Allen School’s policy for academic integrity and misconduct.
INCLUSION
We welcome students from all backgrounds and adhere to the Allen School’s Inclusiveness Statement. If anything related to the course makes you feel unwelcome in any way, let the instructor know.
We are eager to provide any necessary accommodations.
For disability accommodations, please see the UW resources at http://depts.washington.edu/uwdrs/current-students/accommodations/.
For religious accommodations, please see the UW resources at https://registrar.washington.edu/staffandfaculty/religious-accommodations-policy/.