Class announcements, discussions, assignments, and due dates will be posted on Canvas.
This is an exciting time to be a roboticist. Robots continue to get smaller, faster, and cheaper. Robots today are packed with sophisticated computing, communication, and sensing resources. It is becoming increasingly important to develop efficient motion planning algorithms that makes full use of the robot's capabilities. In this course, we will discuss the state-of-the-art algorithms that aim to do just that.
The course will be a mix of theoretical and applied subject matter where the students will learn the fundamental planning concepts and apply them through programming assignments and class projects. We will cover discrete and sample-based, higher-level planning algorithms for mobile (ground and aerial) robots operating in 3D space. The course will also focus on perception issues in the context of planning.
We will have (almost) weekly assignments, a semester-long group project, and an individual term paper. The assignments will be a mix of writing and implementation exercises. We will extensively use ROS for the implementions in simulation and on actual robots. You should be familiar with programming in either Python or C/C++ and comfortable with Linux.
ECE 4984 and ECE 5984 are two courses that will be co-located. This means that the lectures will be exactly the same. The course materials will be the same. The assessment, however, will be different. The learning objectives for 4984 differ from that of 5984. The reason why 5984 is called Advanced is administrative. If you are an undergrad, you should register for 4984. If you are a grad student, you should register for 5984.
Planning Algorithms by Steve LaValle. The book is available online for free. I recommend using the online version. I will provide other notes/references during the course.
A tentative schedule is here. This will likely evolve during the semester.
Details will posted on canvas. The assignments will be a mix of theory questions, and programming/implementation problems.
If you are registering for ECE 4984, then ECE 3574 is a pre-requisite. If you are registering for ECE 5984, then graduate standing is required. Please contact the instructor if you have any questions regarding this.
We will be using ROS for some assignments. You should be comfortable in programming in either Python or C/C++ as well as using Linux.
You are encouraged to discuss the course materials with the instructor and other students in the class. However, any work that you submit (including but not limited to homeworks, paper reviews, project reports) must be your own. Give proper citations if you use any code or data from anyone else.
The Undergraduate Honor Code pledge that each member of the university community agrees to abide by states: “As a Hokie, I will conduct myself with honor and integrity at all times. I will not lie, cheat, or steal, nor will I accept the actions of those who do.”
Students enrolled in this course are responsible for abiding by the Honor Code. A student who has doubts about how the Honor Code applies to any assignment is responsible for obtaining specific guidance from the course instructor before submitting the assignment for evaluation. Ignorance of the rules does not exclude any member of the University community from the requirements and expectations of the Honor Code. For additional information about the Honor Code, please visit: www.honorsystem.vt.edu.
The tenets of the Virginia Tech Graduate Honor Code will be strictly enforced in this course, and all assignments shall be subject to the stipulations of the Graduate Honor Code. For more information on the Graduate Honor Code, please refer to the GHS Constitution at this URL.
Any student who feels that he or she may need an accommodation because of a disability (learning disability, attention deficit disorder, psychological, physical, etc.), please make an appointment to see me during office hours.