Contents

ROS:ROS2基础

本文采用知识共享署名 4.0 国际许可协议进行许可,转载时请注明原文链接,图片在使用时请保留全部内容,可适当缩放并在引用处附上图片所在的文章链接。

ROS 2 文档

常用指令

1
2
3
4
5
6
7
8
ros2 run <package_name> <executable_name>
ros2 node list
ros2 node info <node_name>

# 重映射节点名称
ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle
# 运行节点时设置参数
ros2 run example_parameters_rclcpp parameters_basic --ros-args -p rcl_log_level:=10=

ros2 pkg

1
2
3
4
5
create       Create a new ROS2 package
executables  Output a list of package specific executables
list         Output a list of available packages
prefix       Output the prefix path of a package
xml          Output the XML of the package manifest or a specific tag

find_package查找路径

1
2
3
4
5
<package>_DIR
CMAKE_PREFIX_PATH
CMAKE_FRAMEWORK_PATH
CMAKE_APPBUNDLE_PATH
PATH

python 包查找流程

1
echo $PYTHONPATH

四种通信方式

  • 话题-topics
  • 服务-services
  • 动作-Action
  • 参数-parameters

Colcon

colcon 文档

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
sudo apt-get install python3-colcon-common-extensions


 # 全部编译

colcon build

# packages-select 命令

colcon build --packages-select YOUR_PKG_NAME # 编译指定包,可以多个

# packages-ignore 命令

colcon build --packages-ignore YOUR_PKG_NAME # 忽略指定包,可以多个

# continue-on-error 命令

colcon build --continue-on-error # 在编译出错之后继续编译其他模块

# symlink-install 命令

colcon build --symlink-install # 表示编译时如果 install 中文件已经存在于 src 或者 build 文件夹中,就用超链接指向该文件,避免浪费空间,也可以实现同步更新

# merge-install 命令

colcon build --merge-install # 默认会使用install使用作为所有软件包的安装前缀,而不是 安装库中特定于软件包的子目录; 如果没有这个选项,每个包都会贡献自己的环境路径,导致环境变量特别长;使用此选项,环境变量更短;

# parallel-workers 命令

colcon build --parallel-workers NUMBER # 要并行处理的最大作业数, 默认值是逻辑 CPU 内核数

# cmake-args 命令

colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release # 表示传入cmake编译选项参数

# 开启构建日志
colcon build --log-level  info

rclcpp

1
2
3
4
ros2 pkg create example_cpp --build-type ament_cmake --dependencies rclcpp
# --build-type 用来指定该包的编译类型,一共有三个可选项ament_python、ament_cmake、cmake

ros2 pkg create example_py  --build-type ament_python --dependencies rclpy

https://openmlsys.github.io/chapter_rl_sys/ros.html#ros2

./01-%E5%9F%BA%E7%A1%80.assets/v2-a0843396e82a31cfa7a83a4e4880866f_r.jpg