机器人操作系统
第一章
模拟器:Gazebo
学习:机械设计、电路设计、嵌入式编成等
安装:https:/ / github. com/ qboticslabs/ learning robotics 2nd_ ed
ros是什么:开发包的集合,是原操作系统
ros特点:
- 消息接口:内部通讯
- 硬件抽象:
- 包管理:ros节点以包为单位组织(package),一个包由源码、配置文件、编译文件构成。
- 第三方库集成:opencv, PCL, OpenNI
- 低级设备控制: I/O端口
- 分布式计算:将计算分布在多个计算节点上
- 代码复用
- 语言依赖:python, C++
- 易测试: 测试包
- 易扩展
ros能力:
- 机器人导航
- 机器人定位
- 建图
- 操纵
概念
ros文件系统:文件组织
- 包: package
- 包的清单文件: package.xml
- 消息类型:*.msg
- 服务类型: *.srv
ros计算图:处理数据的端到端系统网络 - 节点(Node): 一个节点代表一个进程,使用ros函数处理数据
- 主程序(Master):主程序连接组织各节点
- 参数(Parameter): 是个静态值放在全局位置
- 话题(topic): 一个命名的总线用于节点间通信。在话题上发送消息叫做发布,在话题上接收数据叫做订阅。
- 借助topic搭建发布/订阅通信模式是一种一对多通信服务(一个话题可以被多个节点订阅)
- 消息(Message): 一个数据类型,该类型由一些原始数据类型构成。数据类型在话题中流动,而且一个话题一次只能发送或接收一种消息
- 服务(Service): 通信方式/模式,同话题一样要定义消息类型
- 交互式的要求/回复模式:将服务要求发送给一个提供该服务要求的节点,服务结果作为回复内容再被发送。所以回复结果的节点必须等待直到其他节点接收到回复结果
- 包(bag): 保存和回放话题的格式要求, 访问数据的格式要求
获取ros工具和命令
source /opt/ros/kinetic/setup.bash
搭建包/构建(package)系统:catkin,cmake, python setuptools
catkin系统使源码生成可执行文件和共享库wiki.ros.org/catkin 针对一个单独的包进行构建
- 创建catkin工作空间
mkdir -p ~/catkin_ws/src - 在src里建立package, 在这之前初始化catkin工作空间
cd ~/catkin_ws/src
catkin_init_workspace - 建立package(即使没有源文件)
cd ~/catkin_ws/
catkin_make
创建ros package:
package包含两个节点,通信方式topic, message类型:string, 数据:hello world
构建工具:colcon(ros2 humble版), catkin_make, catkin_tools
按照依赖关系依次调用构建系统完成一系列包的构建
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 和其光, 同其尘!
评论
ValineDisqus