Practical Robotics in C++


Book Description

Learn how to build and program real autonomous robots KEY FEATURES _ÊSimplified coverage on fundamentals of building a robot platform. _ÊLearn to program Raspberry Pi for interacting with hardware. _ÊCutting-edge coverage on autonomous motion, mapping, and path planning algorithms for advanced robotics. Ê DESCRIPTION Practical Robotics in C++ teaches the complete spectrum of Robotics, right from the setting up a computer for a robot controller to putting power to the wheel motors. The book brings you the workshop knowledge of the electronics, hardware, and software for building a mobile robot platform.Ê You will learn how to use sensors to detect obstacles, how to train your robot to build itself a map and plan an obstacle-avoiding path, and how to structure your code for modularity and interchangeability with other robot projects. Throughout the book, you can experience the demonstrations ofÊcomplete coding of robotics with the use of simple and clear C++ programming. In addition, you will explore how to leverage the Raspberry Pi GPIO hardware interface pins and existing libraries to make an incredibly capable machine on the most affordable computer platform ever. Ê WHAT YOU WILL LEARN Ê _ÊWrite code for the motor drive controller. _ÊBuild a Map from Lidar Data. _ÊWrite and implement your own autonomous path-planning algorithm. _ÊWrite code to send path waypoints to the motor drive controller autonomously. _ÊGet to know more about robot mapping and navigation.Ê WHO THIS BOOK IS FOR This book is most suitable for C++ programmers who have keen interest in robotics and hardware programming. All you need is just a good understanding of C++ programming to get the most out of this book. Ê TABLE OF CONTENTS 1. Choose and Set Up a Robot Computer 2. GPIO Hardware Interface Pins Overview and Use 3. The Robot Platform 4. Types of Robot Motors and Motor Control 5. Communication with Sensors and other Devices 6. Additional Helpful Hardware 7. Adding the Computer to Control your Robot 8. Robot Control Strategy 9. Coordinating the Parts 10. Maps for Robot Navigation 11. Robot Tracking and Localization 12. Autonomous Motion 13. Autonomous Path Planning 14. Wheel Encoders for Odometry 15. Ultrasonic Range Detectors 16. IMUs: Accelerometers, Gyroscopes, and Magnetometers 17. GPS and External Beacon Systems 18. LIDAR Devices and Data 19. Real Vision with Cameras 20. Sensor Fusion 21. Building and Programming an Autonomous Robot




Hands-On Robotics Programming with C++


Book Description

Enhance your programming skills to build exciting robotic projects Key FeaturesBuild an intelligent robot that can detect and avoid obstacles and respond to voice commandsDetect and track objects and faces using OpenCVControl your robot with a GUI button designed using Qt5Book Description 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. To follow along with the projects covered in the book, you can implement C programs in Raspberry Pi with the wiringPi library. With this book, you’ll develop a fully functional car robot and write programs to move it in different directions. You’ll then create an obstacle - avoiding robot using an ultrasonic sensor. Furthermore, you’ll find out how to control the robot wirelessly using your PC/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. What you will learnInstall software in Raspberry Pi compatible with C++ programmingProgram the Raspberry Pi in C++ to run a motorControl RPi-powered robot wirelessly with your laptop or PCProgram an RPi camera using OpenCV Control a Raspberry Pi robot with voice commandsImplement face and object detection with Raspberry PiWho this book is for This book is for developers, programmers, and robotics enthusiasts interested in leveraging C++ to build exciting robotics applications. Prior knowledge of C++ is necessary to understand the projects covered in this book.




Programming Robots with ROS


Book Description

Chapter 3. Topics; Publishing to a Topic; Checking That Everything Works as Expected; Subscribing to a Topic; Checking That Everything Works as Expected; Latched Topics; Defining Your Own Message Types; Defining a New Message; Using Your New Message; When Should You Make a New Message Type?; Mixing Publishers and Subscribers; Summary; Chapter 4. Services; Defining a Service; Implementing a Service; Checking That Everything Works as Expected; Other Ways of Returning Values from a Service; Using a Service; Checking That Everything Works as Expected; Other Ways to Call Services; Summary.




Learn Robotics Programming


Book Description

