中国大学MOOC 中科院软件所《机器人操作系统入门》笔记

本文深入探讨了ROS(机器人操作系统)的框架结构、工具及功能,包括分布式节点架构、gazborvisslam控制规划、视觉建图技术、软件包管理和社区资源。详细介绍了工程结构如catkin编译系统、workspace组织、pkg包管理、自定义通信格式,以及topic、service、parameter三种主要的通信方式。同时,提供了丰富的指令和实践案例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、ROS 框架+工具+功能+社区(生态)
分布式架构 节点为进程
gazbo rvis slam
控制 规划 视觉 建图
软件包管理 apt-get(包管理工具)

ROS学习软件包:1、ROS官网的ROS Wiki 有各种文档 资料 教程
2、github ros相关的源代码都在上面

软件包的两种安装方式:
1、apt-get 二进制的安装方式 安装好后可以直e接使用 不会看到软件的源代码
2、另一种是源代码包 需要编译之后才能运行

二、工程结构,就是文件系统
catkin 是编译构建系统 也就是对代码进行编译的工具
rosbuild 老旧的一套编译系统 移植性不好

workspace:
src 自己建的 放代码包pkg(下面的是catkin_make生成的)
build 放cmake缓存文件和中间文件等
devel 放生成的目标文件

pkg:
cmakelisits:规定catkin编译规则
package.xml:自我描述 (rosbuild生成的是manifest.xml)
源代码
scripts:。py。sh
include:。h
src:。cpp/。py
自定义通信格式/内容
srv:
msg:
action:
其他
launch:一次性运行多个可执行文件
config:。yaml

指令
rospack find
rospack list
roscd
rosls
rosed (vi?)
catkin_create_pkg
rosdep install

三、metabackage
虚包,方便人们安装,通过依赖装一个等于装所有

四、通讯架构
roscore 启动ros master
rosrun [pkg_name][node_name] 启动一个node
roslaunch [pkg][file.launch] 启动master和launch里所有的node
管理node 可以看到消息收发和功能
rosnode list
rosnode info [node_name]
rosnode kill [node_name]

通信方式
1、topic(string) pubulish-subscribe
异步:发布者只管发布,不管返回状态;订阅者有消息就订阅,没消息就干别的
数据类型:message 或者说是数据规范 类 数据内容 对象 “类和对象”
类型定义:pkg/.msg
rostopic list
rostopic info/echo/pub /topic_name
rosmsg list
rosmsg show /msg_name
echo:显示某topic的内容
深度图+rgb+点云????? 定位 建图 识别
kinect相机范围1m-2/3m左右
××这一讲差一点指令应用 大概最后几分钟

2、service request-reply
同步:提供一个服务 client调用服务才会计算 不调用就不执行
远程过程调用RPC 偶尔需要的任务用service
数据格式:/.srv里定义
只能嵌套msg文件 (可以自定义 要在pkg.xml里添加依赖和在cmakelist里添加一些东西)
rosservice list
rosservice info service_name
rosservice call service_name args
srv是service的类型 就像msg是topic的数据类型 一般是request — reply
rossrv list
rossrv show srv_name

调用一个service:
info这个service 可以查到是由哪个node提供的服务和数据类型srv(type)
show一下这个srv的内容 知道要用什么样的格式request reply的又是什么
再用rosservice call 这个service 参数是show里看到的request里写的(也可以用tab提示)
也就是show的作用 就是让你知道call时最后的参数args 比如
$ rosservice call /gazebo/delete_light sun

3、parameter service
参数服务器 存的是字典 key对应的value 一些不怎么改动的配置参数可以放在这里面
rosparam list
rosparam get param_key
rosparam set param_key param_value
rosparam dump file_name
rosparam load file_name
rosparam delete param_key
get相当于info
dump 保存参数到文件 load 从文件读取参数 参数都是yaml格式的
launch文件里也涉及参数的读写 param设定标签后交给参数服务器维护 rosparam读取yaml格式的文件 相当于rosparam load
还一种是API里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值