Robot Operating System (ROS) for Absolute Beginners Robotics Programming Made Easy
Gespeichert in:
1. Verfasser: | |
---|---|
Format: | Elektronisch E-Book |
Sprache: | English |
Veröffentlicht: |
Berkeley, CA
Apress L. P.
2022
|
Ausgabe: | 2nd ed |
Schlagworte: | |
Online-Zugang: | HWR01 |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
Inhaltsangabe:
- Intro
- Table of Contents
- About the Authors
- About the Technical Reviewer
- Acknowledgments
- Chapter 1: Getting Started with Ubuntu Linux for Robotics
- Getting Started with GNU/Linux
- What Is Ubuntu?
- Why Ubuntu for Robotics?
- Installing Ubuntu
- Minimum PC Requirements
- Downloading Ubuntu
- Installing VirtualBox
- Creating a VirtualBox Machine
- Step 1: Adding a New Virtual Machine
- Step 2: Naming the Guest Operating System
- Step 3: Allocating RAM for the Guest OS
- Step 4: Creating a Virtual Hard Disk
- Step 5: Configuring the Type of Virtual Disk
- Step 6: Choosing Ubuntu DVD Image
- Step 7: Starting Virtual Machine
- Installing Ubuntu on VirtualBox
- Installing Ubuntu on a PC
- Playing with the Ubuntu Graphical User Interface
- The Ubuntu File System
- Useful Ubuntu Applications
- Getting Started with Shell Commands
- Terminal Commands Cheat Sheet
- man: Manual Pages for Shell Commands
- ls: List Directory Content
- cd: Change Directory
- pwd: Current Terminal Path
- mkdir: Create a Folder
- rm: Delete a File
- rmdir: Delete a Folder
- mv: Move a File from One Place to Another
- cp: Copy a File from One Path to Another
- dmesg: Display a Kernel Message
- lspci: List of PCI Devices in the System
- lsusb: List of USB Devices in the System
- sudo: Run a Command in Administrative Mode
- ps: List the Running Process
- kill: Kill a Process
- apt-get: Install a Package in Ubuntu
- dpkg -i: Install a Package in Ubuntu
- reboot: Reboot the System
- poweroff: Switch Off the System
- htop: Terminal Process View
- nano: Text Editor in Terminal
- Summary
- Chapter 2: Fundamentals of C++ for Robotics Programming
- Getting Started with C++
- Timeline: The C++ Language
- C/C++ in Ubuntu Linux
- Introduction to GCC and G++ Compilers
- Installing C/C++ Compiler
- Verifying Installation
- Introduction to GNU Project Debugger (GDB)
- Installing GDB in Ubuntu Linux
- Verifying Installation
- Writing Your First Code
- Explaining Code
- Compiling Your Code
- Debugging Your Code
- Learning OOP Concepts from Examples
- The Differences Between Classes and Structs
- C++ Classes and Objects
- Class Access Modifier
- C++ Inheritance
- C++ Files and Streams
- Namespaces in C++
- C++ Exception Handling
- C++ Standard Template Libraries
- Building a C++ Project
- Creating a Linux Makefile
- Creating a CMake File
- Summary
- Chapter 3: Fundamentals of Python for Robotics Programming
- Getting Started with Python
- Timeline: The Python Language
- Python in Ubuntu Linux
- Introduction to Python Interpreter
- Setting Python 3 on Ubuntu 20.04 LTS
- Verifying Python Installation
- Writing Your First Code
- Running Python Code
- Understanding Python Basics
- What's New in Python?
- Static and Dynamic Typing
- Code Indentation
- Semicolons
- Python Variables
- Python Input and Conditional Statement
- Python: Loops
- Python: Functions
- Python: Handling Exception
- Python: Classes
- Python: Files
- Python: Modules
- Python: Handling Serial Ports
- Installing PySerial in Ubuntu 20.04
- Python: Scientific Computing and Visualization
- Python: Machine Learning and Deep Learning
- Python: Computer Vision
- Python: Robotics
- Python: IDEs
- Summary
- Chapter 4: Kick-Starting Robot Programming Using ROS
- What Is Robot Programming?
- Why Robot Programming Is Different
- Getting Started with ROS
- The ROS Equation
- Robot Programming Before and After ROS
- The History of ROS
- Before and After ROS
- Why Use ROS?
- Installing ROS
- Robots and Sensors Supporting ROS
- Popular ROS Computing Platforms
- ROS Architecture and Concepts
- The ROS File System
- ROS Computation Concepts
- The ROS Community
- ROS Command Tools
- ROS Demo: Hello World Example
- ROS Demo: turtlesim
- Moving the Turtle
- Moving the Turtle in a Square
- ROS GUI Tools: Rviz and Rqt
- Summary
- Chapter 5: Programming with ROS
- Programming Using ROS
- Creating a ROS Workspace and Package
- ROS Build System
- ROS Catkin Workspace
- src Folder
- build Folder
- devel Folder
- install Folder
- Creating a ROS Package
- Using ROS Client Libraries
- roscpp and rospy
- Header Files and ROS Modules
- Initializing a ROS Node
- Printing Messages in a ROS Node
- Creating a Node Handle
- Creating a ROS Message Definition
- Publishing a Topic in ROS Node
- Subscribing a Topic in ROS Node
- Writing the Callback Function in ROS Node
- The ROS Spin Function in ROS Node
- The ROS Sleep Function in ROS Node
- Setting and Getting a ROS Parameter
- The Hello World Example Using ROS
- Creating a hello_world Package
- Creating a ROS C++ Node
- Editing the CMakeLists.txt File
- Building C++ Nodes
- Executing C++ Nodes
- Creating Python Nodes
- Executing Python Nodes
- Creating Launch Files
- Visualizing a Computing Graph
- Programming turtlesim Using rospy
- Moving turtlesim
- Printing the Robot's Position
- Moving the Robot with Position Feedback
- Reset and Change the Background Color
- Programming TurtleBot Simulation Using rospy
- Installing TurtleBot 3 Packages
- Launching the TurtleBot Simulation
- Gazebo Simulation
- Moving a Fixed Distance Using a Python Node
- Finding Obstacles
- Programming Embedded Boards Using ROS
- Interfacing Arduino with ROS
- Installing ROS on a Raspberry Pi
- Burning an Ubuntu Mate Image to a Micro SD Card
- Booting to Ubuntu
- Installing ROS on a Raspberry Pi
- Summary
- Chapter 6: Robotics Project Using ROS
- Getting Started with Wheeled Robots
- Differential Drive Robot Kinematics
- Building Robot Hardware
- Buying Robot Components
- Robot Chassis
- Additional Motors and Wheels
- Motor Driver
- Optical Encoder
- Microcontroller Board
- Bluetooth Breakout
- Sharp IR Range Sensor
- Block Diagram of the Robot
- Assembling Robot Hardware
- Creating a 3D ROS Model Using URDF
- Working with Robot Firmware
- Programming Robot Using ROS
- The Teleop Node
- The Twist Message to Motor Velocity Node
- The Diff to TF Node
- The Dead-Reckoning Node
- Final Run
- Summary
- Index