After implementing the steering system, our focus has been on the cruise control system. The golf cart needs to stop when it encounters an obstacle, and continue to move forward once the obstacle is removed. At the time when we tested & implement this basic cruise control system, the golf cart had no odometer and GPS, which created a little bit of a problem for motion control. But this is meant to be a proof of concept for segmentation based scene understanding for autonomous robots.
In order to implement autonomous cruise control, we need to be able to electronically control the accelerator and brakes. If you want to learn more about the hacking into the accelerator, you can check out this post. There is very little modification done to the brakes. We simply placed a servo behind the brake pedal and the servo could pull the pedal back.
The commands are sent from the Jetson to an Arduino through serial communication. The Jetson simply processes the visual input from the camera and run a segmentation analysis. You can find out more about segmentation here.
If the segmentation shows that there is an object in the bottom of the view that is 20% size of the image, then the Jetson will send a stopping command to the Arduino.
There have been a few changes since the initial publication of this post. First, we changed the servo to a high torque DC motor, because servo was not strong enough to stop a moving golf cart. We also added a new Arduino & motor control for that high torque DC motor. Furthermore, we made some simple improvements to the onboard computers. Last but not least, we now have a GPS unit for some basic localization. 👍
Here is the plan for the future:
- reinforce the motor mount.
- add an odometer
- improve the stopping kill switch.
Please let me know if you have any questions, comments or concerns. firstname.lastname@example.org Thanks for stopping by.