[无人驾驶系列] autoware与底盘CAN通讯实现

本文介绍在使用autoware时,如何将autoware发送的消息传输给底盘,实现对线控底盘的控制。

准备工作:
1、系统具备ROS和autoware
2、根据之前的教程安装好了ros_canopen

1、订阅话题

话题:/vehicle_cmd
消息类型:autoware_msgs/VehicleCmd

在这个消息类型中有很多的数据,控制线控底盘仅需取x轴方向的线速度和z轴方向的角速度。
线速度(m/s)、角速度(rad/s)

speed_ms = twist_cmd.twist.linear.x;
omega = twist_cmd.twist.angular.z;

获取线速度和角速度后计算出转弯的角度和车辆行驶速度:

 /* 计算过程转弯的角度 = arctan(( 角速度 / 线速度 ) × 车长 ) ;线速度(km/h) = 线速度(m/s) × 3.6 ;*/steer_degree = atan((-omega/speed_ms)*1) * 180/3.14;speed_value = (speed_ms * 3.6);

2、发布话题(发布CAN数据)

话题:/sent_messages
消息类型: firecar_can/Frame

在 std_msgs/Header header 的数据格式中,主要是给 id dlc data 赋值再发布数据,具体所需传递的 id 和 data 根据线控底盘的can协议取值。

3、canopen/Frame消息格式

Header header
uint32 id
bool is_rtr
bool is_extended
bool is_error
uint8 dlc
uint8[8] data

总结:将 autoware_msgs/VehicleCmd 消息转换为 canopen/Frame 格式最后发布,即可实现对底盘的控制。

AUTOWARE下底盘CAN通讯实现相关推荐

  1. b/s模式下的即时通讯,使用ajax框架dwr实现

    b/s模式下的即时通讯,使用ajax框架dwr实现 了解java的发展史可以知道,客户端编程在基于浏览器的编程方面,以前的做法是用applet实现客户端编程,在当时算是流行的做法,但是随着IE的不一致 ...

  2. 中断方式下进行串口通讯的正确方法

    转载:http://bbs.ednchina.com/BLOG_ARTICLE_277752.HTM 中断方式下进行串口通讯的正确方法 一般普遍的把串口通讯分为查询方式和中断方式.查询方式比较容易理解 ...

  3. 基于Linux下的即时通讯聊天室项目(全代码 有注释 可直接运行)

    基于Linux下的即时通讯聊天室项目 一.序言 二.具体功能 三.系统客户要求 四.具体代码 1.服务器代码 2.客户端代码 一.序言 最近在写一个基于Linux下的聊天工具 它适合于局域网内所有人进 ...

  4. 关于嵌入式linux下的串口通讯问题---回车、换行、缓冲

    嵌入式Linux串口通讯测试问题:   经过实验,从Linux(PC)通过串口向嵌入式Linux开发板发送数据时,串口初始化完毕后遇到回车(0x0d)或换行(0x0a)才开始从串口接收数据,回车或换行 ...

  5. tcp通讯 怎么进行安全认证_西门子PLC在博图环境下进行TCP通讯详解

    对于做工控设备的人员来说,精通各种通讯协议的使用是必不可少的,通讯协议就像语言一样,只有双方都约定好了协议之后,我才能知道你想做什么以及你需要什么,反之同理.这几天做了一个项目,是博图环境下使用西门子 ...

  6. autoware下ndt_mapping节点解读

    利用激光雷达进行建图,首先需要得到稠密点云,然后进行体素滤波进行过滤得到包含特征的点云数据.接着利用每一帧扫描的点云地图进行ndt配准逐帧拼接,最后能够得到激光雷达扫描路径下的整体点云地图. ndt_ ...

  7. linux系统读取plc状态,Linux系统下上位机通讯协议及PLC冗余系统组态-工业支持中心-西门子中国...

    最近要做一套高可靠性的自动化控制系统,而且上位机(PC)要采用Linux系统.有一些组网的问题想请教大家.(第一次用西门子PLC,可能问的问题不够清晰,见谅)感谢大家的耐心回答. 图1中: 1. PC ...

  8. linux下实现串口通讯

    1.关键结构体 (1)struct termios                 { unsigned short c_iflag;             /* 输入模式标志*/          ...

  9. ROS环境下的串口通讯

    目录 1.前言 2.内容 2.1 准备工作 2.1.1 连接外部USB设备 2.1.2 串口调试工具的下载 2.1.3 serial库的安装 2.2 代码部分 2.2.1 编写发布节点 2.2.2 编 ...

最新文章

  1. python编程语言一览_编程语言学习:python有趣用法汇总
  2. Windows 8.1 build 9369 简单安装测试了一下
  3. 阿里 BladeDISC 深度学习编译器正式开源
  4. Office12的新文件格式
  5. zepto为什么不支持animate,报animate is not a function
  6. cpu与简单模型机设计实验_180套经典夹具设计方案(附详解+模型),原来夹具设计这么简单!...
  7. AMPL 简单运输模型
  8. 刚刚,神舟十三号载人飞船即将撤离空间站核心
  9. 9.9 单片机蜂鸣器
  10. 按键精灵助手无法连接模拟器解决方案【适用任何模拟器】
  11. 仿XP画图板开发-解决布局问题
  12. 42条风景优美至今基本完整的宁波古道(转)
  13. 8句极易踩中买家雷点的口头禅,你中了哪几条?
  14. 怎么提取伴奏?只要三招即可快速搞定,附带详细教程
  15. HDU6287 口算训练(唯一分解定理+二分)
  16. (面向对象)员工信息管理系统 1.当有新员工的时候将员工加入到管理系统 2.可以根据工号实现对该员工信息查询 3.可以现实查看所有员工信息 4.可以修改员工的薪水
  17. jupyterlab:Failed to load the jupyterlab-git server extension问题如何解决?
  18. 看不见的共享电单车战争
  19. leaflet实现自定义线、矩形和扇形的绘制
  20. MicroServices(5)---DevOps用户手册

热门文章

  1. 7教程统计意义_假设检验|第一章:为什么我们需要在统计学中使用假设检验
  2. 关于RuoYi自动代码生成功能的使用
  3. oracle高级函数去重,傅老师课堂:Oracle高级应用之去重聚合函数
  4. linux下安装qwt
  5. 微信刷阅读量php源码,微信刷阅读量软件工具
  6. 【软件体系结构】考点总结 第三章 软件体系结构风格 XJU
  7. JavaWeb:Tomat的安装
  8. Unity调用Face++ 人脸识别 Detect API
  9. 山寨文化的博弈论解读
  10. cca matlab代码,CCA的matlab小实验