Robotics Summary
Table of Contents
Robotics Summary
Table of Contents
Introduction
Robot Middleware
Sensors
Kinematics
Local Navigation
Path Planning
Problem formulation
Route Planning
Uninformed Search
Heuristic Search
Probabilistic Roadmaps
Localization and Mapping
Taxonomy of Localization Methods
Mapping
High-Level Control
Introduction
Use of robots: dull, dirty, dangerous
automation
industrial robots
hazardous environments
remote control
teleoperation
hazardous materials handling
dangerous tasks
repetitive tasks
Robot Middleware
Main concepts: creating a cohesive and modular software architecture, enabling interoperability between
different hardware and software components and providing scalability and real-time performance.
Goals of robot middleware: software that enables communication and coordination between different
components of a robot system, such as sensors, actuators, and controllers.
Characterisation of good robot software development: should focus on creating a modular and scalable
architecture, ensuring robustness and flexibility, and providing a good trade-off between performance and
functionality.
, summary.md 29.1.2023
Examples of some frameworks:
ROS (Robot Operating System)
ROS2 (Robot Operating System 2)
YAROP (Yet Another Robot Operating System)
OROCOS (Open Robot Control Operating System)
OpenRTM (Open Real-Time Middleware)
FAWKES (Framework for Autonomous Work in Cooperative Environments)
Well-defined component concept (plugins)
Run-time loadable plugin mechanism
Plugins implemented as threads
Multi-threaded and distributable
Aspect-oriented framework feature access
Structured and synchronized main loop
Blackboard for inter-component communication
Message communication for dispatching commands
Messages are sent from the reader to the writer
Messages are queued
Comparison ROS to ROS2:
ROS (Robot Operating System) is an open-source robot middleware framework that provides a wide range of
libraries, tools, and services for developing robot applications. It is P2P (has independent entities/processes)
and is multi-lingual (with data and message types). ROS2 is the next generation of ROS; it has some new
features and improvements, for example, support for real-time communication (through DDS), improved
scalability, and enhanced security, and a data distribution service (DDS).
While ROS was also spanning partly over the application layer (with the master: for name services, topics, etc.),
ROS2 does not do that and restricts itself to the middleware layer.
ROS File Layers:
Packages (functional entity; component)
Manifests (contains package info, dependency, and compiler flags)
Stack (collection of packages)
Stack Manifest (stack infos)
Message Types (data structures and message types)
Service Types (simple protocol structures)
ROS Computation Graph Layer:
Nodes (computation entities; program inside a package that can communicate)
Master (only in ROS1)
Parameter Server (store data centrally under specified key)
Messages (data structures and data exchanged between nodes)
Topics (named channels: name to contents of msgs)
Publisher (publishes topic)
Subscriber (subscribes to topic)
Services (Protocol structure: request/reply)