Autoware部署二:录制航迹点并进行航迹点导航

定位建图最终都是为导航服务的,当把地图建立出来并且机器人知道自己在地图的什么位置,这样才能更好更有针对性的规划一条较优的轨迹到达目标点,才不会盲目的搜索路径,影响规划效率。

1、录制航迹点

1.1 启动autoware和开启gazebo仿真模拟
roslaunch runtime_manager runtime_manager.launch
roslaunch vehicle_gazebo_simulation_launcher world_test.launch

注:记得要先开autoware再开gazebo,主要是为了统一时间戳,否则时间戳会出错,导致tf变换报错,无法进行后续工作。

在这里插入图片描述

1.2 定位

定位还是使用ndt-matching定位,与前一章一样。再写一遍,比较好理解。

1.2.1 base_link 到 velodyne坐标变换

选择setup页面,驱动Localizer选择的是velodyne,设置tf,tf是激光雷达相对于车体中心的坐标变换。这一步其实在打开gazebo的时候就已经自动生成了,其实可以不需要。但是如果是跑simulation的话这一步是需要的。
在这里插入图片描述

1.2.2. 加载地图+world到map坐标系变换

在这里插入图片描述

切换到Map页面,point cloud是加载建图生成的pcd文件,tf则是做world到map的坐标变换,vector map是加载矢量地图。后续会用到。

1.2.3.进行原始点云的滤波处理

Sensing最终配置如下图:
在这里插入图片描述
Voxel_grid_filter是体素滤波器,将一定范围内的点近似的看成是一个点,减少数据量,效率更高。Voxel Leaf Size参数设置为0.5,代表0.5米立方体内的电云都用一个重心点近似代替。Measurement Range参数为200,表示点云的有效距离为200米。
在这里插入图片描述

Ring ground filter作用是进行地面点的滤波,得到去除地面点的数据,发布的话题为/points_no_ground。Sensor Height为激光雷达距离地面的安装高度,Max Slope表示小于10°的坡会被认为是地面点,也会被滤除。Vertical Thres表示障碍物和地面的差异度,如果大于此值则被认为是障碍物。
在这里插入图片描述

1.2.4.启动ndt-matching定位

切换到computing页面,最终配置如下图:
在这里插入图片描述

点击lidar_localizer下ndt-matching进行配置,Initial Pos表示激光雷达初始位姿与建图时的初始位姿变换,如果有gnss数据可以使用gnss进行初始定位。其他默认。
在这里插入图片描述

启动vel_pose_connect,确定为勾选Simulation Mode
在这里插入图片描述

1.3.录制轨迹点

整个录制轨迹点的最终配置图:
在这里插入图片描述

切换到computing页面下,点击waypoint_maker下的waypoint_saver,里面可以配置保存的路径和名称。其中Save/current_velocity Interval表示采样的间隔,默认是1米的间隔。记得waypoint_saver重复勾选跟取消,因为他勾选是写入文件的动作,不是重新覆盖文件,重复勾选会导致得到的csv文件有重复的想,x,y,z,yaw等标识信息。会导致之后的解析csv文件有误。
在这里插入图片描述

1.4. 最终录制轨迹点显示

Rviz中选择左下角的Add按钮,选择By topic按钮,找到/waypoint_saver_marker话题。订阅此话题,rviz就能限制刚刚录制的轨迹点,可以看到每个点所保存的速度信息。
在这里插入图片描述

2.寻迹导航

根据上一节所录制的轨迹点进行导航。实现轨迹点跟踪导航。

2.1. 启动autoware和开启gazebo仿真模拟
roslaunch runtime_manager runtime_manager.launch
roslaunch vehicle_gazebo_simulation_launcher world_test.launch

注:记得要先开autoware再开gazebo,主要是为了统一时间戳,否则时间戳会出错,导致tf变换报错,无法进行后续工作。
在这里插入图片描述

2.2. 定位

world坐标系到map坐标系是由Map选项里的TF发布的,base_link到velodyne坐标系是由gazebo仿真发布的,map到base_link坐标系则是由ndt-matching发布的。

2.2.1.base_link 到 velodyne坐标变换

选择setup页面,驱动Localizer选择的是velodyne,设置tf,tf是激光雷达相对于车体中心的坐标变换。这一步其实在打开gazebo的时候就已经自动生成了,其实可以不需要。但是如果是跑simulation的话这一步是需要的。
在这里插入图片描述

2.2.2.加载地图+world到map坐标系变换

在这里插入图片描述

切换到Map页面,point cloud是加载建图生成的pcd文件,tf则是做world到map的坐标变换,vector map是加载矢量地图。后续会用到。

2.2.3.进行原始点云的滤波处理

Sensing最终配置如下图:
在这里插入图片描述

Voxel_grid_filter是体素滤波器,将一定范围内的点近似的看成是一个点,减少数据量,效率更高。Voxel Leaf Size参数设置为0.5,代表0.5米立方体内的电云都用一个重心点近似代替。Measurement Range参数为200,表示点云的有效距离为200米。

在这里插入图片描述

Ring ground filter作用是进行地面点的滤波,得到去除地面点的数据,发布的话题为/points_no_ground。Sensor Height为激光雷达距离地面的安装高度,Max Slope表示小于10°的坡会被认为是地面点,也会被滤除。Vertical Thres表示障碍物和地面的差异度,如果大于此值则被认为是障碍物。
在这里插入图片描述

2.2.4.启动ndt-matching定位

切换到computing页面,最终配置如下图:
在这里插入图片描述

