第一章

模拟器: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): 一个命名的总线用于节点间通信。在话题上发送消息叫做发布,在话题上接收数据叫做订阅。
    1. 借助topic搭建发布/订阅通信模式是一种一对多通信服务(一个话题可以被多个节点订阅)
  • 消息(Message): 一个数据类型,该类型由一些原始数据类型构成。数据类型在话题中流动,而且一个话题一次只能发送或接收一种消息
  • 服务(Service): 通信方式/模式,同话题一样要定义消息类型
    1. 交互式的要求/回复模式:将服务要求发送给一个提供该服务要求的节点,服务结果作为回复内容再被发送。所以回复结果的节点必须等待直到其他节点接收到回复结果
  • 包(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

按照依赖关系依次调用构建系统完成一系列包的构建