š”– Scriptorium
✦   LIBER   ✦

šŸ“

Build Autonomous Mobile Robot from Scratch using ROS: Simulation and Hardware

āœ Scribed by Rajesh Subramanian


Publisher
Apress
Year
2023
Tongue
English
Leaves
579
Series
Maker Innovations Series
Edition
1
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


Start from scratch and build a variety of features for autonomous mobile robots both in simulation and hardware. This book will show you how to simulate an autonomous mobile robot using ROS and then develop its hardware implementation.

You'll start by gaining an understanding of the basic theoretical concepts underlying the development of autonomous robots, including history, mathematics, electronics, mechanical aspects, 3D modelling, 3D printing, Linux, and programming. In subsequent chapters, you will learn how to describe kinematics, simulate and visualize the robot, how to interface Arduino with ROS, tele-operate the robot, perform mapping, autonomous navigation, add additional sensors, sensor fusion, laser scan matching, web interface, and more. Not only will you learn theoretical aspects, you’ll also review the hardware realization of mobile robots.

Projects start with a very basic two-wheeled mobile robot and progress to complex features such as mapping, navigation, sensor fusion, autodocking, and web interface. Upon completing this book, you’ll have incorporated important robot algorithms including SLAM, Path Finding, Localization, and Kalman Filters – and you will be ready to start designing and building your own autonomous robots.

What You Will Learn

  • Design and build your customized physical robot with autonomous navigation capability
  • Create a map of your house using the robot’s lidar scanner
  • Command the robot to go to any accessible location on the map
  • Interact with the robot using a mobile app, joystick, keyboard, push-button, or remote computer
  • Monitor robot updates via LCD, a mobile app, sound, and status LEDs
  • Automate delivery of small payloads and return to home base
  • Utilize autodocking to home base for battery charging
  • Leverage sensor fusion to improve accuracy
  • Interface with the robot via the Web to monitor and control it remotely

Who This Book Is For

Complete beginners who want to build customized robots from scratch. No experience is expected, although basic programming knowledge could be handy.

✦ Table of Contents


