Kin-Zhang / simple_ndt_slam

simple ndt slam, quick deploy on mobile robot, support mapping and localization (origin from autoware.ai); 简易slam包 快速部署使用
MIT License
119 stars 15 forks source link

livox mid 360 #11

Closed slamer2024 closed 5 months ago

slamer2024 commented 5 months ago

您好,我想使用在livox mid 360 上,但是map的方向以及准确性好像有点问题,这个因为扫描方法不一样吗?

Kin-Zhang commented 5 months ago

我之前有试过livox mid360,没啥太大的问题,方便的话 能给我发一下bag嘛?然后我看看

slamer2024 commented 5 months ago

谢谢回复,这个是我rosbag 链接: 我是在ubuntu20.04 ros noetic上运行的。没有使用/livox/imu (用了更奇怪)。一下我附上hdl_slam结果,虽然在尾部有些drift,但和google map上比较,还算准确。 Screenshot from 2024-04-15 11-58-42

Kin-Zhang commented 5 months ago

image

image

我大致看了一下 好像问题出在后半部分,我随手重构的这个 确实没试过较大的场景(我当时是写给室内机器人用来着)

如果是要运行有IMU的算法,我建议可以试一下fast-lio2 比较好, 我这个当时就徒个快和简单,最近我有在考虑要不要深度改进一下 但是时间原因可能悬...

lidar_frame: "livox_frame"
lidar_topic: "livox/lidar"
odom_topic : ""
imu_topic  : ""

# output things ================ >
odom_lidar_topic : "/repub_points"  # sensor_msgs::PointCloud2
output_odom_topic: "/auto_odom"   # nav_msgs::Odometry

debug_print: true  # will republish point with current timestamp
use_odom   : false
use_imu    : false

imu_upside_down: false  # whether inverse the imu axis
odom_inverse: true
incremental_voxel_update: true

# setting -1 mean it will output the whole ndt map ===> FOR THE WHOLE MAP
# setting 10 mean 10*frame_point_num will be saved ===> FOR FAST LOC
save_frame_point: -1

baselink2LiDAR: [0, 0, 0, 0, 1.0, 0] # x,y,z, roll, pitch, yaw

# parameter's for ndt =========================== >
# Cell Size while mapping using ND (meters) (default 1.0)
resolution: 0.3

# Increment value between iterations while matching (default 0.1)
step_size: 0.1

# Value to decide convergence between iterations (meters) (default 0.01)
trans_epsilon: 0.01

# Maximum number of iterations before stopping matching (default 30)
max_iterations: 30

# Voxel Grid Size of the input scan (downsampling) (default 1.0)
leaf_size: 0.3

# Ignore points closer than this value (meters) (default 5.0)
min_scan_range: 0.1

# Ignore points far than this value (meters) (default 200.0)
max_scan_range: 20.0

# Minimum distance between points to be added to the final map (default 1.0)
min_add_scan_shift: 0.3
slamer2024 commented 5 months ago

太感谢了。我之后试试看调整以下参数。fastlio也想试试,但是我rosbag录制的时候直接是转成了pointcloud2的格式,fastlio需要custommsg。我也查看了fastlio issue,是需要修改livox driver launch 里面的模式,目前没办法直接测试,可能需要重新录制一个bag。 ps:发现很早就在b站关注过了。最早看到是inkscape矢量图^ ^