Book Image

Hands-On Robotics Programming with C++

By : Dinesh Tavasalkar, Lentin Joseph
Book Image

Hands-On Robotics Programming with C++

By: Dinesh Tavasalkar, Lentin Joseph

Overview of this book

C++ is one of the most popular legacy programming languages for robotics, and a combination of C++ and robotics hardware is used in many leading industries. This book will bridge the gap between Raspberry Pi and C/C++ programming and enable you to develop applications for Raspberry Pi. You'll even be able to implement C programs in Raspberry Pi with the WiringPi library. The book will guide you through developing a fully functional car robot and writing programs to move it in different directions. You’ll then create an obstacle-avoiding robot using an ultrasonic sensor. In addition to this, you’ll find out how to control the robot wirelessly using your PC or Mac. This book will also help you work with object detection and tracking using OpenCV, and guide you through exploring face detection techniques. Finally, you will create an Android app and control the robot wirelessly with an Android smartphone. By the end of this book, you will have gained experience in developing a robot using Raspberry Pi and C/C++ programming.
Table of Contents (16 chapters)
Free Chapter
1
Section 1: Getting Started with wiringPi on a Raspberry Pi
4
Section 2: Raspberry Pi Robotics
8
Section 3: Face and Object Recognition Robot
12
Section 4: Smartphone-Controlled Robot

Detecting the eyes and smile

The program for detecting the eyes and smile is called SmilingFace.cpp, and you can download it from the Chapter08 folder of this book's GitHub repository.

Detecting the eyes

The SmilingFace.cpp program is basically an extension of the FaceDetection.cpp program, meaning that we will first find the region of interest, which is the face. Next, using the Haar CascadeClassifier for the eyes, we will detect the eyes and then draw circles around them.

Before writing the program, let's first understand the different eye CascadeClassifier that are available. OpenCV 4.0 has three main eye cascade classifiers:

  • haarcascade_eye.xml: This classifier will detect both of the eyes simultaneously
  • haarcascade_lefteye_2splits...