Develop an extendable smart robot capable of performing a complex series of actions with Python and Raspberry Pi Key Features Get up to speed with the fundamentals of robotic programming and build intelligent robots Learn how to program a voice agent to control and interact with your robot's behavior Enable your robot to see its environment and avoid barriers using sensors Book Description We live in an age where the most complex or repetitive tasks are automated. Smart robots have the potential to revolutionize how we perform all kinds of tasks with high accuracy and efficiency. With this second edition of Learn Robotics Programming, you'll see how a combination of the Raspberry Pi and Python can be a great starting point for robot programming. The book starts by introducing you to the basic structure of a robot and shows you how to design, build, and program it. As you make your way through the book, you'll add different outputs and sensors, learn robot building skills, and write code to add autonomous behavior using sensors and a camera. You'll also be able to upgrade your robot with Wi-Fi connectivity to control it using a smartphone. Finally, you'll understand how you can apply the skills that you've learned to visualize, lay out, build, and code your future robot building projects. By the end of this book, you'll have built an interesting robot that can perform basic artificial intelligence operations and be well versed in programming robots and creating complex robotics projects using what you've learned. What you will learn Leverage the features of the Raspberry Pi OS Discover how to configure a Raspberry Pi to build an AI-enabled robot Interface motors and sensors with a Raspberry Pi Code your robot to develop engaging and intelligent robot behavior Explore AI behavior such as speech recognition and visual processing Find out how you can control AI robots with a mobile phone over Wi-Fi Understand how to choose the right parts and assemble your robot Who this book is for This second edition of Learn Robotics Programming is for programmers, developers, and robotics enthusiasts who want to develop a fully functional robot and leverage AI to build interactive robots. Basic knowledge of the Python programming language will help you understand the concepts covered in this robot programming book more effectively.




Robot Programming


Book Description

Start programming robots NOW! Learn hands-on, through easy examples, visuals, and code This is a unique introduction to programming robots to execute tasks autonomously. Drawing on years of experience in artificial intelligence and robot programming, Cameron and Tracey Hughes introduce the reader to basic concepts of programming robots to execute tasks without the use of remote controls. Robot Programming: A Guide to Controlling Autonomous Robots takes the reader on an adventure through the eyes of Midamba, a lad who has been stranded on a desert island and must find a way to program robots to help him escape. In this guide, you are presented with practical approaches and techniques to program robot sensors, motors, and translate your ideas into tasks a robot can execute autonomously. These techniques can be used on today’s leading robot microcontrollers (ARM9 and ARM7) and robot platforms (including the wildly popular low-cost Arduino platforms, LEGO® Mindstorms EV3, NXT, and Wowee RS Media Robot) for your hardware/Maker/DIY projects. Along the way the reader will learn how to: Program robot sensors and motors Program a robot arm to perform a task Describe the robot’s tasks and environments in a way that a robot can process using robot S.T.O.R.I.E.S. Develop a R.S.V.P. (Robot Scenario Visual Planning) used for designing the robot’s tasks in an environment Program a robot to deal with the “unexpected” using robot S.P.A.C.E.S. Program robots safely using S.A.R.A.A. (Safe Autonomous Robot Application Architecture) Approach Program robots using Arduino C/C++ and Java languages Use robot programming techniques with LEGO® Mindstorms EV3, Arduino, and other ARM7 and ARM9-based robots.




Robot Adventures in Python and C


Book Description

In this book the author stresses software as the most important topic in modern robotics. In particular the book concentrates on software for mobile robots, and the author demonstrates how inexpensive solutions can be constructed by mounting Raspberry Pi controllers and cameras onto model cars or other simple mechanical drive systems. He introduces EyeSim-VR, a freely available system that can realistically simulate driving, swimming, diving, and walking robots. The emphasis throughout is on algorithm development and all software assignments can run on real robot hardware, as well as on the simulation system presented. The book is suitable for undergraduate and graduate courses in artificial intelligence and robotics, and also for self-study by practitioners. All software used in this book, including all example programs, can be freely downloaded online, with native applications for MacOS, Windows, Linux, and Raspberry Pi.




Learning ROS for Robotics Programming


Book Description

