一.如何运行:
launch/mapgen.launch.
<launch>
<node name="kitti_mapgen" pkg="erasor" type="kitti_mapgen" output="screen">
<rosparam param="/map/voxelsize">0.2</rosparam>
<rosparam param="/map/target_rosbag">"05_2350_to_2670_w_interval_2_node.bag"</rosparam>
<rosparam param="/map/save_path">"/media/shapelim/UX960NVMe1/deep_express/kitti_rosbag"</rosparam>
<rosparam param="/map/viz_interval">1</rosparam>
<rosparam param="/large_scale/is_large_scale">true</rosparam>
</node>
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find erasor)/rviz/kitti_mapgen.rviz"/>
</launch>参数修改:
target_rosbag:播放的bag包
save_path:存储原始地图
roscore # (Optional)
roslaunch erasor mapgen.launch
rosbag play 05_2350_to_2670_w_interval_2_node.bag结果是深度图和栅格地图被存储在save_path路径中。深度图被用于
run_erasor.launch
<launch>
<node name="offline_map_updater" pkg="erasor" type="offline_map_updater" output="screen">
<rosparam param="/large_scale/is_large_scale">true</rosparam>
<rosparam param="/large_scale/submap_size">160.0</rosparam>
</node>
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find erasor)/rviz/erasor_map.rviz"/>
<node name="rviz_body" pkg="rviz" type="rviz" args="-d $(find erasor)/rviz/srt.rviz"/>
<arg name="target_seq" default="05"/>
<group if="$(eval arg('target_seq') ==00)">
<rosparam command="load" file="$(find erasor)/config/seq_00.yaml" />
</group>
<group if="$(eval arg('target_seq') ==01)">
<rosparam command="load" file="$(find erasor)/config/seq_01.yaml" />
</group>
<group if="$(eval arg('target_seq') ==02)">
<rosparam command="load" file="$(find erasor)/config/seq_02.yaml" />
</group>
<group if="$(eval arg('target_seq') ==05)">
<rosparam command="load" file="$(find erasor)/config/seq_05.yaml" />
</group>
<group if="$(eval arg('target_seq') ==07)">
<rosparam command="load" file="$(find erasor)/config/seq_07.yaml" />
</group>
</launch>在config/seq_05.yaml里配置参数:
initial_map_path: The path of naively accumulated map(即上一步骤的输出地图)
save_map:保存filtered static map
子图被用于提取map VOI(地图感兴趣区域)
rostopic pub /saveflag std_msgs/Float32 "data: 0.2"保存点云,保存到save_path里
二.什么是PR/RR?
三.如何运行自己的数据集?
参考:src/offline_map_updater/main_in_your_env.cpp
launch/run_erasor_in_your_env_vel16.launch
数据存储结构:
`data_dir`
_____pcds
|___000000.pcd
|___000001.pcd
|___000002.pcd
|...
_____dense_global_map.pcd
_____poses_lidar2body.csv
_____...然后运行:
roslaunch erasor run_erasor_in_your_env_vel16.launch<launch>
<rosparam command="load" file="$(find erasor)/config/your_own_env_vel16.yaml" />
<node name="main_in_your_env_ros" pkg="erasor" type="main_in_your_env_ros" output="screen">
<rosparam param="/large_scale/is_large_scale">true</rosparam>
<rosparam param="/large_scale/submap_size">40.0</rosparam>
</node>
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find erasor)/rviz/erasor_map_in_your_env_v2.rviz"/>
<node name="rviz_body" pkg="rviz" type="rviz" args="-d $(find erasor)/rviz/srt.rviz"/>
</launch>
需要自己写数据包的文件。
main_in_your_env.cpp仅实现了读取离线地图
版权声明:本文为yoga_wyj原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。