无人驾驶-室内外循迹运行

1. 前言

好多初创公司公布出来的视频明显都是循迹的效果,不是说循迹不好,相反可以证明,循迹是自动技术开始的第一步。

自动驾驶循迹:一种能够自动按照给定的路线(通常是采用不同颜色或者其他信号标记来引导)进行移动的车。

真车寻迹

真车寻迹与仿真寻迹类似,差别在于仿真定位采用事先记录的数据,真车定位采用实际的激光雷达。

2. 真车循迹

2.1 打开runtime manager

2.2 启动激光雷达

1)针对velodyne 多线lidar

如果你有velodyne激光可以启动默认配置:[Sensing] 页面下 [Lidars] 选项下针对你的velodyne选择,velodyne激光对应的发布的点云topic:/velodyne_packets,frame_id:velodyne,topic会被重映射成为/points_raw。

例如:假如你有16线激光,点选 [velodyne VLP-16] 的 [config],点选[ref],加载/home/pix/Autoware/ros/src/sensing/drivers/lid ar/packages/velodyne/velodyne_pointcloud/param s/VLP16db.yaml路径下的配置文件(自己多线激光雷达可以针对这个配置改写),退出 [config],勾选 [velodyne VLP-16] 选项(一般的操作都是先修改config或者app下的配置或参数文件,然后勾选选项)。

 查看点云输出。

2)针对其他品牌多线lidar

如果你有其他品牌的激光,他们发布的topic不是/velodyne_packets,且frame_id同样不对应,这时可以自己写个程序转一下,参照:https://www.cnblogs.com/hgl0417/p/11067660.html。然后单独运行你的lidar driver node,将你的点云数据模拟成velodyne数据。此时,不需要点选runtime manager上的lidar配置文件(每个配置文件对应一个package或者node,意义在于将对应的topic发布,此时你已经发布了topic,所以不需要在点选上述配置文件)。

2.3 加载world到map以及base_link到velodyne的TF变化,加载地图

1) 设置从base_link到velodyne坐标系的TF

在 [Setup] 菜单中,确保 [Localizer] 下选项为 [Velodyne],在 [Baselink to Localizer] 中设置好各个参数之后点击 TF 按钮,其中x、y、z、yaw、pitch、roll表示真车雷达中心点与车身后轴中心点的相对位置关系(右手坐标系,真车后车轴为原点),此时可以点击[Vehicle Model],如果[Vehicle Model]为空,那么会加载一个默认模型(在rviz显示时,如果有激光雷达数据,车辆会显示为黑色)。如下图:

2)设置从world到map转换

点击 [Map] 页面,点击 [TF] 的 [ref] 选择 autoware/ros/src/.config/tf/tf_local.launch 文件,这是加载默认world到map的坐标转换,打开tf_local.launch文件如下:  

<launch>

    <node pkg="tf" type="static_transform_publisher" name="world_to_map" args="0 0 0 0 0 0 /world /map 10" />

</launch>
 args的参数“0 0 0 0 0 0 /world /map 10”表示:从/world坐标系转换到/map坐标系的x, y, z, roll, pitch, yaw转换,且频率为10Hz。

点击 [TF] 按钮,如下图:   

(2)加载地图

选择runtime manager的 [Map] 菜单,点击 [Point Cloud] 按钮的 [ref],加载培训笔记 No. 1产生的.pcd文件(点云地图),并点击 [Point Cloud] 按钮,进度条显示OK,则加载完毕,如下图:

2.4 设置相关滤波器

 选择 [Sensing] 页面,点击 [Points Downsampler] 下 [voxel_grid_filter] 的 app,设置一些参数,[voxel_grid_filter] 是一种将采样方法,将点云数据用质心近似(用于降采用),如下图:

这里,[Voxel Leaf Size] 参数值为2,意义是2米的立方体内的全部点近似用1个质心代替。[Measurement Range]的参数值为2,意义是点云的有效的距离为200米。 

在[Sensing] 菜单下的 [Points Preprocesser] 下 [ring_ground_filter],[app]设置如下:

             

[ring_ground_filter]用于区分地面与障碍物。参数描述如下:

[Sensor Model]参数为激光雷达的线扫条数,我们项目用的是16线激光雷达,这里我们选16;

[Sensor Height]参数表示传感器距离地面高度;

[Max Slope]表示最大的坡度,根据Alex如果不给出好坡度,容易将坡识别为障碍物;

[Vertical Thres]表示障碍物和地面的差异度,如果大于这个值则被认为是障碍。

2.5 设置导航

1)在 [Computing] 菜单栏右侧 [Mission Planning] 中勾选 [lane_rule],[lane_stop],[lane_select] 三个选项,如下图:

[Acceleration]表示到达/通过停止线的加速度;

[Stopline Search Radius]表示搜索停止线圆心,半径1m的waypoints;

2)在菜单栏 [Computing] 右侧的 [astar_planner] 下的 [obstacle_avold], [velocity_set] 并勾选,如下图:

[obstacle_avold]表示避障的相关参数;

[velocity_set]表示避障速度设置的相关参数。

3)在菜单栏 [Computing] 右侧的 [waypoint_maker] 下的 [waypoint_loader] 加载waypoints。

4)在 [Computing] 菜单栏,找到 [waypoint_follower] 下 [pure_pursuit] 与 [twist_filter] 的 [app] 进行设置并勾选。

在 [Computing] 菜单栏,找到 [lidar_localizer] 下 [ndt_matching]的 [app] 进行设置并勾选。

在 [Computing] 菜单栏,找到 [autoware_connect] 下 [vel_pose_connect]的 [app] 进行设置并勾选。

autoware循迹配置已完

3. 启动底盘连接

我这里是将autoware生成的速度、航向角数据信息通过rostopic下发给STM32模块处理,分别控制四轮转向驱动,也可以通过can下发给车的底盘。

4.室内外循迹效果,如下图:

停车场循迹效果如下:

无人驾驶从初学到精通,基于Autoware开源系统带你畅游自动驾驶SLAM、感知、定位、决策、路径规划、执行等关键模块。

具体代码请联系QQ:574226409 WX:18682265246

  • 9
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值