Your one-stop guide to the Robot Operating System About This Book Model your robot on a virtual world and learn how to simulate it Create, visualize, and process Point Cloud information Easy-to-follow, practical tutorials to program your own robots Who This Book Is For If you are a robotic enthusiast who wants to learn how to build and program your own robots in an easy-to-develop, maintainable, and shareable way, this book is for you. In order to make the most of the book, you should have a C++ programming background, knowledge of GNU/Linux systems, and general skill in computer science. No previous background on ROS is required, as this book takes you from the ground up. It is also advisable to have some knowledge of version control systems, such as svn or git, which are often used by the community to share code. What You Will Learn Install a complete ROS Hydro system Create ROS packages and metapackages, using and debugging them in real time Build, handle, and debug ROS nodes Design your 3D robot model and simulate it in a virtual environment within Gazebo Give your robots the power of sight using cameras and calibrate and perform computer vision tasks with them Generate and adapt the navigation stack to work with your robot Integrate different sensors like Range Laser, Arduino, and Kinect with your robot Visualize and process Point Cloud information from different sensors Control and plan motion of robotic arms with multiple joints using MoveIt! In Detail If you have ever tried building a robot, then you know how cumbersome programming everything from scratch can be. This is where ROS comes into the picture. It is a collection of tools, libraries, and conventions that simplifies the robot building process. What's more, ROS encourages collaborative robotics software development, allowing you to connect with experts in various fields to collaborate and build upon each other's work. Packed full of examples, this book will help you understand the ROS framework to help you build your own robot applications in a simulated environment and share your knowledge with the large community supporting ROS. Starting at an introductory level, this book is a comprehensive guide to the fascinating world of robotics, covering sensor integration, modeling, simulation, computer vision, navigation algorithms, and more. You will then go on to explore concepts like topics, messages, and nodes. Next, you will learn how to make your robot see with HD cameras, or navigate obstacles with range sensors. Furthermore, thanks to the contributions of the vast ROS community, your robot will be able to navigate autonomously, and even recognize and interact with you in a matter of minutes. What's new in this updated edition? First and foremost, we are going to work with ROS Hydro this time around. You will learn how to create, visualize, and process Point Cloud information from different sensors. This edition will also show you how to control and plan motion of robotic arms with multiple joints using MoveIt! By the end of this book, you will have all the background you need to build your own robot and get started with ROS. Style and approach This book is an easy-to-follow guide that will help you find your way through the ROS framework. This book is packed with hands-on examples that will help you program your robot and give you complete solutions using ROS open source libraries and tools.




Robot Programming


Book Description

* Teaches the concepts of behavior-based programming through text, programming examples, and a unique online simulator robot * Explains how to design new behaviors by manipulating old ones and adjusting programming * Does not assume reader familiarity with robotics or programming languages * Includes a section on designing your own behavior-based system from scratch




Programming Robot Controllers


Book Description

* Details the PICmicro microcontroller * Covers designing the robot system, software development, and advanced programming * Explains microcontroller connections




Hands-On ROS for Robotics Programming


Book Description

Take your ROS skills to the next level by implementing complex robot structures in a ROS simulation Key FeaturesLearn fundamental ROS concepts and apply them to solve navigation tasksWork with single board computers to program smart behavior in mobile robotsUnderstand how specific characteristics of the physical environment influence your robot’s performanceBook Description Connecting a physical robot to a robot simulation using the Robot Operating System (ROS) infrastructure is one of the most common challenges faced by ROS engineers. With this book, you'll learn how to simulate a robot in a virtual environment and achieve desired behavior in equivalent real-world scenarios. This book starts with an introduction to GoPiGo3 and the sensors and actuators with which it is equipped. You'll then work with GoPiGo3's digital twin by creating a 3D model from scratch and running a simulation in ROS using Gazebo. Next, the book will show you how to use GoPiGo3 to build and run an autonomous mobile robot that is aware of its surroundings. Finally, you'll find out how a robot can learn tasks that have not been programmed in the code but are acquired by observing its environment. You'll even cover topics such as deep learning and reinforcement learning. By the end of this robot programming book, you'll be well-versed with the basics of building specific-purpose applications in robotics and developing highly intelligent autonomous robots from scratch. What you will learnGet to grips with developing environment-aware robotsGain insights into how your robots will react in physical environmentsBreak down a desired behavior into a chain of robot actionsRelate data from sensors with context to produce adaptive responsesApply reinforcement learning to allow your robot to learn by trial and errorImplement deep learning to enable your robot to recognize its surroundingsWho this book is for If you are an engineer looking to build AI-powered robots using the ROS framework, this book is for you. Robotics enthusiasts and hobbyists who want to develop their own ROS robotics projects will also find this book useful. Knowledge of Python and/or C++ programming and familiarity with single board computers such as Raspberry Pi is necessary to get the most out of this book.