Skip to content

borg-org/kr_param_map

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Kumar Lab Parameterized Map

All in one! It's a revolution of map parameterization and representation for motion planning! Let's see.

About

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}
}

0. Setup

0.1 general map annotation

1. Usage

1.1 Grid Map Reader

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

1.2 Sctructed Map Generator

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

1.3 Change resolution or change map

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.

1.4 Dataset generation

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.

Releases

No releases published

Packages

No packages published

Languages

  • C++ 98.9%
  • CMake 1.1%