欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-03-05 16:53:18
...

项目要求,在已有的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

相关标签: 自动驾驶