本人小白一枚,在这里先简单的讲一下我适配小车环境的过程,下面主要是讲从编译autoware完成——到根据自己小车修改autoware源码——然后修改雷达和小车底盘节点中的话题名称——环境适配完成的过程。为各位适配autoware提供一些思路
#讲的比较粗糙,主要是为各位提供适配自己的小车的思路过程而已,有什么不懂的话可以在下面提出,我看是否有必要单独详细的讲一下。
1. 安装编译autoware环境:
这一步就不讲了,百度一搜一大堆,遇到一些编译包报错就百度一下就可以了。前期cuda环境有问题,可以先不用cuda编译,先体验一下autoware功能再说,不必要为环境这个浪费太多时间精力,小白来说还是能用就行
如果cuda版本是10.0以上的,需要修改autoware_build_flags-extras.cmake文件,把cuda限制条件修改一下即可。
2. 修改autoware小车的长、宽、轮距、轴距、最小转弯半径等重要尺寸参数
一般需要把autoware源码中所有包含这些参数的每个文件修改才行,利用sublime text软件打开源码src文件夹,然后在文件夹搜索wheel字眼可以把包含wheel字眼的文件全部找出来,然后一个个看着修改即可,最好是把所有包含这些参数的文件都修改完成
wheel_radius: 0.125 //轮子半径
wheel_width: 0.040 /轮子的宽度
wheel_base: 0.322 //轴距
wheel_tread: 0.322 //轮距
vehicle_mass: 5000.0
vehicle_length: 0.450 //小车长度
vehicle_width: 0.350 //小车宽度
vehicle_height: 0.350 //小车高度
minimum_turning_radius: 0.75 //转弯半径
maximum_steering_angle: 97.3 #deg
3.修改雷达屏蔽范围
雷达屏蔽范围我一般都是在雷达原始功能包上面屏蔽,在autoware上一般屏蔽范围一般设置成0或者一个很小的值。autoware有一些节点功能在上位机界面的每个节点的app里面可以调节雷达屏蔽范围,但是注意的是有一些屏蔽范围参数是隐藏在launch里面,这一点最坑,严重的话会导致无法避障。
在src/autoware文件夹里找到包含remove_points_upto参数的launch文件 ,把它改0或者偏小一点的值即可(autoware默认好像是屏蔽2米多的范围)
4.修改autoware的一些bug,具体可以参考我之前写的一篇文章,不修改的话是会影响避障的
Autoware小问题之二——避障的问题(不能避障的可以参考一下)
5.适配底盘:
本人不是通过can通讯控制底盘运动的,是输出线速度角速度给STM32,通过STM32来控制底盘运动的。
autoware中输出线速度和角速度的相关话题为/twist_cmd话题,所以注意的是小车底盘节点中要订阅这个话题,读取相关的速度信息后发送相关信息给STM32,stm32通过串口通讯来读取线速度角速度后经过一定的处理后,控制电机运动。
(stm32与ros之间的通讯程序需要自己去实现)
6.适配雷达:
雷达话题需要固定为/points_raw ,话题frame id 为:velodyne,这个在雷达原始功能包上面改一下就可以了
7.最后编译一下就可以了,后面的你就可以不用修改源文件了,只需要在autoware自带的界面中修改运行一些节点和参数就可以了,这个看后面简单介绍一下吧