Table of Contents
About the Author
About the Technical Reviewer
Introduction
Chapter 1: Introduction toĀ Robotics: Part I
Outline
The History ofĀ Robotics
Definition ofĀ aĀ Robot
Generations ofĀ Robots
First Generation
Second Generation
Third Generation
Fourth Generation andĀ Above
Basic Mathematics forĀ Robotics
Coordinate Frames
Transformations
2D Translation
2D Rotation
2D Translation andĀ Rotation
Kinematics ofĀ Mobile Robots
Forward Differential Kinematics
Inverse Differential Kinematics
Basic Electronics forĀ Robotics
Single-Board Computer (SBC)
Single-Board Microcontroller (SBM)
Motor Controller
Motor
AC Motors
Brushed DC Motors
Geared DC Motors
Servo Motors (Geared DC Motors withĀ Encoders)
Brushless DC Motors (BLDC)
Stepper Motors
Linear Actuators
Encoder
Lidar
Battery
Proximity Sensor
IMU
Drive Systems forĀ Mobile Robots
Differential Drive
Skid Steer
Tricycle
Ackermann
Omni-Directional
Mecanum
Ball-bot
Summary
Chapter 2: Introduction to Robotics: Part II
Outline
Basic 3D Modeling andĀ 3D Printing
3D Modeling
3D Printing
Basic Linux
Basic Linux Commands
Basic Programming
Variables
Data Types
Operators
Branches
If…else
Else-if Ladder
Switch
Loops
For
While
Do-while
Functions
Lists
Dictionaries
Files
Classes
Multi-threading
Basics ofĀ Autonomous Robot Navigation
Map-Based Navigation
Mapping
Navigation Algorithms
Summary
Chapter 3: Setting Up a Workstation for Simulation
Outline
Workstation Setup
Ubuntu MATE (Focal Fossa) Installation
Prerequisites
Installation Steps
ROS Noetic Installation
Visual Studio Code Installation
VS Code Extensions
ROS Extension
Python Extension
Pylint Extension
CMake Extension
C/C++ Extension
Other Useful Software
Summary
Chapter 4: The ROS Framework
Outline
What Is ROS?
Why Use ROS?
Applications ofĀ ROS
The ROS Architecture
The Filesystem
The Computation Graph
The ROS Community
Creating aĀ Workspace andĀ Building It
Publishers/Subscribers
Services
Actions
Implementing theĀ Publisher/Subscriber Using Python
Publisher Code
Code Description
Subscriber Code
Code Description
Implementing theĀ Service Using Python
Service Server
Service Client
Service Server Code
Code Description
Service Client Code
Code Description
Implementing Actions Using Python
Action Server Code
Code Description
Action Client Code
Code Description
Creating Custom Messages, Custom Service Definitions, andĀ Custom Actions
Create aĀ Custom Message Definition
Procedure
Publishing theĀ Custom Message
Subscribing toĀ theĀ Custom Message
Create aĀ Custom Service Definition
Procedure
Writing aĀ Custom Service Server
Writing aĀ Custom Service Client
Create aĀ Custom Action Definition
Procedure
Creating aĀ Custom Action Server
Creating aĀ Custom Action Client
Basic ROS, Catkin, andĀ Git Commands
ROS Debugging Tools
Visual Studio Code
Catkin_make/Catkin build
RViz
Rqt_graph
Rosbag
Rqt_reconfigure
Tf View Frames
Rqt_console
Rqt_logger_level
Rqt_launchtree
Rqt
Rosnode/rostopic/rosservice list
Rosnode/rostopic/rosservice info
Rqt_top
Roswtf
Coordinate Transformation inĀ ROS
Example
Right-Hand Rule forĀ Coordinate Transformation
ROS Navigation Stack
Move Base
Sensor Nodes
Sensor Transforms
Odometry
Base Controller
Map Server
AMCL
Summary
Chapter 5: Robot Simulation and Visualization
Outline
Simulation andĀ Visualization
Gazebo
RViz
Turtlebot3: Mobile Robot
Setting Turtlebot3 Up
Simulation
Teleoperation
Mapping
Navigation
OpenMANIPULATOR-X: Robot Arm
Setting UpĀ OpenMANIPULATOR-X
Simulation
Controlling theĀ Arm
Turtlebot3 withĀ OpenMANIPULATOR-X: Mobile Manipulator
Setting Up
Simulation
Visualization andĀ Motion Planning
Teleoperation
Mapping
Navigation
Summary
Chapter 6: Arduino andĀ ROS
Outline
Arduino Basics
Arduino Board Models
Arduino Uno (Rev3)
Arduino Mega (2560 Rev3)
Arduino Due
Arduino Nano
Arduino Programming Basics
Arduino Examples
LED Blink
Buzzer
Switch
LCD Display
Interfacing Arduino withĀ ROS
Installation
Rosserial Installation
Arduino IDE Installation andĀ Configuration
Port Configuration
Defining Rules
Arduino andĀ ROS Integration Examples
LED Blink Using ROS Publisher-Subscriber
LED Trigger Using theĀ ROS Service
Buzzer Control Using theĀ ROS Publisher-Subscriber
Switch Control Using theĀ ROS Publisher-Subscriber
LCD Control Using theĀ ROS Publisher-Subscriber
Summary
Chapter 7: Simulating Bumblebot: AĀ Simple Two-Wheeled Robot
Outline
Preliminary Setup
Building theĀ Robot Model (URDF)
Links
Joints
URDF
Designing Robot Parts Using 3D Modeling Software
Using theĀ 3D Models inĀ URDF
Robot Visualization
Robot Simulation
Teleoperation
Teleoperation Using theĀ Keyboard
Teleoperation Using aĀ Joystick
Teleoperation Using anĀ Android Device
Mapping
Navigation
Tuning Navigation
Summary
Chapter 8: Building Bumblebot inĀ Hardware
Outline
The Preliminary Robot Setup Process
Udev Rules
Defining Rules
Configuring Arduino toĀ Control Peripherals
3D Printing theĀ Robot Parts
Electronics
Assembling andĀ Wiring
Wiring
Assembling theĀ Robot
Motor Gear Ratio Calculation
Custom Motor Driver andĀ ROS Interface
Differential Driver andĀ Odometry
twist_to_motors.py
diff_tf.py
Teleoperation
Teleoperation Using Keyboard
Odometry Correction
Rotation Test
Translation Test
Map Building
Autonomous Navigation
Tuning theĀ Navigation
Robot Upstart
Autonomous Delivery Application
Summary
Chapter 9: Additional Sensors and Sensor Fusion
Outline
Odometry Sensors
Lidar Based Odometry
Installation
Configuration
Simulation Using Bumblebot
IMU-Based Odometry
Adding IMU toĀ theĀ Robot
Adding Links andĀ Joints forĀ theĀ IMU inĀ theĀ URDF
Adding aĀ Gazebo Plugin forĀ IMU inĀ theĀ URDF
Running theĀ Simulation
Sensor Fusion
Installation
Configuration
Simulation
Summary
Chapter 10: Web Interface andĀ Autodocking
Outline
Web Interface
Web Interface inĀ ROS
Installing ROSBridge
Building aĀ Simple Web Page
Launch File
Simulation withĀ theĀ Web Interface
Autodocking
Autodocking Using ROS
Installation
Configuration
Configuring URDF
Configuring Autodocking Parameters
Configuring theĀ Launch File
Configuring theĀ Web Interface
Simulation
Summary
Index

