ROS系统
ROS=通信机制+开发工具+应用功能+生态系统-->提高软件复用率
通过两种不同的方式进行通讯:
1.TOPIC异步通信:publish and subscribe between publisher and subscriber nodes by message under the ROS moaster registration模式。节点关系:多对多。多用于数据传输
2.SERVICE同步通信:request and response between servicer and client nodes by message under the ROS moaster registration模式。节点关系:一对多。多用于逻辑处理
参数:全局共享字典。
元功能包meta packages including package
最多只能找到在20.04Ubuntu安装ROS的教程,找不到在22.04上的,只好把22.04的卸载重新安装了。记住,vmware上的是20.04,virtualbox上的是22.04。
常用ROS命令:
rqt_graph基于qt可视化显示并且解释当前结点之间关系。
rosnode显示节点相关的信息,输入rosnode就会被提示相关的命令。例如rosnode list显示所有结点(不用关心rosout结点,因为这个节点是默认用来记录节点信的);rosnode info xx查看xx结点的信息.
rostopic显示相关话题的信息,输入rostopic就会被提示相关命令。例如rostopic list显示当前所有话题列表,rostopic pub给结点发布信息。
rosmsg查看节点信息。比如rosmsg show xx查看某个数据的结构与内容。
rosservice查看服务相关信息,例如resoservice list显示列表,rosservice call xx为节点创建一个service。
rosbag用于一次实验的记录与复原。记录:
将运行的数据存入xx之中,-a代表全部,-O代表放入xx之中。
复现:
即可复现。
ROS工作空间与功能包:
工作空间(存放工程开发相关文件的文件夹):
1.src代码空间(source space):放功能包
2.build:编译空间(build space)存放编译好的二进制文件
3.devel:开发空间(development space)
4.install:安装空间(isntall space)
3.4作用相似,所以在ROS2中合为一体
功能包:储存源码的最小单元,源码必须放在这里,不能直接放入srd。
同一个工作空间不能有同名功能包,不同工作空间可以有同名功能包。
功能包中四个文件:
1.src放置源码
2.include放置头文件
3.cmakelist.txt描述编译语法
4.package.xml包含功能包描述信息,作用描述,开源许可证,作者信息以及功能包依赖等等,编译时会首先搜索依赖,看看是否已经具备
想执行功能包,要先配置环境变量(在catkin_ws中):
随后检查环境变量:
实现Publisher:
1.在工作空间创建功能包
2.在功能包的src中创建源代码
3.源代码包含:初始化结点,注册节点信息,创建消息,发布消息
4.配置编译文件
5.编译文件
6.设置环境变量(也可以选择把这个命令放入隐藏的配置文件夹.bashrc中去)
7.运行!
实现Subscriber:
同上
用opencv创建摄像头:(51条消息) ROS教程(五):OpenCV调用USB摄像头并发布topic(详细图文)_Leslie___Cheung的博客-CSDN博客_opencv调用usb摄像头
实现Client与Server:
与publisher,subscriber类似
参数字典:
相当于一个储存各个节点的参数的空间。
查看,修改的方法:1.用rosparam命令行查看并修改;2.用程序在工作空间中进行修改与查看。
具体请查看古月居的ppt。
ROS之坐标管理系统tf:
用launch便捷启动:
关于ROS2:
安装ROS2入门教程——2. Ubuntu20.04安装ROS2 Foxy - 古月居 (guyuehome.com)
教程ROS2安装方法 - ROS2入门教程 (guyuehome.com)
我的ubuntu上shell是sh,不是bash或者zsh,所以
要改成
(查错可费老鼻子劲了)
用python语言实现节点要在功能包的setup.py文件中添加接口,
如上。注意,接口等号前后都要做修改,等号右边功能包名和节点名都要改。没改全导致我花了整整一天。。。
__EOF__

本文链接:https://www.cnblogs.com/-ark/p/16556618.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了