[无人驾驶系列] 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. WEB客户端和服务器
  2. 解决flex4 分辨率自适应问题
  3. 在Android设备部署PyTorch模型
  4. C++实现虚拟内存页面置换算法(FIFO, OPT, LRU)
  5. ThinkPHP RBAC如何自动获取所有模块的函数
  6. 【前端必备】七、页面性能优化
  7. php转换编码去掉bom,UTF-8编码怎么去掉BOM头?
  8. Spring MVC学习总结(20)——SpringMVC传参总结
  9. n个数中的最大值和最小值
  10. sharelatex在centos 6.7 64位上的部署(1)
  11. Android app修改IMEI号
  12. Windows电脑电源选项开启“卓越性能”模式
  13. Samba共享文件夹Windows中拷贝文件拒绝访问
  14. 新域名 @live.com 和 @windowslive.com 即将上线 (from cnbeta)
  15. python画成绩正态分布图_R统计学(09): 正态分布 (二)
  16. Complier Validation via Equivalence Modulo Inputs
  17. 百度富文本编辑器  ueditor 的基本使用
  18. ABAP 创建及修改采购申请
  19. # 机械设备故障的靶向迁移诊断与OpenAI分析
  20. RabbitMQ在windows10环境下安装步骤

热门文章

  1. 水果店线上做活动方案,水果店线上运营策划方案
  2. java 生成印章 图章
  3. 为什么电源纹波那么大?
  4. DevicePolicyManagerService之DeviceAdmin
  5. 华展云助力2017“节博会”
  6. 信息安全意识培训详解
  7. 常见软路由 NAS 低功耗处理器的对比 截至2020-12 英特尔
  8. How to use Clang Static Analyzer
  9. 平均 15189 元!2021 年 3 月程序员工资统计新出炉
  10. MATLAB和SIMULINK硬件支持包安装的问题总结