Rico's Nerd Cluster

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

Robotics - ROS2 Tests

colcon test

Use cases Passing ROS Arguments to ROS2 Test Executables When writing integration tests in ROS2, you may need to pass command-line parameters (--ros-args -p <param>:=<value>) to your ...

Robotics - [ROS2 Foundation] Ros2 Miscellaneous Thingies

Name Spacing, Weird Issues

Namespacing If you have something like: 1 2 3 4 5 class FiveCardStudPlayer : public rclcpp::Node { public: FiveCardStudPlayer() : Node("five_card_stud_player"){ ... }} And you launc...

Robotics - [ROS2 Foundation] Ros2 Bags

Introduction ros2 bag is a command line tool for recording data published on topics in your system. It accumulates the data passed on any number of topics and saves it in a database. You can then ...

Robotics - [ROS2 Foundation] Ros2 Rclpy Executor Callback Model

Rclpy Executors, Rate Object, Custom Node Destruction

Rclpy MultiThreadedExecutor rclpy.executors.MultiThreadedExecutor is implemented entirely in Python, not as a direct wrapper around the C++ rclcpp::executors::MultiThreadedExecutor. Internally it ...

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 Introduction 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 ...

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

colcon-build, interface package, dpkg, rosdep

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

Docker Networking, Multi-stage Build

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...