AUTOWARE下底盘CAN通讯实现
[无人驾驶系列] 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通讯实现相关推荐
- b/s模式下的即时通讯,使用ajax框架dwr实现
b/s模式下的即时通讯,使用ajax框架dwr实现 了解java的发展史可以知道,客户端编程在基于浏览器的编程方面,以前的做法是用applet实现客户端编程,在当时算是流行的做法,但是随着IE的不一致 ...
- 中断方式下进行串口通讯的正确方法
转载:http://bbs.ednchina.com/BLOG_ARTICLE_277752.HTM 中断方式下进行串口通讯的正确方法 一般普遍的把串口通讯分为查询方式和中断方式.查询方式比较容易理解 ...
- 基于Linux下的即时通讯聊天室项目(全代码 有注释 可直接运行)
基于Linux下的即时通讯聊天室项目 一.序言 二.具体功能 三.系统客户要求 四.具体代码 1.服务器代码 2.客户端代码 一.序言 最近在写一个基于Linux下的聊天工具 它适合于局域网内所有人进 ...
- 关于嵌入式linux下的串口通讯问题---回车、换行、缓冲
嵌入式Linux串口通讯测试问题: 经过实验,从Linux(PC)通过串口向嵌入式Linux开发板发送数据时,串口初始化完毕后遇到回车(0x0d)或换行(0x0a)才开始从串口接收数据,回车或换行 ...
- tcp通讯 怎么进行安全认证_西门子PLC在博图环境下进行TCP通讯详解
对于做工控设备的人员来说,精通各种通讯协议的使用是必不可少的,通讯协议就像语言一样,只有双方都约定好了协议之后,我才能知道你想做什么以及你需要什么,反之同理.这几天做了一个项目,是博图环境下使用西门子 ...
- autoware下ndt_mapping节点解读
利用激光雷达进行建图,首先需要得到稠密点云,然后进行体素滤波进行过滤得到包含特征的点云数据.接着利用每一帧扫描的点云地图进行ndt配准逐帧拼接,最后能够得到激光雷达扫描路径下的整体点云地图. ndt_ ...
- linux系统读取plc状态,Linux系统下上位机通讯协议及PLC冗余系统组态-工业支持中心-西门子中国...
最近要做一套高可靠性的自动化控制系统,而且上位机(PC)要采用Linux系统.有一些组网的问题想请教大家.(第一次用西门子PLC,可能问的问题不够清晰,见谅)感谢大家的耐心回答. 图1中: 1. PC ...
- linux下实现串口通讯
1.关键结构体 (1)struct termios { unsigned short c_iflag; /* 输入模式标志*/ ...
- ROS环境下的串口通讯
目录 1.前言 2.内容 2.1 准备工作 2.1.1 连接外部USB设备 2.1.2 串口调试工具的下载 2.1.3 serial库的安装 2.2 代码部分 2.2.1 编写发布节点 2.2.2 编 ...
最新文章
- WEB客户端和服务器
- 解决flex4 分辨率自适应问题
- 在Android设备部署PyTorch模型
- C++实现虚拟内存页面置换算法(FIFO, OPT, LRU)
- ThinkPHP RBAC如何自动获取所有模块的函数
- 【前端必备】七、页面性能优化
- php转换编码去掉bom,UTF-8编码怎么去掉BOM头?
- Spring MVC学习总结(20)——SpringMVC传参总结
- n个数中的最大值和最小值
- sharelatex在centos 6.7 64位上的部署(1)
- Android app修改IMEI号
- Windows电脑电源选项开启“卓越性能”模式
- Samba共享文件夹Windows中拷贝文件拒绝访问
- 新域名 @live.com 和 @windowslive.com 即将上线 (from cnbeta)
- python画成绩正态分布图_R统计学(09): 正态分布 (二)
- Complier Validation via Equivalence Modulo Inputs
- 百度富文本编辑器 ueditor 的基本使用
- ABAP 创建及修改采购申请
- # 机械设备故障的靶向迁移诊断与OpenAI分析
- RabbitMQ在windows10环境下安装步骤