Robotics
1
Mobile Robot Localisation
1.1 Introduction
1.2 The problems of Noise and Aliasing
1.2.1 Sensor Noise
1.2.2 Sensor Aliasing
1.2.3 Effector Noise
1.2.4 An Error Model for Odometric Position Estimation
1.3 Localisation v. Hard-Coded Navigation
1.4 Representing Belief
1.4.1 Single Hypothesis Belief
1.4.2 Multiple Hypothesis Belief
1.5 Representing Maps
1.5.1 Continuous Representation
1.5.2 Decomposition Methods
1.5.3 Current Challenges
1.6 Probabilistic Map-Based Localisation
1.6.1 Introduction
1.6.2 Markov Localisation
1.6.3 Kalman Filter Localisation
1.7 Other Examples of Localisation Methods
1.7.1 Landmark-based Navigation
1.7.2 Globally Unique Localisation
1.7.3 Positioning Beacon systems
1.7.4 Route-Based Localisation
1.8 Building Maps
1.8.1 Stochastic Map Technique
1.8.2 Other Mapping Techniques
2 Welcome to Linux
2.1 Learning the Linux Command Line
2.1.1 A Short History on Computer Interfaces
2.1.2 Linux is a Nutshell
2.1.3 Linux Distributions
2.2 Installation
2.3 Docker
2.3.1 Dockerfile
2.3.2 Running the Container
3 Command Line Fundamentals
3.1 Introduction
3.2 The Structure of Commands
3.2.1 Some Rules Regarding the Syntax
3.3 Helpful Keyboard Shortcuts for the Terminal
3.4 When you need help with Commands
3.5 Additional Information
3.5.1 Use Tab completion on the Shell
3.5.2 The info command
3.5.3 The whatis command
4 Working with Files and Folders
4.1 Introduction
4.2 A Detailed Look in ls Command
4.3 Creating and Removing Folders
4.4 Move, Copy and Delete Files and Folders
4.5 Role to Users and sudo
4.6 File Permissions
4.7 Hard and Symbolic Links
4.7.1 Symbolic Links
4.8 The Linux File System
4.9 Common Command-Line Tools and Tasks
4.9.1 The UNIX Philosophy
4.9.2 Connecting Commands with Pipes
4.9.3 Viewing Text Files with cat, head, tail, and less
4.10 Advanced Topics
4.10.1 Find Linux Distribution and Kernel Information
4.10.2 Find System Hardware and Disk Information
5 Installation
5.1 ROS 2 Humble Hawksbill
5.1.1 Introduction
5.1.2 Setting up the Local
5.1.3 Setting Up the Source Files
5.1.4 Install ROS 2 Packages
5.1.5 Setting Up the Environment
5.2 Auto-Install Script
6 ROS Concepts
6.1 Introduction
6.2 Publisher and Subscriber Architecture
6.3 Nodes - The Building Blocks
6.4 The Discovery Process
6.5 Communication Between Nodes
6.5.1 Description
6.5.2 Messages
6.6 Topics
6.6.1 Publisher - Subscriber Architecture
6.6.2 Anonymity
6.6.3 Strongly-Typed
6.7 Services
6.7.1 Service Server
6.8 Actions
6.8.1 Action Server
6.8.2 Action Client
6.9 Parameters
6.9.1 A Detailed Look
6.9.2 Parameter Interaction
6.10 Working with Command Line
6.11 Launch File
7 Command Line Tools
7.1 Setting the Environment
7.2 Turtles and Graphs
7.3 A Deeper Look into Nodes
7.4 Working with Topics
7.5 Working with Services
7.6 Working with Parameters
7.7 A Practical Look into Actions
7.8 Launching Nodes
8 Client Libraries
8.1 Getting Started with Colcon
8.2 Creating a Workspace
8.3 Creating a Package
8.4 Writing a Simple Publisher & Subscriber
8.4.1 Writing the Publisher Node
8.4.2 Writing the Subscriber Node
8.4.3 Building and Running
8.5 Writing a Simple Service and Client
8.5.1 Writing the Service Node
8.5.2 Writing the Client Node
8.6 Creating Custom msg and srv Files
8.6.1 Creating Custom Definitions
8.6.2 Testing the Newly Built Interfaces
8.7 Using Parameters in a Class
8.8 Managing Dependencies
8.8.1 Explaining Rosdep
8.8.2 Explaining Pacakge Manifesto
8.9 Creating an Action
8.10 Writing an Action Server and Client
8.11 Writing a Launch File
9 Transform Library
9.1 A Gentle Introduction
9.2 Writing a Static Broadcaster
9.3 Writing a Listener
9.4 Adding a Frame
9.5 Writing a Broadcaster
Bibliography
1.1 Introduction
1.2 The problems of Noise and Aliasing
1.2.1 Sensor Noise
1.2.2 Sensor Aliasing
1.2.3 Effector Noise
1.2.4 An Error Model for Odometric Position Estimation
1.3 Localisation v. Hard-Coded Navigation
1.4 Representing Belief
1.4.1 Single Hypothesis Belief
1.4.2 Multiple Hypothesis Belief
1.5 Representing Maps
1.5.1 Continuous Representation
1.5.2 Decomposition Methods
1.5.3 Current Challenges
1.6 Probabilistic Map-Based Localisation
1.6.1 Introduction
1.6.2 Markov Localisation
1.6.3 Kalman Filter Localisation
1.7 Other Examples of Localisation Methods
1.7.1 Landmark-based Navigation
1.7.2 Globally Unique Localisation
1.7.3 Positioning Beacon systems
1.7.4 Route-Based Localisation
1.8 Building Maps
1.8.1 Stochastic Map Technique
1.8.2 Other Mapping Techniques
2 Welcome to Linux
2.1 Learning the Linux Command Line
2.1.1 A Short History on Computer Interfaces
2.1.2 Linux is a Nutshell
2.1.3 Linux Distributions
2.2 Installation
2.3 Docker
2.3.1 Dockerfile
2.3.2 Running the Container
3 Command Line Fundamentals
3.1 Introduction
3.2 The Structure of Commands
3.2.1 Some Rules Regarding the Syntax
3.3 Helpful Keyboard Shortcuts for the Terminal
3.4 When you need help with Commands
3.5 Additional Information
3.5.1 Use Tab completion on the Shell
3.5.2 The info command
3.5.3 The whatis command
4 Working with Files and Folders
4.1 Introduction
4.2 A Detailed Look in ls Command
4.3 Creating and Removing Folders
4.4 Move, Copy and Delete Files and Folders
4.5 Role to Users and sudo
4.6 File Permissions
4.7 Hard and Symbolic Links
4.7.1 Symbolic Links
4.8 The Linux File System
4.9 Common Command-Line Tools and Tasks
4.9.1 The UNIX Philosophy
4.9.2 Connecting Commands with Pipes
4.9.3 Viewing Text Files with cat, head, tail, and less
4.10 Advanced Topics
4.10.1 Find Linux Distribution and Kernel Information
4.10.2 Find System Hardware and Disk Information
5 Installation
5.1 ROS 2 Humble Hawksbill
5.1.1 Introduction
5.1.2 Setting up the Local
5.1.3 Setting Up the Source Files
5.1.4 Install ROS 2 Packages
5.1.5 Setting Up the Environment
5.2 Auto-Install Script
6 ROS Concepts
6.1 Introduction
6.2 Publisher and Subscriber Architecture
6.3 Nodes - The Building Blocks
6.4 The Discovery Process
6.5 Communication Between Nodes
6.5.1 Description
6.5.2 Messages
6.6 Topics
6.6.1 Publisher - Subscriber Architecture
6.6.2 Anonymity
6.6.3 Strongly-Typed
6.7 Services
6.7.1 Service Server
6.8 Actions
6.8.1 Action Server
6.8.2 Action Client
6.9 Parameters
6.9.1 A Detailed Look
6.9.2 Parameter Interaction
6.10 Working with Command Line
6.11 Launch File
7 Command Line Tools
7.1 Setting the Environment
7.2 Turtles and Graphs
7.3 A Deeper Look into Nodes
7.4 Working with Topics
7.5 Working with Services
7.6 Working with Parameters
7.7 A Practical Look into Actions
7.8 Launching Nodes
8 Client Libraries
8.1 Getting Started with Colcon
8.2 Creating a Workspace
8.3 Creating a Package
8.4 Writing a Simple Publisher & Subscriber
8.4.1 Writing the Publisher Node
8.4.2 Writing the Subscriber Node
8.4.3 Building and Running
8.5 Writing a Simple Service and Client
8.5.1 Writing the Service Node
8.5.2 Writing the Client Node
8.6 Creating Custom msg and srv Files
8.6.1 Creating Custom Definitions
8.6.2 Testing the Newly Built Interfaces
8.7 Using Parameters in a Class
8.8 Managing Dependencies
8.8.1 Explaining Rosdep
8.8.2 Explaining Pacakge Manifesto
8.9 Creating an Action
8.10 Writing an Action Server and Client
8.11 Writing a Launch File
9 Transform Library
9.1 A Gentle Introduction
9.2 Writing a Static Broadcaster
9.3 Writing a Listener
9.4 Adding a Frame
9.5 Writing a Broadcaster
Bibliography