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

Capturing images and video with the RPi camera

Let's see how we can take pictures and record video with our RPi. Open the Terminal window and type the following command:

raspistill -o image1.jpg

In this command, we used raspistill to take a still picture and saved it as image1.jpg.

Since the Terminal window is pointing to the pi directory, this image is saved in the pi folder. To open this image, open the pi folder and inside it, you will see image1.jpg. Images captured using the RPi camera have a native resolution of 3,280 x 2,464 pixels:

The output of image1 is shown in the following screenshot:

If we want to flip the image horizontally, we can add the -hf command, and if we want to flip it vertically, we can add -vf command inside the raspistill code:

raspistill -hf -vf -o image2.jpg

The image2.jpg file is also saved in the pi folder, and its output is shown in the...