Book Image

BeagleBone Robotic Projects

By : Richard Grimmett
Book Image

BeagleBone Robotic Projects

By: Richard Grimmett

Overview of this book

Thanks to new, inexpensive microcontrollers, robotics has become far more accessible than it was in the past. These microcontrollers provide a whole new set of capabilities to allow even the most inexperienced users to make amazingly complicated projects. Beaglebone is effectively a small, light, cheap computer in a similar vein to Raspberry Pi and Arduino. It has all of the extensibility of today's desktop machines, but without the bulk, expense, or noise. This project guide provides step-by-step instructions to allow anyone to use this new, low cost platform in some fascinating robotics projects. By the time you are finished, your projects will be able to see, speak, listen, detect their surroundings, and move in a variety of amazing ways. The book begins with unpacking and powering up the components.This will include guidance on what to purchase and how to connect it all successfully–and a primer on programming the BeagleBone Black. Chapter by chapter, we will add additional software functionality available from the open source community, including how to make the system see using a webcam, how to hear using a microphone, and how to speak using a speaker. We then add hardware to make your robots move–including wheeled and legged examples–as well as covering how to add sonar sensors to avoid or find objects, plus wireless control to make your robot truly autonomous. Adding GPS allows the robot to find itself. Finally the book covers how to integrate all of this functionality so that it can all work together, before developing the most impressive robotics projects: those that can sail, fly, and explore underwater.
Table of Contents (18 chapters)
BeagleBone Robotic Projects
About the Author
About the Reviewers

Creating a general control structure so capabilities can communicate

Now that you have a mobile robot, you want to coordinate all of its different abilities. Let's start with the simplest approach: using a single control program that can call other programs and enable all the capabilities.

Prepare for lift off

You've already done this once. In Chapter 3, Providing Speech Input and Output, you edited the continuous.c code to allow it to call other programs to execute functionality. Here is the code that we used, found in the /home/ubuntu/pocketsphinx-0.8/programs/src/ directory.

The functionality that is important to us is the system("espeak \"good bye"\"");"\""); line of code. When you use the system function call, the program actually calls a different program, in this case the espeak program, and passes it to the good bye parameter so that the words good and bye come out of the speaker.

Here is another example, this time from Chapter 5, Making the Unit Mobile – Controlling Wheeled Movement...