二、ROS2基本操作

ROS2节点

ROS2的节点讲究分工合作,每个节点负责一个单独的模块化功能。
举一个激光雷达的例子,一个节点负责获取激光雷达的扫描数据,一个节点负责处理激光雷达数据,还有一个节点负责控制车轮转动,一个节点负责定位等等。如何实现这么多节点的通信呢?
实际上,ROS2早已为你准备好四种通信方式:
1、话题-topics
2、服务-servicces
3、动作-Action
4、参数-parameters

ROS2节点基本操作

启动节点的指令 ros2 run
其意义为启动包下的中的节点,据个例子 ros2 run turtlesim turtlesim_node,这就是启动乌龟模拟器的那条指令。
查看节点列表

ros2 node list

查看节点信息

ros2 node info 

重新映射节点名称(给节点换一个名字,因为不能同时运行两个同名的节点,所以需要用到换名,例如下面这行代码就是把turtlesim换名字为my_turtle)

ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle

ROS2工作空间与功能包

一个工作空间下可以有多个功能包,一个功能包可以有多个节点存在。
可以浅显的理解为一个文件夹,该文件夹下有src以及若干个功能包,所以一般新建一个工作空间的操作如下:

mkdir -p turtle_ws/src

再切换到工作空间

cd turtle_ws/src

而功能包可以理解为存放节点的地方,ROS2的功能包根据编译方式不同可以分为三种类型
1、ament_python,适用于python程序
2、cmake,适用于C++
3、ament_cmake,适用于C++程序,是cmake的增强版

安装获取功能包指令

sudo apt install ros--package_name
例如 sudo apt install ros-galactic-turtlesim

创建功能包

ros2 pkg create  --build-type {cmake,ament_cmake,ament_python} --dependencies<依赖名字>

列出可执行文件

ros2 pkg executables

列出某个功能包的可执行文件

ros2 pkg executables turtlesim

列出所有包

ros2 pkg list

输出某个包所在路径的前缀

ros2 pkg prefix 
例如找出乌龟模拟器的前缀 ros2 pkg prefix turtlesim

列出功能包的清单描述文件

ros2 pkg xml turtlesim

ROS2构建工具Colcon

colcon是一个功能包构建工具,就是用来编译代码的。
ROS2默认没有安装colcon,需要手动安装,安装指令如下:

sudo apt-get install python3-colcon-common-extensions

输入colcon指令,如果弹出usage提示则证明安装成功
下面开始实际动手编一个东西测试一下
1、创建一个工作区colcon_test

mkdir colcon_test && cd colcon_test

2、下载一个ROS2示例源码测试一下
需注意的是,-b后面对应的是你使用的ROS2版本,这里我使用的是galactic

git clone https://github.com/ros2/examples src/examples -b galactic

3、编译工程

colcon build

以上三步完成后,可以运行一个自己编的节点了,方法如下:
1、打开终端进入到我们刚才创建的工作空间里面,先source一下资源

source install/setup.bash

2、运行一个订阅节点,用以接受其他发布者的消息

ros2 run examples_rclcpp_minimal_subscriber subscriber_member_function

3、ctrl+alt+T再打开一个新的终端,先source,再运行一个发布者节点,就可以在刚才运行的订阅节点收到消息啦

source install/setup.bash
ros2 run examples_rclcpp_minimal_publisher publisher_member_function

你可能感兴趣的:(ROS2,开发语言,ROS2)