1 层级关系
工作空间————功能包————节点
- 工作空间相当于文件夹
- 功能包相当于一个类
- 节点相当于一个函数
2 对应指令
2.1 工作空间
创建工作空间
mkdir -p town_ws/src
查看工作空间下的架构
cd town_ws/src
tree
2.2 功能包
定位到工作空间下
cd town_ws/src
创建功能包
## ros2 pkg create <功能包名称> --build-type {cmake,ament_cmake,ament_python} --dependencies <依赖名字>
## 比如
ros2 pkg create village_li --build-type ament_python --dependencies rclpy
输出某个包所在路径的前缀
ros2 pkg prefix <功能包名>
列出所有可执行文件(格式是:功能包名 节点名)
ros2 pkg executables
ros2 pkg executables <功能包名> # 指定功能包
包的清单描述文件(名字,构建工具,编译信息,拥有者,干啥用的等)
ros2 pkg xml turtlesim
2.3 节点
创建节点
cd 工作空间
home ./ #打开vscode
在src/village_li/village/li下(有_init_.py)同级目录下,创建一个.py的节点文件,在vscode下编辑
在setup.py下的目录“entry_points“里加入节点的入口
eg. entry_points={
'console_scripts': [
"li4_node=village_li.li4:main"
],
},
编译节点
cd 工作空间
colcon build
source install/setup.bash
打印存在节点的列表(检查节点是否编译成功)
ros2 pkg list | grep village # grep是过滤
运行节点
ros2 run <功能包> <节点>
eg. ros2 run village_li li4_node
查看正在运行的节点
ros2 node list
查看运行节点的信息(发布了什么等等)
ros2 info /<节点名>
列出所有可执行文件(格式是:功能包名 节点名)
ros2 pkg executables
ros2 pkg executables <功能包名> # 指定功能包