Instructors | Pito Salas |
Classroom | Abelson-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 |
Expectations | SuccessÍ 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 |
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.
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.
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 |
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:
Grading will be based on the following. This may be adjusted as the class progresses.
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.
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.
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.
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.
Students have to have completed Cosi 21a plus one programming intensive 100 level course, or receive permission from the instructor.
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.
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.
It’s always better to ask a TA if you’re not certain!
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.
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.
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.