查看磁盘:df -lh
#################################ROS2开始#####################################
#节点
节点:机器人的工作细胞(执行具体任务进程,独立运行可执行文件,可使用不同编程语
言,可分布运行在不同主机)
创建节点:·编程接口初始化
·创建节点并初始化(给节点命名)#接口位置:功能包,文件名,main函数
·实现节点功能
·销毁节点并关闭接口
ros2代码更改:需进行编译才能更改install下的代码,对于简单的改动可直接在install
里进行
#话题
话题:连接节点的桥梁(发布、订阅模型,多对多通讯模型,异步通信机制,msg文件
定义的模型)
创建话题发布者:·创建接口初始化
·创建节点初始化
·创建发布者对象
·创建并填充话题消息
·发布话题消息
·销毁节点并关闭接口
查看订阅者与发布者的数量:ros2 topic info /image_raw
查看带宽:ros2 topic bw /image_raw
查看二者关系,并调试:rqt_graph
#服务
服务:节点间你问我答(客户端/服务器形式(CS模型),同步通信机制,服务器唯一,
客户端不唯一,.srv文件定义请求和应答数据结构)
创建客户端:·编程接口初始化
·创建节点初始化
·创建客户端对象
·创建并发送请求数据
·等待服务器端应答数据
·销毁节点并关闭接口
创建服务端:·编程接口初始化
·创建节点初始化
·创建服务器端对象
·通过回调函数进行服务
·向客户端反馈应答结果
·销毁节点并关闭接口
呼唤服务的两种方式:ros2 run learning_service service_object_client
ros2 service call /get_target_position learning_interface/srv/GetObjectPosition "get: True"
#通信接口
通信接口:数据传递的标准
#动作
动作:完整行为的流程管理(CS模型,同步通信机制,服务器唯一,客户端
不唯一,.action文件定义通信接口的数据结构)
#参数
参数:机器人全局字典(可以在多个节点里共享数据,由键与
值构成,可实现动态监控)
查看参数: ros2 param list(获得参数所在路径)
得到某个参数值:ros2 param get <参数所在路径> <参数名称>
改动某个参数值:ros2 param set <参数所在路径> <参数名称> <新值>
保存某个参数值:ros2 param dump <参数所在路径> >> <保存的文件名.文件类型>
#DDS
DDS:机器人的神经网络(数据分发服务)
ros2中DDS的核心特性:·每个原则都有对应的系统默认值
·可以使用DDS厂商提供的配置工具修改QoS的设置
·多商家的QoS可以并存
要求:pub与sub处于同一节点,通讯机制相同
在命令行中配置DDS参数:$ ros2 topic pub /chatter std_msgs/msg/Int32 "data: 32" --qos-reliability best_effort #chatter发布者通讯机制设置
$ ros2 topic echo /chatter --qos-reliability reliable
$ ros2 topic echo /chatter --qos-reliability best_effort #chtter接受者通讯机制设置
$ ros2 topic info /chatter --verbose #查看chatter的DDS配置