1. Demo包
sample_moriyama_150324.bag
types: nmea_msgs/Sentence [9f221efc5f4b3bac7ce4af102b32308b]
sensor_msgs/PointCloud2 [1158d486dd51d683ce2f1be655c3c181]
topics:/nmea_sentence 11980 msgs : nmea_msgs/Sentence
/points_raw 4788 msgs : sensor_msgs/PointCloud2
1.1 定位系统:GNSS
nmea2tfpose
fix2tfpose
也就是通过GNSS数据计算姿态变化,但是位置是UTM坐标系。由/nmea_sentence变化为/gnss_pose,消息类型分别为nmea_msgs/Sentence和geometry_msgs/PoseStamped
1.2 激光雷达:Lidar
bag发出来的是/points_raw,节点/voxel_grid_filter,发布通过体素滤波(降采样)的点云/filtered_points。Velodyne16线发出来的是XYZIRT格式,在里面的格式应该没有变化,但是pcd地图里面是XYZRGB,应该在下面某一步进行了格式转换和匹配。
1.3 聚类BoundingBox
启动bag,再启动Detection,打开Rviz,将坐标系设置为velodyne,Add Bounding Box设置对应的话题,打开这个界面。这个界面不卡,但是BoundingBox最近出了一种绿色方框的,我替换下试试,后话了因为我没找到新的边界框代码。
1.4 目标检测
autoware好几个方法,我这里决定还是用darkent_ros搞,虽然没有GPU加速,不过可以尝试一下效果。
安装ralsense-viewer:链接1 链接2
cpu+yolo+darknet:链接3
具体流程参考我的另一篇文章:链接4
CPU版本的启动起来就是比较垃,FPS:2.3。
也就是说如果想启动autoware时候,加一个launch的节点,就可以成功目标检测的功能,但是这里面没有sort,没办法跟踪,需要再做融合。
1.5 rosbag建图
1.启动包:
roslaunch runtime_manager runtime_manager.launch
2.打开rosbag:点击simulation。
3.启动Setup里面的TF和Vehicle Model。
4.点击Couputing中的ndt_mapping,实现建图功能。
5.当看到(Processed/Input)相差较大的时候就暂停rosbag的播放,等两个数追一下,这代表处理的速度跟不上输入的速度。
6.保存地图:等两个数相同的时候,点击ndt_mapping后面app中的“PCD OUTPUT”,注意选择好保存路径,可以实现地图保存。
参考:链接1 链接2
错误:[1683168452.185904832, 1427158020.290258202]: a message of over a gigabyte was predicted in tcpros. that seems highly unlikely, so I’ll assume protocol synchronization is lost.
答案:地图太大了,数据传不了了
链接3
1.6 定位:ndt_matching
采用计算激光雷达前后帧实现点云匹配,但是需要给出初始位置姿态,因此我觉得可以采用“2D Pose Estimate”(也可以自己设置初始位姿,但是目前我不知道怎么查),或者使用这里给出的/gnss_pose作为初始定位信息和校准用。最后就发出了/ndt_stat给runtime_manager,但是不知道具体有什么用,先记录下它的消息类型。我猜测它是给Rviz里面的速度图标,提供数据的。
链接1 链接2 链接3
1.6.1 GNSS定位
1.启动包:
roslaunch runtime_manager runtime_manager.launch
2.打开rosbag:点击simulation;
3.启动Setup里面的TF和Vehicle Model;
4.加载点云“Point Cloud”;
5.启动Sensing里面的“voxel_grid_filter”;
6.切换到nmea2tfpose,点击“ndt_matching”设置参数;
7.勾选ndt_matching,打开RVIZ。
1.6.2 无GNSS定位
1.启动包:
roslaunch runtime_manager runtime_manager.launch
2.打开rosbag:点击simulation;
3.启动Setup里面的TF和Vehicle Model;
4.加载“TF”、“Vector Map”、“Point Cloud”;
5.启动Sensing里面的“voxel_grid_filter”;
6.切换到nmea2tfpose,点击“ndt_matching”设置参数;
7.在下方autoware_connector中单击vel_pos_connect右侧app,查看并确保其中Simulation_Mode是没有被选中的(默认不勾选),然后退出勾选vel_pos_connect后
8.启动ndt_matching,打开RVIZ。
参考:链接1
1.7 生成路径
1.启动包:
roslaunch runtime_manager runtime_manager.launch
2.打开rosbag:点击simulation;
3.加载Map中的“Point Cloud”、“TF”;
4.启动Sensing里面的“voxel_grid_filter”;
5.启动Computing中的“nmea2tfpose”、“ndt_matching”、“vel_pose_connect”;
6.设置Computing中的“waypoint_saver”,设置保存路径,并启动功能;
7.rosbag播放完成后,路径会自动保存。
1.8 生成路径
1.启动包:
roslaunch runtime_manager runtime_manager.launch
2.打开rosbag:点击simulation;
3.启动“Setup”里面的“TF”、“Vechicle Model”;
4.加载Map中的“Point Cloud”、“TF”;
5.启动Sensing里面的“voxel_grid_filter”;
6.启动Computing中的“nmea2tfpose”、“ndt_matching”、“vel_pose_connect”;
7.点击Motion Planing->waypoint_maker->waypoint_loader的Ref,选择对应的路径文件。路径为:/home/ubuntu/.autoware/data/path/moriyama_path.txt;
8.勾选“waypoint_loader";
9.再勾选Mission Planning->lane_planner->lane_navi、再勾选Mission Planning->lane_planner->lane_rule、再勾选Mission Planning->lane_planner->lane_stop、再勾选Mission Planning->lane_planner->lane_select
10.进行路径规划和导航。再勾选Motion Planing->waypoint_planner->astar_avoid、再勾选Motion Planing-waypoint_planner->velocity_set、再勾选Motion Planing->waypoint_follower->pure_pursuit、再勾选Motion Planing->waypoint_follower->twist_filter。
11.打开RVIZ查看效果。
版权归原作者 滑雪圈的小码人 所有, 如有侵权,请联系我们删除。