基于autoware.1.14与gazebo联合仿真进行Hybrid A* 算法规划控制代价地图版
1.首先安装autoware ,大家可以以下一下博客进行安装,如果缺少库什么的直接问ai安装对应的库就行。ubuntu18.04安装Autoware1.14---GPU版 最全环境配置说明_autoware1.14安装教程-CSDN博客
安装成功后运行:
source install/setup.bash
roslaunch runtime_manager runtime_manager.launch
2.接下来下载vehicle_sim的gazebo仿真环境:
mkdir -p ~/vehicle_sim/src
cd ~/vehicle_sim/src
git clone https://github.com/yukkysaito/vehicle_sim.git
cd ~/vehicle_sim
catkin_make
source devel/setup.bash
roslaunch vehicle_sim_launcher gazebo_autoware.launch gpu:=true
运行上述命令之后会出现以下的汽车模型以及虚拟gazebo环境以及汽车控制界面
如果打开gazebo黑屏一直初始化加载不出来,把网络断了就OK
3.下载对应的点云地图文件以及坐标变化还有路径信息-下载autoware_word就行:https://drive.google.com/drive/folders/1GIKh2I5JTpJC7QJIYYtZ1YdJFTRdl8HW
4.接下来就正式开始操作:在autoware可视化操作界面中点击Topics页面中点击左下角Refresh刷新一下看有没有点云信息,有的话就证明与gazebo连接正常。
5.首先点击Map里面, 在Point Cloud中右边的Ref中选择3步骤中文件夹里的autoware-190107.pcd,同理TF选择文件夹里的tf.launch,点击右下角的RViz就可以看到相应的地图文件:
6.之后点击Sensing页面进行传感器的设置, 由于此次进行的虚拟仿真故不需要选择传感器,只需要选择Points Downsampler下的体素下采样voxel_grid_filter以及Points Preprocessor下的地面滤除ring_ground_filter,具体的参数可以默认就行(参数在选项右边的app里面设置,设置完记得点ok保存),。
7.之后点击Computing中Localization下的lidar_localizer中ndt_matching进行点云定位,具体的参数设置如下图,注意选择Initipal Pos,点击ok保存,打开rviz中可以看到已经定位成功
8.之后点击autoware_connector
下的vel_pose_connect进行车速位置连接,参数设置如下所示,
9.接着点击 Semantics下的代价地图“costmap_generator_param”,参数采用默认设置,参数包括设置代价地图分辨率(grid_resolution)、地图长度(grid_length_x和grid_length_y)、起始位置(grid_position_x和grid_position_y)、激光雷达高度阈值(maximum_lidar_height_thres和minimum_lidar_height_thres)设置时注意避免自身点云的影响从而阻止车辆后续轨迹的生成、多边形扩展大小(expand_polygon_size)以及扩展核大小(size_of_expansion_kernel,必须是奇数)。这些参数共同作用,以生成一个精确的代价地图,用于自动驾驶系统中的路径规划和障碍物检测,重新点击RVIZ,会看到生成一个白色区域就是代价地图。
10.之后点击 Mission Planning下lan_planner的“lane_rule”和“lane_select”,负责规划车辆的车道路径,参数采用默认设置:
11.接着选择 Mission Planning下freespace_planner中的astar_navi来选择Hybrid A* 算 法 进 行 路 径 规 划。
12. 之后点击 Motion Planning 下的waypoint_planer的astar_avoid相应的astar_avoid和velocity_set相应的参数采用默认值,用于判断前方是否有障碍物,如果有,则计算与障碍物的距离进而判断是要减速还是停车。
12.最后点击 Motion Planning 下的waypoint_follower的pure_pursuit以及相应的twist_filter进行速度过滤,相应的参数采用默认值。
13.最后在rviz当中先选择2D Pose Estimate进行车辆的初始定位,接着选择2D Nav Goal进行目标终点的定位,生成的轨迹以及行驶过程如下图所示: