ethz-asl / wavemap

Fast, efficient and accurate multi-resolution, multi-sensor 3D occupancy mapping
https://ethz-asl.github.io/wavemap/
BSD 3-Clause "New" or "Revised" License
434 stars 38 forks source link

The livox online config #24

Closed minxuanjun closed 1 year ago

minxuanjun commented 1 year ago

Thank your great work! I test your project in lixel mid360. I find you may don't update the config lixel_mind360.yaml in time

`map: general: world_frame: "odom" thresholding_period: { seconds: 2.0 } pruning_period: { seconds: 10.0 } visualization_period: { seconds: 2.0 } data_structure: type: "hashed_chunked_wavelet_octree" min_cell_width: { meters: 0.2 }

inputs:

victorreijgwart commented 1 year ago

Hi minxuanjun, Thanks for reporting this issue! We also noticed that some of the example configs are outdated and are preparing a new release that resolves this on the feature/config_schema branch, together with tooling to automatically check configs and make them easier to work with. We plan to finish and merge these changes next week. Note that setting the sensor_frame_id is optional. If you don't set it, wavemap will use the frame_id indicated in the pointlcoud message's header.frame_id field. The option to set it manually is there to make it easier to work with drivers that don't set the frame_id properly or customized setups.

minxuanjun commented 1 year ago

Great!

victorreijgwart commented 1 year ago

Closing this issue as it is resolved by release v1.4.0. If the issue is not fully resolved, please feel free to reopen this issue. Thanks again for reporting this @minxuanjun!

YoungCapta1n commented 4 months ago

Have you ever used this great mapping library using solid-state Lidar (e.g. Livox horizon or Livox Mid-40, etc)? Thanks for your time! @minxuanjun

victorreijgwart commented 4 months ago

@YoungCapta1n, we haven't tried wavemap with Livox Horizon or Mid-40 LiDARs yet, but it should work well. I'd recommend trying the spherical projection model with the elevation and azimuth's min_angle and max_angle set to match the vertical and horizontal FoV's specified in the sensor's datasheet. For num_cells you could experiment a bit, for example starting at 512 and increasing or decreasing it until the projected image looks good. You can enable publishing of the projected image by uncommenting/adding projected_range_image_topic_name: "/wavemap/projected_range_image" to your config and visualizing /wavemap/projected_range_image in Rviz or rqt_image_view. If you share your config and some screenshots of the image you get on /wavemap/projected_range_image here, I'd be happy to help you tune it.

YoungCapta1n commented 3 months ago

Thanks a lot! I will try wavemap with Livox Horizon as soon as possible, and share the mapping results and config files. @victorreijgwart

YoungCapta1n commented 3 months ago

Hi Dr. Victor Reijgwart @victorreijgwart , I've tried to run a real-time mapping demo using Livox Horizon, where the livox-driver (instead of livox-driver2) are used.

source devel/setup.bash
roslaunch fast_lio mapping_horizon.launch
roslaunch livox_ros_driver livox_lidar_msg.launch bd_list:="3WEDH760010477"
roslaunch wavemap_ros livox_horizon.launch

The fast-lio launch file image

The livox driver launch file image

The wavemap launch file image

The tf results frames.pdf

The livox-driver and fast-lio run normally. However, the mapping results are not shown in RVIZ, as shown Screenshot from 2024-06-11 22-19-47

Thanks for your time!

victorreijgwart commented 3 months ago

Hi @YoungCapta1n,

It seems there is an issue with the time stamps. In the frames.pdf file you shared, the "Most recent transform" timestamps for the imu_forward_prop to livox_frame transform, and the camera_init to imu_forward_prop transform should be close. At the moment, they're very far apart - seemingly starting from different initialization timestamps.

Are you running the demo on live data, or using recorded data (e.g. from a rosbag or .lvx file)? From the files you shared, it seems that you are running it on live data but it's hard to tell from screenshots.

As a side question, are you using wavemap in Docker, or are you running it directly on the host?

YoungCapta1n commented 3 months ago

Hi @victorreijgwart

The wavemap is running directly on the host with live data. I have tried the demo using Livox Mid360, it works well.

victorreijgwart commented 3 months ago

Hi @YoungCapta1n,

Would it be possible for you to share a rosbag with me for debugging? If so, could you include the following topics:

# All the inputs for wavemap, e.g.
"/livox/lidar"
"/livox/imu"
# The topics needed to lookup TFs
/tf
/tf_static

And could you also share your $(wavemap_ros)/config/wavemap_livox_horizon.yaml file? Ideally as a code block instead of a screenshot - then I can run it without having to retype its contents.