Repository Summary
Description | Code for the book "ROS 2 Programming - Based on Modern C++ and Python 3" 《ROS 2机器人编程实战——基于现代C++和Python 3》配套代码及相关内容维护 |
Checkout URI | https://github.com/homalozoa/ros2_for_beginners_code.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2024-10-24 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | tutorials ros2 |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Packages
Name | Version |
---|---|
ch2_node_cpp | 0.0.1 |
ch2_node_py | 0.0.1 |
ch2_pkg_cpp | 0.0.1 |
ch2_pkg_py | 0.0.1 |
ch3_component | 0.0.1 |
ch3_launch | 0.0.1 |
ch3_logging_cpp | 0.0.1 |
ch3_logging_py | 0.0.1 |
ch3_param_bringup | 0.0.1 |
ch3_param_cpp | 0.0.1 |
ch3_param_py | 0.0.1 |
ch3_plugin_alpha | 0.0.1 |
ch3_plugin_base | 0.0.1 |
ch3_plugin_beta | 0.0.1 |
ch3_plugin_main | 0.0.1 |
ch4_service_cpp | 0.0.1 |
ch4_service_py | 0.0.1 |
ch4_topic_cpp | 0.0.1 |
ch4_topic_py | 0.0.1 |
ch5_action_cpp | 0.0.1 |
ch5_action_interfaces | 0.0.1 |
ch5_action_py | 0.0.1 |
ch5_v_interfaces | 0.0.1 |
ch5_tf2_cpp | 0.0.1 |
ch6_bag_cpp | 0.0.1 |
ch6_debug_cpp | 0.0.1 |
ch6_unittest_cpp | 0.0.1 |
ch7_diagnostics_cpp | 0.0.1 |
ch7_msgfltr_cpp | 0.0.1 |
ch7_msgfltr_py | 0.0.1 |
grpc_vendor | 0.0.1 |
mpg123_vendor | 0.0.1 |
opencv_vendor | 0.0.1 |
README
ros2_for_beginners_code
一、简介
本项目囊括了书籍《ROS 2机器人编程实战——基于现代C++和Python 3》的各章节配套代码,意在将书中例程完整呈现,以便帮助读者更好地理解书中内容。
二、开发环境配置
为保证能够将项目代码顺利编译、运行、修改及调试,读者需要根据自身当前的软硬件开发环境,对ROS 2进行部署。
由于不同操作系统的软件管理机制不同,ROS 2的开发环境搭建需要根据不同的操作系统(Linux、Windows和macOS)进行相应的配置。
ROS 2相关软件发行分为源码发行与二进制发行两种方式。需要注意的是,源码发行是面向全平台的(Windows,Linux,macOS)且不约束其版本;而二进制发行为了保障适配性,基于不同的操作系统版本,发行了相应的ROS 2的版本,如ROS 2的Foxy发行版首要支持Ubuntu Focal(20.04),macOS Mojave(10.14)和Windows 10。这就要求基于二进制发行版本安装的读者进行版本的对应。
二进制安装参考说明:
- https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debians.html
- https://docs.ros.org/en/humble/Installation/Alternatives/RHEL-Install-Binary.html
以上网址给出的是Ubuntu下Debian的安装说明,及Humble版本的RPM安装说明。读者需要根据自己的操作系统及ROS 2软件版本需求,在 https://docs.ros.org/ 找到合适的安装说明。
源码安装参考说明:
- https://docs.ros.org/en/humble/Installation/Ubuntu-Development-Setup.html
此部分可结合书中1.1.3~1.1.4完成.
三、示例代码简介
1.功能包的构建与测试
本节对应书中2.1.2节的内容,在此项目中目录结构如下图,学习的关键点为以下几点:
-
通过ros2 pkg生成功能包ch2_pkg_cpp以及ch2_pkg_py的过程
-
如何配置并修改package.xml、setup.py及CmakeLists.txt
-
尝试merge以及symlink两种构建指令,比较构建结果的不同,以及构建指令与test指令的关系
ros2_for_beginners_code
|
|-ch2
|
|-package
|-ch2_pkg_cpp
|-ch2_pkg_py
2.节点与节点执行器
本节对应书中2.2.1节的内容,在此项目中目录结构如下图,学习的关键点为以下几点:
-
节点的创建方法
-
节点与线程、进程的关系
-
节点执行器的配置,包括线程配置和回调操作配置
-
节点的package.xml及CmakeLists.txt配置
-
节点的简单调试
ros2_for_beginners_code
|
|-ch2
|-node
|-ch2_node_cpp
|-ch2_node_py
3. 日志的基本分类
本节对应书中3.1.1节的内容,在此项目中目录结构如下图,学习的关键点为以下几点:
-
日志的分类,rclcpp和rclpy的日志接口设计
-
收集和查阅历史日志的方法
-
日志使用的技巧
ros2_for_beginners_code
|
|-ch3
|-logging
|-ch3_logging_cpp
|-ch3_logging_py
4. 使用启动脚本
本节对应书中3.2节的内容,在此项目中目录结构如下图,学习的关键点为以下几点:
-
使用ros2launch启动单个/多个进程
-
使用colcon进行构建并部署
File truncated at 100 lines see the full file