ROS2智能机器人开发实践-阅读分享7-ros2动作服务和参数
[复制链接]
ROS2智能机器人开发实践-阅读分享7-ros2动作服务和参数
一个action里面常常含有请求,响应,还有一个反馈来实时检测响应的情况。
ros2 run learning_action action_move_server
ros2 run learning_action action_move_client
可以看到这里有feekback传回来,具体的代码大家可以自己下载源码自己查看,如有不会可以使用ai辅助,如图其实我也使用了marscode来辅助。
介绍参数
参数是ros2的一个全局字典,常常用来配置参数。举例:我们有一个相机的初始化函数,但是我们手上可能有多种不同类型的相机,他们的分辨率不一样我们不可能再源码中来不断的修改数据或者为了其他相机重建一个源码,因此我们需要再运行代码的时候传进去一个分辨率参数使得代码调整,这是python和c++非常常见的手段。
我们直接启用小乌龟节点
ros2 run turtlesim turtlesim_node
ros2 run turtlesim turtle_teleop_key
我们可以看到param的命令行使用,我们讲背景设置成绿色了,但是我们如果重启小乌龟节点后有变成蓝色了,这是因为重启后使用的是默认参数,因此如果我们想配置参数。
ros2 param dump turtlesim >> turtlesim.yaml #将某个节点参数保存到参数文件里面
ros2 param load turtlesim turtlesim.yaml #加载参数
大家可以保存完参数后关闭小乌龟然后重启加载配置。
使用完命令行后我们自己的工作包该如何使用参数来进行配置呢?
ros2 run learning_parameter param_declare
ros2 param set param_declare robot_name turtle
我这里修改了以下代码(如图),源代码并没有修改参数,ok就这样了。
最后的最后,再多介绍一点分布式通信远程登录,我们一般情况下会在板端部署ros2但是我们的开发板一般性能较弱对于可视化的支持不好,我们常常会使用各种可视化工具因此我们需要远程登录开发板获得话题信息再电脑端可视化。
这里我们假设自己手上有开发板比如:树莓派,地平线rdk,泰山派等
我们需要这些开发板连接一个路由器,然后电脑也连接同一个路由器然后插卡板卡的ip,如图我以我的rdkx3为例子:
这时我们的虚拟机的网络模式一定要设置为侨联模式,然后尝试 ping 192.168.142.91
可以ping通那说明没有问题!!!
以上就是关于本书的第六次分享,分享内容多为书本内容,本人在此由于篇幅有限只是介绍核心内容,其实还有很多没有讲,书中的前面的基础都已经讲完了,后面会分享以下ros2的常用工具!!!已经看的有点小累了,虽然书写的挺好,这个的电子版也有, 本书使用说明 - 图书资源这本是古月居写的,可以在他们的官网看见,想要实体书的可以直接买。
|