COURSE INFOQuarter: Autumn, 2014
Class times: Tuesday & Thursday, 10:30-11:50am
Office hours: Thursday, 2:30-3:30pm
Location: CSE 003-D
|
![]() |
|
| Maya Cakmak, Instructor e-mail: mcakmak@cs github: @mayacakmak office: CSE 542 |
Justin Huang, Teaching Assistant e-mail: jstn@cs github: @jstnhuang office: CSE 014 |
COURSE OBJECTIVES
This course will teach you the basics of robotics and give you implementation experience with a state-of-the-art mobile robot. 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, and planning through mini-lectures, labs and assignments, eventually integrating these components to create 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 make people's lives easier. At the end of the quarter students are expected to:
- Understand basics of robot motion, navigation, perception, planning; have a sense of challenging problems in robotics
- Know how to use important tools in ROS, be able to contribute to ROS, have awareness of available packages in ROS
- Be comfortable operating the Turtlebot, have experience using ROS tools to control the Turtlebot
- Understand the importance of interface design and robustness of functionalities in robotics
Find out more about general capstone objectives here.
PROJECT: THINGS THAT MOVE
The goal of your main project is to find an everyday object that has traditionally been stationary or human powered and make it mobile and autonomous. For example:
- Mobile printer: A printer that comes to you as it is printing the documents you requested.
- Mobile shopping cart: A shopping card that follows you or guides you in the grocery store.
- Mobile vending machine: A vending machine that roams around and tries to sell snacks.
- Mobile decorative plant: A plant that places itself so it gets more sun and more people sees it during the day.
Feel free to use these ideas or find something else; but make sure that your project is feasible using the Turtlebot platform (hardware modifications are welcome). You project should involve formulating and solving a new planning, scheduling or optimization problem (besides perception and navigation components) constrained by your application. Identifying those constraints is part of the project. For example, how should a mobile plant balance between its two goals of being seen by people and absorbing sun? How fast should a mobile plant move?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 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.
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.
- Use the wiki for internal documentation.
- Use the Automatic Page Generator to create a webpage for your project.
- Assignments:
- You will give a weekly update every week in the form of a blog post on your project webpage.
- Each week we will give you a list of things we would like to see in the blog post and tell you how the blog post will be reviewed and graded, here.
- Your blog posts are due on the following Monday at noon. The teaching staff will review and grade blogs immediately after this deadline.
- One member from each team should submit a link to the post on Canvas by this deadline.
- Late posts will be reviewed the following week and will receive 1/2^n of its total grade, where n is the number of weeks that the post is late for.
- Lecture versus lab: We will have mini-lectures (~30min) on Tuesdays and use the rest of our lecture time for labs.
- Robotics news of the day: At the beginning of each lecture time 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 here.
- Sharing robots: We only have 3 robots, so two 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 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 blog posts
20% Final project demo and presentation
20% Participation and teamwork
Grades will be available on Canvas.
