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 格式最后发布,即可实现对底盘的控制。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值