Mech DAMP Blog

SC649 - Embedded Control and Robotics

SC649 - Embedded Control and Robotics

Instructor

Prof. Leena Vachhani

Semester

Autumn 2023-24

Course Difficulty

Prior knowledge of classical control theory is very helpful and is kind of mandatory to get the most out of this course. Prior knowledge of FPGAs and digital electronics is also useful for the first half but it can be easily learnt in the beginning itself. Prior knowledge of using ROS and Turtlebot3 in Gazebo helps a lot really and gives you an edge in scoring well in the course. The assignments and project were done in groups of 2/3 so having competent group members can make your course experience a lot better.

Time commitment needed

Since the course was based on assignments and a final project, most of the commitment was required a few days before the assignment submission / project deadline. Otherwise, there wasn’t much commitment required. If one doesn’t have prior knowledge of ROS, then one might have to spend more time in the initial phase of the second half of the course to get up to speed with using it.

Grading Statistics

Total Grades Given for are 34 AA 9 AB 11 AU 1 BB 4 CC 1 CD 3 DD 2 FR 3

Total 34 Total Grades Given for section M are 8 AA 2 AB 2 BB 1 BC 1 FR 2 Total 8

Attendance Policy

None

Teaching Style

The professor used slides which were quite explanatory. The teaching methodology was also fair and could be understood. The course lectures are now available on CDEEP as well so that is a bonus for those who wish to watch them at a later point in time.

Feedback on Assignments/ Tutorials/ Projects

The first 2 assignments are based on embedded systems and are relatively easy. Assignment 1 is based on implementing counters and PWM on FPGA. Assignment 2 is based on speed control of a DC motor using FPGA and is hardware intensive (prior knowledge from ME 310 lab will help in this assignment). Assignment 3 is based on trajectory tracking of an autonomous bot in ROS which can be done easily once you have sufficient command over ROS (the theory is explained sufficiently well in the class itself). Assignment 4 is based on the state estimation of a bot in MATLAB/Python and was sort of challenging from a programming/implementation perspective since directly implementing the algorithm was slow and techniques were required to make the implementation faster.

Assignments 1 and 2 had rather lenient checking. However, Assignments 3 and 4 had one of the worst checking methods because each point in the assignment report was scrutinized very strictly. Most people wound up getting 5-6 marks only out of 15 for assignments 3 and 4.

The project was based on the implementation of non-linear control for closed-loop steering of unicycle-like robots. This involved reading a research paper and implementing the various algorithms mentioned in ROS. There was a presentation aspect as well in which we had to show our understanding as well as the results obtained using slides and the professor would ask questions related to our work. This can be a great learning experience for those who are interested in doing simulations of robots.

Feedback on Exams (Written Evaluation)

There was no written evaluation :)

Future Tracks

This course can be used as a precursor to taking future ROS based courses like SC 627 (Motion Planning and Coordination of Autonomous Vehicles) since SC 649 is the only course that gives some time towards learning how to use ROS.

Course Importance

This course gives introductory and practical exposure to certain aspects of robotics like motor control, state estimation and non-linear control of differential drive robots. The strong focus on practical and simulation skills makes this course perfect for someone who loves to work on projects rather than quizzes / written evaluations.

Additional Details

Ensure you have at least 100 GB space in your Ubuntu dual boot OS / VM since the FPGA software used is pretty heavy.

Contact Details

Jacob Thomas Sony - 8882903969