Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The livox online config #24

Closed
minxuanjun opened this issue Aug 23, 2023 · 10 comments
Closed

The livox online config #24

minxuanjun opened this issue Aug 23, 2023 · 10 comments
Assignees
Labels
bug Something isn't working

Comments

@minxuanjun
Copy link

minxuanjun commented Aug 23, 2023

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:

  • type: "pointcloud"
    general:
    topic_name: "/livox/lidar"
    topic_type: "livox"
    undistort_motion: true
    topic_queue_length: 100
    max_wait_for_pose: { seconds: 1.0 }
    reprojected_pointcloud_topic_name: "/wavemap/reprojected_pointcloud"

projected_range_image_topic_name: "/wavemap/projected_range_image"

integrators:
  - integration_method:
      type: "hashed_chunked_wavelet_integrator"
      min_range: { meters: 1.0 }
      max_range: { meters: 40.0 }
      termination_update_error: 0.1
    projection_model:
      type: "spherical_projector"
      lidar_origin_to_beam_origin: { millimeters: 27.67 }
      lidar_origin_to_sensor_origin_z_offset: { millimeters: 36.18 }
      elevation:
        num_cells: 64
        min_angle: { degrees: -7.0 }
        max_angle: { degrees: 52.0 }
      azimuth:
        num_cells: 1024
        min_angle: { degrees: -180.0 }
        max_angle: { degrees: 180.0 }
    measurement_model:
      type: "continuous_beam"
      angle_sigma: { degrees: 0.035 }
      # NOTE: For best results, we recommend setting range_sigma to
      #       max(min_cell_width / 2, ouster_noise) where ouster_noise = 0.05
      range_sigma: { meters: 0.05 }
      scaling_free: 0.2
      scaling_occupied: 0.4

`
. And I find you forgot to set sensor_frame_id in yaml.

@victorreijgwart
Copy link
Member

victorreijgwart commented Aug 24, 2023

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
Copy link
Author

Great!

@victorreijgwart victorreijgwart added the bug Something isn't working label Aug 28, 2023
@victorreijgwart victorreijgwart self-assigned this Sep 1, 2023
@victorreijgwart
Copy link
Member

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
Copy link
Contributor

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
Copy link
Member

victorreijgwart commented Jun 7, 2024

@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
Copy link
Contributor

YoungCapta1n commented Jun 8, 2024

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

@YoungCapta1n
Copy link
Contributor

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
Copy link
Member

victorreijgwart commented Jun 19, 2024

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
Copy link
Contributor

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
Copy link
Member

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants