I pledged for a Duckiebot in the 2018 Kickstarter, and would like some information regarding hardware specifications on the Duckiebot. I intend to use Go instead of Python, and use the GoBot library on the Raspy, and so would like to know more about how you guys handle the bot’s controls in a more low level way (disclaimer, I have near zero experience with hardware).
By reading the assembly manual, I see that the Duckie comes with a Duckietown Hub. What exactly does the hub do? From the manual, I see that both LEDs and motors connect directly to it, instead of to the Raspy. I am assuming that the hub takes signals from the Raspy’s GPIO pins, maybe does some magic on it and then sends signals to the motors and LEDs. So is it possible to control the motors/LEDs by sending explicit signals through the GPIO pins on the Raspy? If so, how would I do that? Is there a public codebase that handles all of that?
Many thanks in advance!
Hi. Great questions.
You are correct that the Duckiebot Hut sends the signals to the motors and to the LEDs. In fact, it replaces a stack of three boards that existed in the previous version to accomplish these tasks. It is possible to control the motors/LEDs by sending signals through the GPIO pins, but it will be much easier to use the established API for doing so.
We have ROS packages for sending commands to the wheels and the LEDs. Specifically, you could have a look at the wheels driver node for an example of controlling the motors and at the LED emitter node for an example of controlling the LEDs