基于autoware.1.14与gazebo联合仿真进行全局规划高精地图版
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.同时下载对应的矢量地图是由北京石油化工学院的常彦文同学绘制的,链接: 提取码: y5zw百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固,支持教育网加速,支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.baidu.com/s/17Oei64SxL9h79OfzTJDZjg 5.接下来就正式开始操作:在autoware可视化操作界面中点击Topics页面中点击左下角Refresh刷新一下看有没有点云信息,有的话就证明与gazebo连接正常。
6.首先点击Map里面, 在Point Cloud中右边的Ref中选择4步骤中文件夹里的autoware-220302.pcd,同理Vector Map选择4步骤中文件夹里sim_white的所有.csv文件,TF则选择步骤3文件夹里的tf.launch,点击右下角的RViz就可以看到相应的地图文件:
7.之后点击Sensing页面进行传感器的设置, 由于此次进行的虚拟仿真故不需要选择传感器,只需要选择Points Downsampler下的体素下采样voxel_grid_filter以及Points Preprocessor下的地面滤除ring_ground_filter,具体的参数可以默认就行(参数在选项右边的app里面设置,设置完记得点ok保存),。
8.之后点击Computing中Localization下的lidar_localizer中ndt_matching进行点云定位,具体的参数设置如下图,注意选择Initipal Pos,点击ok保存,打开rviz中可以看到已经定位成功
9.接着点击autoware_connector
下的vel_pose_connect进行车速位置连接,参数设置如下所示
10.接着点击Detection下的lidar_euclidean_cluster_detect用于检测障碍物,参数采用默认设置,之后点击RViz看的画面如下:
11.之后在点击“ lidar_tracker ”下的“ imm_ukf_pda_track ”节点,参数采用默认设置,用于对障碍物进行跟踪。
12.之后接着点击 Mission Planning下的“lane_rule”和“lane_select”,参数采用默认设置:
13.接着选择Semantics中的 wayarea2grid 和road_occupancy_processor ,用于确定可行驶区域,类似栅格地图,但是范围比栅格地图更大,其参数的默认设置如下图所示:
14.在Mission Planning中OpenPlanner-Global Planning 下的op_global_planner选择 op_globa
l_planner 的节点,其中 Replanning 用于到达目标点后,可以重新规划到下一个目标点,如果有了两个目标点,那么会循环;Smoothing 用于平滑路径。
15.之后在Motion Planning 下的OpenPlanner-Local Planning 中的所有节点进行选择,对无人车进行局部路径规划,其中对op_common_params
节点的参数进行设置时,主要涉及以下关键参数:Plan Distance
用于设定路径两侧衍生局部路径的长度;Path Density
用于设定局部路径上相邻轨迹点之间的距离;Horizontal Density
用于设定两个相邻局部路径之间的间距;Rollouts Number
用于设定生成的局部路径的数量。此外,Max Velocity
用于设定路径上的最大执行速度,当需要避障时,局部路径上的速度将减半。Follow Distance
是用于确定从多远的距离开始检测路径上的障碍物的关键参数。Avoid Distance
用于判断在感知到障碍物时,车辆从多远开始绕行。Avoidance Limit
用于判断障碍物在多远的距离内时车辆仍然可以安全行驶。最后,Lateral Safety
和Longitudinal Safety
分别用于设置车辆安全框的宽度和长度,以此确保车辆在行驶过程中的侧向和纵向安全距离。
其中对op_trajectory_generator 节点的参数进行设置其中,TipMargin 用于设置车身到路径分叉点的距离,Roll In Margin 用于设置局部路径弯折的距离,对op_motion_predictor 节点的参数进行设置,其中, Detectcurbs from map 用于将路沿判定为障碍物,最后加上op_behavior_selector。
16. 之后点击 Motion Planning 下的waypoint_planer的astar_avoid相应的astar_avoid和velocity_set相应的参数采用默认值。
17.最后点击 Motion Planning 下的waypoint_follower的Waypoint_follower以及相应的twist_filter进行速度过滤,相应的参数采用默认值。
18.最后核对一下相应的选择是否正确,一切顺利的话会看到小车跑起来,若果没有运行成功,首先打开rviz看点云定位是否正常,不正常的话选择2D Pose Estimate进行车辆的初始定位,还不行的话,重新点击Computing中Localization下的lidar_localizer中ndt_matching进行点云定位,如果需要重新规划路线,则重新点击在Motion Planning 下的OpenPlanner-Local Planning 中的所有节点。