Rico's Nerd Cluster

「离开世界之前 一切都是过程」

Robotics - [ROS2 Foundation] Ros2 Composition Instead Of Nodelets

Components, Zero-Copy Intra-Processing-Communication (IPC)

Reference The basic idea of ROS2 composition is to have a unified API in place of ROS1 nodes and nodelets. Nodelets in ROS1 are compiled into shared libraries and can be loaded into one process du...

Robotics - [ROS2 Foundation] Ros2 Rclcpp Executor Callback Model

Executor, Callbacks, Threading Model

C++ Executors In ROS2, we can have multiple logical nodes executing their callbacks of timer, subscription, etc. in executors. There are three types of executors: SingleThreadedExecutor, StaticSin...

Robotics - [ROS2 Foundation] Ros2 Parameters

ROS2 Parameters Intro What are ROS2 parameters? ROS2 Parameters are one means to change certain values in a node during runtime. They are associated initialized, set, and retrieved at the level o...

Robotics - ROS2 Service

How to Bring Up a Service, Common ROS2 Services

Set up a ROS2 Service File ROS2’s ament build system does not support generating msg and srv files in pure python packages. So it’s a common practice to define an interface package that could be i...

Robotics - [ROS2 Foundation 3] ROS2 Build System

Various Things to Note For Building Dockerized ROS2 App

Build Tool A build tool operates on a set of packages determines the dependency graph invokes the specific build system for each package in topological order. for a specific package, knows ...

Robotics - [ROS2 Foundation 2] ROS2 in Docker

Various Things to Note For Building Dockerized ROS2 App

Networking Using --net=host implies both DDS participants believe they are in the same machine and they try to communicate using SharedMemory instead of UDP. So we need to enable SharedMemory b...

Robotics - [ROS2 Foundation - 1] DDS Notes

DDS, Zeroconf, IDL, FastRTPS, ROS2 Messaging Mechanism

What’s Middleware Middleware abstracts the complexity of managing communication, serialization, discovery, and other low-level functionalities, allowing developers to focus on application-level ...

Robotics General Design Notes

What's New In ROS2, Affordance

Software Structuring Build a simulation / dataset for debugging software is key. Otherwise, you will have a lot of overhead of on-robot hardware testing. Have three general feature f...

Robotics - ROS2 Launchfile

Components Launch Actions 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 from launch import LaunchDescription from launch.actions import DeclareLaunchArgument, OpaqueFunction from launch.substituti...

Robotics - ROS2 Gazebo Differential Drive Onboard

ROS2, Gazebo

Install Gazebo 1 sudo apt install ros-iron-gazebo-ros-pkgs ros-iron-gazebo-ros2-control Add A Launchfile File Directory: 1 2 ├── launch │ └── empty_world.launch.py mkdir launch s...