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.
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
Who This Book Is For
Rajesh Subramanian is a robotics engineer by profession and founder of ThunDroids LLP (a robotics manufacturing and service firm). He has more than 7 years of experience in the industry and research area. He holds a post-graduate degree from the University of Queensland, Australia and a research degree from Edith Cowan University, Australia. Rajesh has worked with humanoid service robots, mobile robots, robot arms, and modular robots as part of both industry and academics, and published a research paper on modular robots at the IEEE TENCON 2013 international conference. He also works as a robotics educator and has published courses on autonomous robots.
Chapter 1: Introduction to Robotics
· Basic Mathematics for Robotics
· Basic Electronics
· Basic 3D Modelling and 3D Printing
· Basic Linux
· Basic Programming
· Basic Robotics Algorithms
· Robot Navigation Basicso Odometry
o Transforms
o Sensor Data
o Map
o SLAM
o Localization
o Path planners
¿ Global
¿ Local
o Drive Systems
¿ Differential Drive
¿ Skid Steer
¿ Ackermann
¿ Holonomic etc.
o Actuator Control
Chapter 2: Setting Up Your Computer
· Installing Linux
· Installing ROS
· Installing IDE
Chapter 3: ROS Framework
· Why ROS
· ROS Architecture
· ROS Installation
· ROS File System
· Creating a workspace and building it· Publisher/Subscriber
· Services
· Actions
· Implementing publishers/subscribers, services, and actions using python
· Basic ROS commands
· Coordinate Transformation (TF)
· ROS Debugging Tools· ROS Navigation Stack
Chapter 4: Robot Simulation
· Rviz and Gazebo
· Turtlesim - A cute virtual turtle
o Simulating turtle in Turtlesim
o Controlling turtle in Turtlesim
· Turtlebot - Autonomous Mobile Robot o Simulating Turtlebot in Gazebo
o Visualizing Turtlebot in Rvizo Controlling Turtlebot
· PR2 - Autonomous Mobile Manipulator Robot
o Simulating PR2 in Gazebo o Visualizing PR2 in Rviz
o Controlling PR2
Chapter 5: Arduino and ROS
· What is Arduino· Basic Arduino Programming
· Examples
· Interfacing Arduino with ROS
Chapter 6: Building Bumblebot: A Simple 2-Wheeled Robot
· Part I - Simulation
o Building robot model
o Design robot parts using a 3D modeling software
o Add the designed parts to URDF file
o Visualize the robot in Rviz
o Load the robot into a virtual world in Gazebo simulator o Teleoperate the virtual robot using keyboard
o Teleoperate the virtual robot using joystick
o Teleoperate the virtual robot using android device
· Part II - Hardware
o 3D Print the robot parts o Electronic components o Wiring
o Assembling
o Configuring Single Board Computer for autonomous navigation o Configuring Arduino to control peripherals
o Interfacing Arduino with ROS
o Interfacing Lidar with ROS
o Interfacing Motors with ROS
o Interfacing Encoders with ROS
o Interfacing other electronic devices (LEDs, LCD, Buzzer, Switch, etc) with ROS o Motor gear ratio calculation
o Write your own motor controller and ROS interface
o Differential driver and Odometry
o Tele operation using ROS
o Odometry correction - rotation and translation
Chapter 7: Enabling Bumblebot to Perform Mapping and Autonomous Navigation
· Part I - Simulationo Map building
o Autonomous navigation
· Part II - Hardware
o Map building
o Autonomous navigation
· Part III - Navigation Tuning
Chapter 8: Additional Sensors and Sensor Fusion in Bumblebot
· Part I - Adding lidar based odometry
· Part II - Adding IMU based odometry
o IMU Calibration
o Interfacing with ROS· Part III - Sensor fusion for robustness and accuracy
Chapter 9: Autonomous Delivery Using Bumblebot
· Building delivery applications using Python
· Defining user interaction
· Defining status behaviors
Chapter 10: Bonus Materials: Web Interface and Autonomous Docking Using Bumblebot
· Web interface o Commanding robot using various controls in the web page
o Monitor status of the robot in the web page
Audience: Beginner