All in one! It's a revolution of map parameterization and representation for motion planning! Let's see.
This repo is related to our evaluation research. If this repo helps your research, please cite our paper at:
@misc{shao2023design,
title={Design and Evaluation of Motion Planners for Quadrotors},
author={Yifei Simon Shao and Yuwei Wu and Laura Jarin-Lipschitz and Pratik Chaudhari and Vijay Kumar},
year={2023},
eprint={2309.13720},
archivePrefix={arXiv},
primaryClass={cs.RO}
}
It support file format as:
- image map: .png
- rosbag: sensor_msgs::PointCloud
- rosbag: sensor_msgs::PointCloud2
- pcd
set the map mode and file path in "read_grid_map.launch" and launch
roslaunch param_env read_grid_map.launch
The 2D image map are converted into 3d, with z axis having the same content. Maze images are generated with the help of Multi Solution Maze Generator
The pointcloud in bags is shown as:
You can also set the inflation (m) to inflate the grid map
<param name="map/inflate_radius" value="0.3"/>
The topics:
- /read_grid_map/global_cloud: publish the point clouds
- /read_grid_map/global_gridmap: publish the center points of the grid map with inflation
roslaunch param_env structure_map.launch
You can adjust the apprximate ratio of each element (overlapping is also counting now) in the launch file
<param name="map/cylinder_ratio" value="0.10" type="double"/>
<param name="map/circle_ratio" value="0.02" type="double"/>
<param name="map/gate_ratio" value="0.02" type="double"/>
<param name="map/ellip_ratio" value="0.02" type="double"/>
<param name="map/poly_ratio" value="0.01" type="double"/>
Examples:
By increasing the occupied ratios, it's harder to generate feasible trajectories
You can also enable noise around the obstalce by setting:
<param name="params/add_noise" value="true"/>
The topics:
- /structure_map/global_cloud: publish the point clouds
You can also change the resolution online by publishing the resolution value to:
/structure_map/change_res
or
/read_grid_map/change_res
For read maps, you can publish all the maps by setting folder path in launch file
<param name="folder_path" value="$(find param_env)/data/img/maze/"/>
Publish true in topic
/structure_map/change_map
or
/read_grid_map/change_map
to trigger the function.
If you want to save map, set "dataset/save_map" to true, and set the data number in "dataset/samples_num".
<param name="dataset/save_map" value="true"/>
<param name="dataset/samples_num" value="100"/>
<param name="dataset/start_index" value="5080900"/>
<param name="dataset/path" value="$(find param_env)/dataset/"/>
It will be saved into the path you set.