Apply Coursera Control of Mobile Robots with ROS and ROSbots — Part 1 Hadabot Follow Feb 12, 2018 · 9 min read

(UPDATE March 28, 2020 — due to ROS trademark issues, we are now Hadabot. Check out the new Hadabot robot kit!!)

ROSbots is a ROS + OpenCV robot kit for Makers. We recently launched our ROSbots version 2.0 robot kit which is based off the Raspberry Pi 3.

The kit includes a camera, wheel encoders, two rechargeable lithium battery power sources, and even an Arduino-compatible UNO board for hardware PWM, interrupt, and ADC support.

Hardware is fun, but more importantly, we want to use hardware to apply robotics concepts. That requires learning software and the know-how to implement these robotics concepts with modern software tools like ROS and OpenCV.

As the 1st post from a multi-part series, we plan on publishing about concepts learned from the Coursera Control of Mobile Robots course and applying them to the ROSbots robot using ROS. The Control of Mobile Robots course sets the foundation to understand mobile robot control theory — how to control your robot predictably and how to use sensor data to estimate pose and have your robot understand its surroundings.

(Update 3/24/2018: part 2 of the series — where we talk about unicycle and differential drive robot models — has been published.)

Upon completing our multi-part series, you will have a working understanding of robotics control theory and ROS.

(Follow @rosbots for updates. Follow us on Instagram and Facebook too!)

If you have your own ROSbots robot, we welcome you to follow along. Hands-on doing with your own ROSbots kit will add that more more color to what we write than simply reading this post.

In this post, we’ll be prepping to implement the control models described in week 1 of Control of Mobile Robots. Specifically we’ll be doing the following in this post:

Learn how the L9110 Motor Driver on the ROBbots robot works. Walk through the Arduino sketch code that implements a ROS node to drive the L9110 to spin our wheels. Compile and upload the ROS-Arduino sketch to our ROSbots’ UNO board, and run the ROS node on the ROSbots’ main brain — ie its Raspberry Pi. Give you a hands-on feel for how ROS’s messaging system works — use some built in ROS tools to control our motors.

We expect you to know a bit about electronics, have played with Arduinos, have some software programming experience and be comfortable with electronics and coding lingo.

If you are a good top-down learner, then it’s NOT required for you to have taken the Control of Mobile Robots course, nor is it required for you to have knowledge of ROS. But if you have done both, it will definitely be intellectually beneficial.