Build Autonomous Mobile Robot from Scratch using ROS: Simulation and Hardware
معرفی کتاب «Build Autonomous Mobile Robot from Scratch using ROS: Simulation and Hardware» نوشتهٔ Robert William Chambers و Rajesh Subramanian، منتشرشده توسط نشر Apress L. P. در سال 2023. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.
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 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
دانلود کتاب Build Autonomous Mobile Robot from Scratch using ROS: Simulation and Hardware