一:序言
采用纯跟踪算法可以获取车辆前轮转角和踏板率等速度信息,但实际工程项目中还需要结合自身车辆通信协议等等,完成信息传输后才能真正完成车辆的自主运动,这篇文章对我的实验车辆相关通信进行一个讲解。
有对这个项目感兴趣或者想学习ROS,C++的可以参考这篇文章
无人车采用纯跟踪算法跟随离线路径(ROS,C++实现)第一部分
二:原理讲解
试验车VCU与工控机进行通信采用UDP(User Datagram Protocol)作为通信协议。
UDP是一种无连接的、面向数据报的传输协议。它提供了一种简单、快速的数据传输方式,适用于那些对实时性要求较高、可容忍数据丢失的应用场景。
放部分我自己所获取的协议,实际上如果是做算法的这一块只需要知道怎么用这个协议完成底盘控制即可。
需要进行操作的部分代码如下:
vehicle_cmd_msg.head1 = 0XAA;
vehicle_cmd_msg.head2 = 0X55;
vehicle_cmd_msg.length = 10;
vehicle_cmd_msg.steering = 90;
vehicle_cmd_msg.brake_force = 0;
vehicle_cmd_msg.pedal_ratio = 0;
vehicle_cmd_msg.gear_position = 0;
vehicle_cmd_msg.working_mode = 0;
vehicle_cmd_msg.racing_num = 0;
vehicle_cmd_msg.racing_status = 0;
vehicle_cmd_msg.checksum = 100;
my_steering = 90;
my_brake_force = 0;
my_pedal_ratio = 0;
my_gear_position = 0;
my_working_mode = 0;
my_racing_num = 0;
my_racing_status = 0;
my_checksum = 100;
结合消息格式对每个数据进行赋值,同时通过ROS通信获取每个消息格式中所传输的车辆转角与踏板率
#三:总结
关于整套无人车跟踪离线路径的项目已经完成了基本难点,如果对整套ROS代码感兴趣的可以点击开头链接或者私信我,后续还会继续更新自动驾驶相关项目