点击lidar_localizer下ndt-matching进行配置,Initial Pos表示激光雷达初始位姿与建图时的初始位姿变换,如果有gnss数据可以使用gnss进行初始定位。其他默认。
在这里插入图片描述

启动vel_pose_connect,确定为勾选Simulation Mode
在这里插入图片描述

2.3. 加载轨迹点信息

选择刚刚保存的轨迹点路径,并勾选waypoint_loader选项。
在这里插入图片描述

2.4. 配置lane_planner相关信息

最终配置如下图所示:
在这里插入图片描述

2.4.1.Lane_planner模块

Lane_rule,lane_stop,lane_select都是跟车道线相关的配置。Lane_rule中Acceleration设置的是在停止线出现时启动跟停止时候的加速度,stopline search radius表示的是搜索以停止线为中心半径一米的导航点。Number of zeros ahead与number of zeros behind表示停止线前后的航迹点数目,用于修改停止线前后航迹点的速度或加速度。number_of_smoothing_count用于平滑航迹点路径的数目。
在这里插入图片描述

lane_stop是用于识别红绿灯的,根据红绿灯状态将停止线的航迹点变为红色或绿色,Traffic Light下的两个按钮用于调整当前路径处在红灯还是绿灯状态,Lane Change下的两个按钮用于变换车道,Current Lane下的Keep at表示在当前车道线上保持的速度,Stop in表示停止时距离停止线的最大距离。暂时还没用上
在这里插入图片描述

Lane_select中Distance threshold to neighbor lanes参数表示检测当前路径周围有效通道的阈值, 超过此阈值的车道将不会被识别为车道,Lane Change Interval After Lane merge参数表示在已变换车道中行驶多少米后可以再次变换车道,Lane Change Target minimum(m)参数表示到变换车道中目标点的最小距离,Vector Length of Hermite Curve(m)参数表示Hermite曲线上航迹点的向量长度。
在这里插入图片描述

感觉上面上个简单的轨迹点跟踪是都用不上的,但是还是得勾选才能跑跟踪算法。所以都采用的是默认配置。

2.4.2.Waypoint_planner模块

此模块设置的是轨迹跟踪时候,遇到障碍物时的处理参数,是进行局部路径规划的参数,其中Astar_avoid_param中国enable avoidence如果打钩则表示在寻迹过程中遇到障碍物要避障。此时需要配合的打开semantics中costmap_generator,此按钮会发布话题semantics/costmap_generator/occupancy_grid,此话题会被astar_avoid接受并用于避障。若不打开避障按钮,则实现的是遇到障碍物停障,记得要实现停障功能,pure_pursuit一定要选择waypoint模式,否则车体不会动。其他参数就是字面上的意思。
在这里插入图片描述

Velocity_set参数内,首先是decelerate obstacle,从车辆位置开始,向后遍历一定数量的路径点(蓝色点),对每个路径点,遍历所有的点云,如果该路径点decelerate_range半径内不存在点云,则切换到下一个路径点,再次遍历所有点云。当没有检测到decelerate obstacle但是突然在某一路径点的stop_range范围内检测到了点云,则将障碍物判定为stop_obstacle,需要停车处理。这种障碍物检测模式,如果是静止的障碍物,一定会被先检测为decelerate obstacle,优先减速处理。对于突然出现的障碍物才会被检测为stop_obstacle。
在这里插入图片描述

参数解释:
Stop distance for obstacle与detection range都表示停障距离。当二者有一个满足都会使得车辆停障。如下图。Detection range和deceleration range都是以每个路径点为圆形扩散半径,减速参数表示的是黄色阴影部分。红色粗线代表当激光雷达到达此位置也会触发停障Stop distance for obstacle代表的是激光距离障碍物多远的距离进行停止。二者满足其一就会触发停止。
在这里插入图片描述

2.4.3.勾选waypoint_follower

在这里插入图片描述

Pure_pursuit中有两种纯跟踪模式,一种还是waypoint,一种是dialog。如果是想实现录制点跟踪,那么就要选择waypoint模式。如果是要实现避障功能,那么可以选择dialog模式,选择Dialog时,可以通过下面的参数手动设置汽车速度。
在这里插入图片描述

Twist_filter选择默认设置即可。

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Authware古诗教程是一款专门为学习和欣赏古诗而设计的软件。它提供了丰富的古诗资源和相关的学习功能,帮助用户更好地理解和感受古代文化。 首先,Authware古诗教程拥有庞大的古诗库,涵盖了各个朝代的经典古诗。用户可以通过浏览功能,随时查阅自己喜欢的古诗,了解作者背景和作品的内涵。 其次,Authware古诗教程提供了详细的古诗解析和注释。对于初学者来说,读懂古诗可能会有一些难度,但通过软件提供的解析和注释,用户可以更好地理解古人的用词和意境,进一步欣赏古诗之美。 此外,Authware古诗教程还提供了古诗背景介绍和相关阅读材料。了解古代社会背景和文化氛围,能够更加全面地把握古诗的内涵和艺术价值。通过相关阅读材料的学习,用户可以拓展自己的知识面,提升古诗欣赏的层次。 最后,Authware古诗教程还提供了互动学习和分享社区。用户可以与其他热爱古诗的人交流学习,分享自己的感悟和见解。这种互动交流可以激发更多的灵感和思考,使学习和欣赏古诗变得更加有趣和有意义。 总之,Authware古诗教程是一款功能丰富、易于操作的软件,它可以帮助用户更好地学习和欣赏古诗,了解古代文化,并与其他人分享自己的想法。无论是初学者还是资深爱好者,都可以在这个平台上找到自己需要的资源和交流机会。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值