✦ Subjects


Robotics; ROS; Robot Operating System; Autonomous Robot; Simulation; Hardware; Navigation; Build Robot; ROS Robot; Autonomous Navigation; ROS Basics; Navigation Stack; ROS Navigation; Robot Navigation


šŸ“œ SIMILAR VOLUMES


Build Autonomous Mobile Robot from Scrat
āœ Rajesh Subramanian šŸ“‚ Library šŸ“… 2023 šŸ› Apress 🌐 English

Start from scratch and build a variety of features for autonomous mobile robots both in simulation and hardware. This book will show you how to simulate an autonomous mobile robot using ROS and then develop its hardware implementation. You'll start by gaining an understanding of the basic theoret

Learning Robotics Using Python: Design,
āœ Lentin Joseph šŸ“‚ Library šŸ“… 2015 šŸ› Packt Publishing 🌐 English

Learning about robotics will become an increasingly essential skill as it becomes a ubiquitous part of life. Even though robotics is a complex subject, several other tools along with Python can help you design a project to create an easy-to-use interface. Learning Robotics Using Python is an essent

Learning robotics using Python: design,
āœ Joseph, Lentin šŸ“‚ Library šŸ“… 2015 šŸ› Packt Publishing 🌐 English

If you are an engineer, a researcher, or a hobbyist, and you are interested in robotics and want to build your own robot, this book is for you. Readers are assumed to be new to robotics but should have experience with Python.

Learning Robotics using Python: Design,
āœ Lentin Joseph šŸ“‚ Library šŸ“… 2018 šŸ› Packt Publishing 🌐 English

Design, simulate, and program interactive robots Key Features • Design, simulate, build, and program an interactive autonomous mobile robot • Leverage the power of ROS, Gazebo, and Python to enhance your robotic skills • A hands-on guide to creating an autonomous mobile robot with the help of

Learning Robotics Using Python: Design,
āœ Joseph, Lentin šŸ“‚ Library šŸ“… 2018 šŸ› Packt Publishing Ltd 🌐 English

Cover; Title Page; Copyright and Credits; Dedication; Packt Upsell; Contributors; Table of Contents; Preface; Chapter 1: Getting Started with Robot Operating System; Technical requirements; Introduction to ROS; ROS concepts; The ROS filesystem; The ROS Computation Graph; The ROS community level; Ins

Learning Robotics using Python: Design,
āœ Lentin Joseph šŸ“‚ Library šŸ“… 2018 šŸ› Packt Publishing 🌐 English

Learning about robotics will become an essential skill as it will be a ubiquitous part of life. Even though robotics is a complex subject, several other tools along with Python can help you design a project to create an easy-to-use interface. The main aim of the book is to teach you how to build an