ROS学习心得--CAN解析车速

项目要求,在已有的ROS架构下,读取车速并发出topic。
Part 1: 理论部分 1. CAN总线及解析 准备工作:
1. CAN分析仪:型号CANalyst-II Linux版
2. 车辆 CAN Matrix
3. ROS编译完成的工作空间
2. ROS文件系统级 详细描述参考ROS Tutorials相关内容
【ROS学习心得--CAN解析车速】ROS架构分为三个部分,分别为文件系统级,计算图级,开源社区级。
首先ROS文件系统结构为:

  • Workspace:工作空间。即ROS系统中的工程编译环境。包含三个文件夹build,devel,src.
    src文件夹
  • Packages: 功能包,是ROS系统中软件的基本组织形式,用来创建具体功能程序。
    官方释义:
    Packages are the software organization unit of ROS code. Each
    package can contain libraries, executables, scripts, or other
    artifacts.
其中包括以下文件夹
src/:存放程序源文件 CMakelist.txt :cmake生成文件

多个功能包可集成为一个功能包集(stack),本次项目暂未涉及
  • Manifests (package.xml): 功能包清单,描述文件,用来管理功能包。
    官方释义 :
    A manifest is a description of a package. It serves to define
    dependencies between packages and to capture meta information about
    the package like version, maintainer, license, etc…

xml文件中, 显示了该安装功能包时所需依赖, 显示了系统所需编译标志及所引用的头文件。 3. ROS计算图级
ROS 中的基本计算图级概念包括:节点、节点管理器、参数服务器、消息、服务、话题和包。这些概念以各种形式来提供数据。
  • Nodes:节点,是功能包中的一个可执行程序,节点之间可以相互通信。
  • Messages: 消息,是一种ROS数据类型,节点间通过消息互相通信。
  • Topics: 话题,用于识别消息的名称,节点可以发布[Publish]消息到话题,也可以订阅[Subscribe]话题以接收消息。
  • Master: 节点管理器,Name service for ROS (i.e. helps nodes find each other)
  • rosout: ROS系统中相当于stdout/stderr
  • roscore: Master + rosout + parameter server
Part 2: 实践部分 2.1 在ROS工作空间下建立CAN总线节点
  • creat pkg
2.2 通过CANBUS节点收发车速信息 2.3 从开发环境向现有硬件平台集成 确保包的结构一致,复制完成后,catkin_make

    推荐阅读