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

项目要求,在已有的ROS架构下,读取车速并发出topic。


Part 1: 理论部分

1. CAN总线及解析

准备工作:
1. CAN分析仪:型号CANalyst-II Linux版
2. 车辆 CAN Matrix
3. ROS编译完成的工作空间

2. ROS文件系统级

详细描述参考ROS Tutorials相关内容

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文件中, <depend> 显示了该安装功能包时所需依赖, <export> 显示了系统所需编译标志及所引用的头文件。

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总线节点

2.2 通过CANBUS节点收发车速信息

2.3 从开发环境向现有硬件平台集成

确保包的结构一致,复制完成后,catkin_make

猜你喜欢

转载自blog.csdn.net/linus1994/article/details/80983796