I teach the Robotics Course in the Department of Computing, attended by third years and MSc students. This is a one term course which focuses on mobile robotics, and aims to cover the basic issues in this dynamic field via lectures and a large practical element where students work in groups. For the 2020-2021 academic year we are running the course in fully remote mode, but will follow the "learn by doing" and "build robots and algorithms from scratch" philosophy of the course in its usual hardware form as closely as possible.
We will implement mobile robotics algorithms within the powerful CoppeliaSim robotics simulator, which is available free for educational purposes from Coppelia Robotics and runs on Linux, Windows or MacOS.
The course always finishes with a competition where the groups compete to build and program the robot which can most effectively complete a certain challenge against the clock. See the bottom of this page for pictures and videos from previous years' competitions.
Huge thanks to Stephen James, Tristan Laidlow, Zoe Landgraf, Shikun Liu, Hide Matsuki, Riku Murai, Joe Ortiz, Raluca Scona, Edgar Sucar, Kentaro Wada and Shuaifeng Zhi, who are the current lab assistants, have helped a lot with the development of the practicals, and are another point of contact for any problem.
All lectures will be given live, but will be recorded and uploaded soon after to PANOPTO to watch again.
In the first week of the course only we will have a two hour introductory live lecture on Wednesday. The first practical will be on Friday in the first week.
Most weeks we will have a one hour live lecture at 10am on Wednesday, and three hours of compulsory live practical session from 11am to 12pm on Wednesday, and from 1pm to 3pm on Friday.
The course runs for 7 weeks from week 2 to week 8 of college term. The full plan for lectures and tutorials will be kept up to date below, and I will announce any changes in lectures.
Lecture slides and practical sheets for the course will be available from the links below (the links will come alive gradually throughout term).
Wednesday 10am | Wednesday 11am | Friday 1pm | Friday 2pm | |
Week 1 Jan 20 and 22 |
Lecture 1. Introduction to Robotics |
Lecture continued |
Practical 1. Introduction to CoppeliaSim practical1.ttt |
Practical continued |
Week 2 Jan 27 and 29 |
Lecture 2. Robot Motion |
Practical 2. Accurate Robot Motion (assessed) practical2.ttt practical2_fix.ttt (fixes Windows problem) practical2_fix2.ttt (fixes Windows problem in a better way!) |
Practical continued | Practical continued |
Week 3 Feb 3 and 5 |
Lecture 3. Sensors |
Practical 3. Sensors practical3.ttt |
Practical continued Assessment of Practical 2 |
Practical continued |
Week 4 Feb 10 and 12 |
Lecture 4. Probabilistic Robotics |
Practical 4. Probabilistic Motion (assessed) practical4.ttt |
Practical continued | Practical continued |
Week 5 Feb 17 and 19 |
Lecture 5. Monte Carlo Localisation |
Practical 5. Monte Carlo Localisation (assessed) practical5.ttt |
Practical continued Assessment of Practical 4 |
Practical continued |
Week 6 Feb 24 and 26 |
Lecture 6. Advanced Sensing |
Practical 6. Navigation Challenge practical6.ttt practical6_colours.ttt |
Practical continued Assessment of Practical 5 |
Practical continued |
Week 7 Mar 3 and 5 |
Lecture 7. SLAM |
Lecture Guest Lecture: Dr. Rob Deaves, Dyson, on Robotics in Industry |
Practical Navigation Challenge Competition |
Practical continued |
For practicals, you will work in fixed groups of 2-4 members throughout term. Please organise yourselves into groups, and use this Wiki to record the members of your practical group. You can see the names of the other students registered for the course via the MS Teams channel. If you need help to find group members, there is a "Search For Teammates" section on Piazza you can use, or contact me if you need more help. It is not crucial to be in a fixed team for the week 1 introductory practical, but please settle on your group by the start of week 2.
Live practical sessions will take place on MS Teams. Please join the channel assigned to your group number to work in a video chat with your group members during the session. Please note that these channels are not private and any student doing Robotics will be able to join any of the channels, so please keep to your own group's channel. You will probably want to set up your own separate way of communicating and sharing files within your group using your own MS Teams chat or otherwise.
The team of TAs and I will be in the live session and we will "visit" different groups to see how you are getting on. If you have a question, post a short message with your group number in the Lab Question Queue channel and a TA will join your channel to talk to you.
There will be a new practical exercise set every week. These will be announced in lectures and a detailed practical sheet explaining what to do will be made available from the links in the schedule. You will be able to work on these exercises during the live practical sessions with teaching assistants supporting via MS Teams, and use your own time outside of practical sessions to complete the exercises. General support outside of live sessions is available via Piazza.
Three practicals during term (the ones set in weeks 2, 4 and 5) will be assessed. The way we assess practicals is via a face to face MS Teams discussion and live demonstration of your work via screenshare with me or one of the teaching assistants. You will have one week to work on each of the assessed exercises, and the sessions when the assessments will happen are marked in the schedule above. The exact goals of each exercise and what you will have to demonstrate will be explained clearly in the practical sheets. These assessed practicals form the only coursework element of the Robotics course. No additional assessed exercises will be set and you will not need to submit any coursework documents or code. We will add up all marks from the assessed practicals throughout term to form a final coursework mark for each group. All members of a group will receive the same mark by default.
Robot Floor Cleaner Case Study: a tutorial we have used in previous years of Robotics to get students thinking about and discussing some of the capabilities of mobile robotic products. Questions and Answers.
Monte Carlo Localization: Efficient Position Estimation for Mobile Robots, Dieter Fox, Wolfram Burgard, Frank Dellaert, Sebastian Thrun. The original paper on MCL.
Rearrangement: A Challenge for Embodied AI, Dhruv Batra, Angel X. Chang, Sonia Chernova, Andrew J. Davison, Jia Deng, Vladlen Koltun, Sergey Levine, Jitendra Malik, Igor Mordatch, Roozbeh Mottaghi, Manolis Savva, Hao Su. An up-to-date discussion of the current challenges in robotics and embodied AI research, with a focus on research using simulation platforms (including Imperial's own RLBench, which is based on CoppeliaSim).
Thank you very much to Stefan Leutenegger, Duncan White, Geoff Bruce, LLoyd Kamara, Maria Valera-Espina, Jan Czarnowski, Charlie Houseago, Binbin Xu, Andrea Nicastro, Robert Lukierski, Lukas Platinsky, Jan Jachnik, Jacek Zienkiewicz, Jindong Liu, Adrien Angeli, Ankur Handa and Simon Overell who helped enormously with the course in previous years; and to Ian Harries and Keith Clark who developed earlier material from which the current course has evolved. In particular Ian Harries deserves the credit for making this the practically-driven course it still is today.
The 2018 challenge was about accurate and fast localisation against a map, with robots starting in a randomly placed location and having to visit other waypoints as quickly as possible. The winning team of Qiulin Wang, Rui Zhou, Jianqiao Cheng and Chengzhi Shi had an extremely fast and efficient robot!
This year we had a path planning challenge, where the groups had to program their robots to use their sonar sensor to detect obstacles in a crowded area and then use a local planning approach to find a smooth but fast route across. Most groups followed the Dynamic Window Approach that I had shown in the lectures (and which you can try in simulation using this python code). This video shows the incredibly fast and smooth robot from the winning team of Alessandro Bonardi, Alberto Spina and Riku Murai. Thanks to Charlie Housego for the photo, video and commentary!
The winning robot was developed by Nicolas Paglieri, Clemens Lutz, Antonio Azevedo and Francesco Giovannini and completed the challenge in a remarkably fast 21 seconds, though impressively around half of the teams completed the whole course and a couple came close to this time. The winning team's robot used the Lego light sensors cleverly as proximity sensors, allowing giving the robot an extra obstacle sensor which was particularly useful at high speed, and this together with fast planning gave them the best time.
The winners' robot was remarkably precise, and its motion included particularly nice curved entries into the waypoint spaces, all while maintaining very good speed such that it beat its nearest competitor by 8 seconds. The members of the winning group were Alexandre Vicente, Ajay Lakshmanan, Garance Bruneau, Kevin Keraudren, Axel Bonnet and Zae Kim (video courtesy of Jindong Liu).
The winning team this time consisted of Jim Li, Daniel Abebe, Robert Kopaczyk, Nicholas Heung and Cheuk Tam, and their robot's successful completion of the course in under 40 seconds is shown below (video courtesy of the team).
Again there were several teams which achieved the challenge impressively within the target time of 30 seconds, but the winners by a narrow margin were Ivan Dryanovski, Tingting Li, Wenbin Li, Edmund Noon and Ke Wang whose winning run is shown in the video below (video courtesy of the team).
Several of the teams achieved good results, and one or two even made promising progress on the more difficult problem of global localisation (the "kidnapped robot problem"), where the robot had to initialise a localisation estimate from scratch when dropped at an arbitrary position in the course. This video shows the robot of the team of David Passingham, Vincent Dedoyard, John Payce and Mengru Li in action (video courtesy of the team).
The winning robot was from the team of Philip Stennett, Nicholas Ball, Maurice Adler and Wei Chieh Soon which completed the course all three times with a total time of 36.9 seconds --- this is a (very dark) video of their robot in action . The robots from the team of Si Yu Li, Henry Arnold, Shobhit Srivastava and Jonathan Dorling, and the team of Ricky Shrestha, Hussein Elgridly and Maxim Zverev also successfully completed the course three times.