All in one! It's a revolution in map parameterization and representation for motion planning.
This repo is related to our evaluation research. If this repo helps your research, please cite our paper at:
@INPROCEEDINGS{10610207,
author={Shao, Yifei Simon and Wu, Yuwei and Jarin-Lipschitz, Laura and Chaudhari, Pratik and Kumar, Vijay},
booktitle={2024 IEEE International Conference on Robotics and Automation (ICRA)},
title={Design and Evaluation of Motion Planners for Quadrotors in Environments with Varying Complexities},
year={2024},
volume={},
number={},
pages={10033-10039},
keywords={Measurement;Navigation;Software algorithms;Kinematics;Planning;Complexity theory;Trajectory},
doi={10.1109/ICRA57147.2024.10610207}}
It supports 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 is converted into 3d, with z-axis having the same content. Maze images are generated with the help of Multi Solution Maze Generator
The point cloud 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 approximate 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.