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

velodyne and IMU of the ZED İntegration #521

Open
Minaygt opened this issue Dec 5, 2024 · 1 comment
Open

velodyne and IMU of the ZED İntegration #521

Minaygt opened this issue Dec 5, 2024 · 1 comment

Comments

@Minaygt
Copy link

Minaygt commented Dec 5, 2024

hi, I'm using ros2 humble. I want to do a fusion with the velodyne VLP-16 and the IMU of the Zed camera. I have installed your LIOSAM package and edited the params.yaml file. But there is a problem with the rviz. Lidar and zed are not completely moving together. There is a deviation in my point dataPoint cloud data is also getting into each other. How do I solve this problem?
I run velodyne ,zed and liosam on terminal.
here is my params.yaml file
`/**:
ros__parameters:

# Topics
pointCloudTopic: "/velodyne_points"                   # Point cloud data
imuTopic: "/zed/zed_node/imu/data"  

odomTopic: "odometry/imu"                    # IMU pre-preintegration odometry, same frequency as IMU
gpsTopic: "odometry/gpsz"                    # GPS odometry topic from navsat, see module_navsat.launch file

# Frames
lidarFrame: "velodyne"
baselinkFrame: "base_link"
odometryFrame: "odom"
mapFrame: "map"

# GPS Settings
useImuHeadingInitialization: false           # if using GPS data, set to "true"
useGpsElevation: false                       # if GPS elevation is bad, set to "false"
gpsCovThreshold: 2.0                         # m^2, threshold for using GPS data
poseCovThreshold: 25.0                       # m^2, threshold for using GPS data

# Export settings
savePCD: false                               # https://github.com/TixiaoShan/LIO-SAM/issues/3
savePCDDirectory: "/Downloads/LOAM/"         # in your home folder, starts and ends with "/". Warning: the code deletes "LOAM" folder then recreates it. See "mapOptimization" for implementation

# Sensor Settings
sensor: velodyne                               # lidar sensor type, either 'velodyne', 'ouster' or 'livox'
N_SCAN: 16                                   # number of lidar channels (i.e., Velodyne/Ouster: 16, 32, 64, 128, Livox Horizon: 6)
Horizon_SCAN: 1800                            # lidar horizontal resolution (Velodyne:1800, Ouster:512,1024,2048, Livox Horizon: 4000)
downsampleRate: 1                            # default: 1. Downsample your data if too many
# points. i.e., 16 = 64 / 4, 16 = 16 / 1
lidarMinRange: 1.0                           # default: 1.0, minimum lidar range to be used
lidarMaxRange: 1000.0                        # default: 1000.0, maximum lidar range to be used

# IMU Settings
imuAccNoise: 3.9939570888238808e-03
imuGyrNoise: 1.5636343949698187e-03
imuAccBiasN: 6.4356659353532566e-05
imuGyrBiasN: 3.5640318696367613e-05

imuGravity: 9.80511
imuRPYWeight: 0.01

extrinsicTrans:  [ 0.0,  0.0,  0.0 ]
extrinsicRot:    [-1.0,  0.0,  0.0,
                   0.0,  1.0,  0.0,
                   0.0,  0.0, -1.0 ]
#extrinsicRPY: [ 0.0,  1.0,  0.0,
#               -1.0,  0.0,  0.0,
#               0.0,  0.0,  1.0 ]

# LOAM feature threshold
edgeThreshold: 1.0
surfThreshold: 0.1
edgeFeatureMinValidNum: 10
surfFeatureMinValidNum: 100

# voxel filter paprams
odometrySurfLeafSize: 0.2                     # default: 0.4 - outdoor, 0.2 - indoor
mappingCornerLeafSize: 0.1                    # default: 0.2 - outdoor, 0.1 - indoor
mappingSurfLeafSize: 0.2                      # default: 0.4 - outdoor, 0.2 - indoor

# robot motion constraint (in case you are using a 2D robot)
z_tollerance: 1000.0                          # meters
rotation_tollerance: 1000.0                   # radians

# CPU Params
numberOfCores: 4                              # number of cores for mapping optimization
mappingProcessInterval: 0.15                  # seconds, regulate mapping frequency

# Surrounding map
surroundingkeyframeAddingDistThreshold: 1.0   # meters, regulate keyframe adding threshold
surroundingkeyframeAddingAngleThreshold: 0.2  # radians, regulate keyframe adding threshold
surroundingKeyframeDensity: 2.0               # meters, downsample surrounding keyframe poses   
surroundingKeyframeSearchRadius: 50.0         # meters, within n meters scan-to-map optimization
# (when loop closure disabled)

# Loop closure
loopClosureEnableFlag: true
loopClosureFrequency: 1.0                     # Hz, regulate loop closure constraint add frequency
surroundingKeyframeSize: 50                   # submap size (when loop closure enabled)
historyKeyframeSearchRadius: 15.0             # meters, key frame that is within n meters from
# current pose will be considerd for loop closure
historyKeyframeSearchTimeDiff: 30.0           # seconds, key frame that is n seconds older will be
# considered for loop closure
historyKeyframeSearchNum: 25                  # number of hostory key frames will be fused into a
# submap for loop closure
historyKeyframeFitnessScore: 0.3              # icp threshold, the smaller the better alignment

# Visualization
globalMapVisualizationSearchRadius: 1000.0    # meters, global map visualization radius
globalMapVisualizationPoseDensity: 10.0       # meters, global map visualization keyframe density
globalMapVisualizationLeafSize: 1.0           # meters, global map visualization cloud density`

Screenshot from 2024-12-05 11-59-10
Screenshot from 2024-12-05 11-47-01

@holymoly
Copy link

holymoly commented Dec 6, 2024

I just wanted to open an Issue as well because my rviz seems to behave similar to yours. I also using an VLP16 but with an BNO055 and using iron and not humble. I checked a view things and found out that my Tree looks not as expected when I try to run lio-sam with online data. When everything is up and running my tree looks like this
image
This seems to be wrong as the urdf file describes that lidar_link should be connected to base_link and not to odom.

 <link name="lidar_link"> </link>
  <joint name="lidar_joint" type="fixed">
    <parent link="base_link" />
    <child link="lidar_link" />
    <origin xyz="0 0 0" rpy="0 0 0" />
  </joint>

I see an error message when I launch lio_sam which might cause this behavior.

[lio_sam_imuPreintegration-2] [ERROR] [1733499270.452512516] [lio_sam_imuPreintegration]: Could not find a connection between 'lidar_link' and 'base_link' because they are not part of the same tree.Tf has two or more unconnected trees.

I dont know how to solve that right now as I'm a ros noob.but as we might facing similar Problems could you please check ros2 run tf2_tools view_framesin a another terminal while running lio_sam and check the generated pdf afterwards?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants