Autonomous Robotics slides |

Syllabus for Cosi119a
InstructorsPito Salas
ClassroomAbelson-Bass: 131
Prerequisites Cosi21a and one programming intensive 100 level Cosi course, or permission of instructor
Lecture Tue + Thu: 3:55 PM - 5:15 PM
Lab 1 Fri: 9:00 AM - 11:00 AM
Lab 2 Fri: 2:20 PM - 4:20 PM
ExpectationsSuccessÍ in this 4 credit hour course is based on the expectation that students will invest a total of 12-15 hours every week on course work and meetings.
Email contact rpsalas@brandeis.edu
Reserve time with Pito http://www.calendly.com/pitosalas/chat

Syllabus

Welcome from Professor Salas

Welcome to Cosi119a - Autonomous Robotics. Robots are everywhere these daysm and they impact life in almost every dimension, professional and personal, local, national and global. As a Computer Scientist, it is so important to have understanding of how robots can be designed and built to do all the different things that they do. What is especially fun and challenging with robotics is that spans many Computer Science sub-disciplines and also some adjacent fields. It is hard to define or reach consensus on where the boundaries are, does it include AI? Does it include Computer Vision?

As in all my classes, I am trying to share with you not just the theory but what you will need to apply the theory in the real world. I am unabashed in wanting to prepare you for a future career in computation - broadly defined. Most of you are here not because you want to work in Robotics, but because you want a challenging advanced course in computation. Whatever you end up in the rich field of computing, I am confident that your experience in this course add to your toolkit and your success.

Learning Objectives

This course is a pragmatic introduction to autonomous robotics. Our goal is to introduce students to the “big questions” that need to be answered in order to build autonomous robots. Questions such as “How do I know where I am?” and “How do I decide what to do?” We will take a software engineering approach, always focusing on how to turn the concepts into actual robot behaviors in the real world.

Skills

The skills that I hope you acquire by the end of the course.

Skills
ROS App: Basic structure of a ros app, ROSCore and Nodes
launch and run: Launch files, bringing up robots, running with simulation
Motion: Control motion with cmd_vel
Pubsub: publish and subscribe
tf: Coordinates, tfs, orientation
sensing: sensing with lidar and odom
pid: PID as key control algorithm
calc: Algorithms, calculations and state management
maps: Slam and Maps for path planning
localize: Using AMCL for localization
concurrent: highly concurrent programming
cv: images, cameras and opencv
lines: Basic opencv for line detection
Fiducials: Fiducials for localizaton
Debug: Finish, debug, and get an app to work

Grading overview

The final grade in this course will reflect my assessment of your performance in the course. This includes your participation; your mastery of the key learning objectives; your demonstration this both in written form and in code (if applicable); your application of what you’ve learned to working on a team; building an interesting product; and communicating what you achieved at the end of the semester.

Individual assignments are scored and weighted (see below), and used to determine class rank which in turn is used to determine your grade. Note that you will not get a numeric “final score”, just a final grade. I will follow the guidelines from the University Bulletin:

  • A -> High Distinction
  • B -> Distinction
  • C -> Satisfactory
  • D -> Passing, but Unsatisfactory

Grading

Grading will be based on the following. This may be adjusted as the class progresses.

  • Participation: These are some of the expectations
    • In person attendance is mandatory for both the lab and the lectures, having done the readingslisted on the course web page for the day.
    • There will be a small number of homeworks graded pass/fail.
    • The class and lab are run informally with an expectation that students create a positive, helpful, caring environment for their classmates
    • Participation will be assessed by the instructor’s and teaching assistants based on the expectations above.
    • About 20%
  • Programming Assignments: During the semester there will several programming assignments. Each assignment will excercise multiple “skills” and they will be scored pass/fail on each of the skills. Your assessment for PAs will be based on which skills you demonstrate mastery in.
    • About 40%
  • Final exam, Midterm, Term Project: There will be both a midterm and a final exam. They will be in class, closed book, and online. Based on the makeup and mood of the class there might be an option for a term project instead of one or the other.
    • About 40%

Change Policy

The instructor reserves the right to make changes to this syllabus and the associated curriculum web site if he deems it necessary. Any changes will either be announced in class or through e-mail. All students are responsible for finding out about such changes. Each student must be aware that not all assignments are listed in the syllabus. Students must use their common sense and not look for loopholes in the syllabus because, ultimately, the instructor has the final say in all matters. If you are confused on any assignment, ask the instructor for clarification.

By deciding to stay in this course, you are agreeing to all parts of this syllabus. In fairness to everyone, the syllabus must apply equally to all students without exception.

Lab Use Rules and Policies

You will be making extensive use of the robotics lab. It has a combination lock so initially it will only be accessibgle with a Teaching Asssitant. The reason for this is that the lab has a lot of delicate gear, expensive tools, and dangerous batteries (yes!) I will strive to loosen thos limitations as soon as I can.

Here are the Lab Rules. I will review them to make sure eveyone understands them and commits to live by those rules.

I want you to remember that it is your own responsibility to get lab time, either by using the published TA Office Hours, or by requesting time in the lab from one of us. We will do our best to accomodate you. You need to specifically and proactively arrange the time. “I couldn’t get lab time” will not be an acceptable or appropriate explanation for requested extension or a regrade on your final project. Absolutely not.

In the last month of the semster, there is very little homework. That is to allow you to use the 10-15 hours per student per week on your projects. Expectations given this much time and multiple teammates are high. I know it’s hard to work independently when I don’t give you specific small deliverables. But that’s the real world. You have to motivate yourself and your teammates to invest the time to get the result. You will be graded accordingly.

Course Materials

Programming Robots with ROS. This is an excellent book that introduces ROS from the bottom up. You should get a copy. Beware, ROS is pretty complicated. We will be using this book as the primary textbook.

Note

Take advantate of our supplements!!!

As you read the book, follow along these supplements for clarifications and corrections. ROS has evolved since the book was written and the examples printed don’t work as expected.

Prerequisites

Students have to have completed Cosi 21a plus one programming intensive 100 level course, or receive permission from the instructor.

Academic Integrity

Every member of the University community is expected to maintain the highest standards of academic integrity. A student shall not submit work that is falsified or is not the result of the student’s own effort.

Infringement of academic honesty by a student subjects that student to serious penalties, which may include failure on the assignment, failure in the course, suspension from the University or other sanctions (see section 20 of R&R). Please consult Brandeis University Rights and Responsibilities for all policies and procedures related to academic integrity.

You are expected to be familiar with, and to follow, the University’s policies on academic integrity. You are expected to be honest in all of your academic work. Please consult Brandeis University Rights and Responsibilities for all policies and procedures related to academic integrity. Allegations of alleged academic dishonesty will be forwarded to Student Rights and Community Standards. Sanctions for academic dishonesty can include failing grades and/or suspension from the university.

A student who is in doubt regarding standards of academic honesty as they apply to a specific course or assignment should consult the faculty member responsible for that course or assignment before submitting the work. Allegations of alleged academic dishonesty will be forwarded to the Department of Student Rights and Community Standards.

Artificial Intelligence Tools

note:AI Tools include any AI tools but especially so called Large Language Model Chat tools like ChatGpt and others.

I believe that AI Tools tools have become essential part of the toolkit for any Robotics Engineer (and any Developer, Software Engineer or Computer Scientist) In fact I will go as far as to say that without developing skills using the tools you are working with one hand tied behind your back and putting yourself at an unacceptable competitive disadvantage. This is no different than using Google or Youtube and similar.

But like using google and youtube, there is no substitute for understanding your own code. Especially in robotics. If you copy code (from google, ai tools or anywhere else) it won’t just work. Code generated by AI tools has bugs, use obsolete APIs, use language features from the wrong language and more. You just need to understand it. There is no substitute.

Here is how to use these tools in a way that are acceptable and don’t violate academic integrity.

  • What’s OK: To use AI Tools as reminders for APIs, Python Syntax, Shell commands, ask what an error message means, and even to generate a code snippet so you can see how it works or how to do something.
  • What’s not OK: To submit as homework or a programming assigment, anything that was written by you, that you don’t understand, that was taken verbatim from an AI Tools output (or any other place.) Use common sense, but as a guideline, no whole functions, classes, or snippets greater than a few lines shall be submitted.

It’s always better to ask a TA if you’re not certain!

Participation

Attendance is required for in-person classes such as this one. We monitor it and regular unexcused absences will definitely affect your grade.

However if you have a reason why you cannot participate in person, you are welcome to ask to be excused. We will listen to all reasonable requests.

Please email your lead TA to ask for an excused absence.

Class Modality

Formally. this class is in-person. This means that it is open only to students living on, or commuting to, campus. There are two lectures per week that require in person attendance, as always. Unless officially excused you are required to be present in person.

However, classes will be recorded and live streamed. For students to watch a live stream of an Echo360 recording, they would simply click on the Echo360 link during the time the class is live and they can view live instead of having to wait until the recording is available. All homeworks will be assigned online. You are responsible for all the assigned homework, from the first day of class, whether you are in-class or not, unless excused.

All that said, I will make every reasonable effort to assist and accommodate whatever comes up and whatever request you may have.

Accomodations

Brandeis seeks to create a learning environment that is welcoming and inclusive of all students, and I want to support you in your learning. If you think you may require disability accommodations, you will need to work with Student Accessibility Support (SAS). You can contact them at 781-736-3470, email them at access@brandeis.edu, or visit the Student Accessibility Support home page. You can find helpful student FAQs and other resources on the SAS website, including guidance on how to know whether you might be eligible for support from SAS.

If you already have an accommodation letter from SAS, please provide me with a copy as soon as you can so that I can ensure effective implementation of accommodations for this class. In order to coordinate exam accommodations, ideally you should provide the accommodation letter at least 48 hours before an exam.