Exercise 1

Video Demos

Lane Following Demo

Straight Line Demo

Dashboard

Write-Up and Notes

What I implemented

What I learned

I learned that robotics combines so many different fields together! I also learned a great many new technologies such as:

I learned how to calibrate the duckiebots camera and wheels and how to control the duckiebot from my laptop. I explored Docker a little bit and realize how powerful it is, but also how much more I have to learn from it.

Challenges

Calibration

One of the big challenges I had to work on was wheel calibration. While the wheel calibration is fairly simple to execute, getting it right is hard. Due to things like wheel slip, it was incredibly hard to get the duckiebot to drive in a straight line as evident by my video. I continuously updated the calibration until I could get it as straight as possible for a distance of 2m. Likely I will need to preform a calibration each time that I need to use the motor controls on the duckiebot.

Jekyll

Another challenge that I faced was learning to set up and use Jekyll. At the time of writing (Jan 22, 2023) I still sadly don't have it set up so you're probably seeing a not so great website. Moving through the GitHub Documentation, it asked me to install a program called Bundler which was supposed to take care of dependencies for me. However even after installing it, I continued to run into dependency issues I could not resolve.I did quite a lot of research into the problems that I was having with installing and utilizing Bundler, Jekyll and Ruby, but couldn't seem to get them fixed. I resorted back to HTML, CSS, and JS manually as an alternative, but I hope that I'll be able to get this set up in the future.

Colour Detector

Ahh yes. The Color Detector. Since I'm a computer engineer, I don't have a lot of the experience that some of the computing science majors have with things like OpenCV which was needed for this step. Nevertheless, I worked on following the instructions provided by the "duckumentation". After reading through OpenCV documentation for a good while, I started trying to debug the code given to us and learning more the gst pipeline.

One of the things I tried was stopping all process that used the camera except the color detector. One of the notes given by Duckietown during this step is to use Portainer to make sure all those processes are stopped incase the color detector is not functioning correctly. Sadly, that also did not help to get the detector functioning. After editing almost all the fields and working with the TA's, we came to the conclusion that the documentation was likely outdated and it wasn't worth to keep sinking time into as we wouldn't be using this method to connect to the camera in the future. In the future we will be subscribing to ROS topics to connect with the camera.