Git Product home page Git Product logo

lidar_imu_calib's People

Contributors

chennuo0125-hit avatar mingjitianming avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

lidar_imu_calib's Issues

imu轴数

您好我测试了几个包。发现含有9轴imu数据的包测试结果比较好,6轴的包结果往往是错误的。请问您这个算法时只适用于9轴imu吗?感谢!

输出结果验证

我测试了代码,输出结果只有旋转参数,不应该有平移参数么

lib_exR_lidar2imu_node: error while loading shared libraries: libndt_omp.so

I have a Jetson AGX that I am trying to get this working on. Its arm64 architecture
I managed to get ndt_omp installed by fixing the cmake
I then used the same process to install lidar_imu_calib. It built without errors
I edited the launch file to read my topics of lidar and imu
When I run your launch file I get:

SUMMARY
========

PARAMETERS
 * /calib_exR_lidar2imu_node/bag_file: /home/lbackpack/c...
 * /calib_exR_lidar2imu_node/imu_topic: /imu/data
 * /calib_exR_lidar2imu_node/lidar_topic: /velodyne_points
 * /rosdistro: melodic
 * /rosversion: 1.14.10

NODES
  /
    calib_exR_lidar2imu_node (lidar_imu_calib/calib_exR_lidar2imu_node)

ROS_MASTER_URI=http://localhost:11311

process[calib_exR_lidar2imu_node-1]: started with pid [13307]
/home/lbackpack/catkin_ws/src/lidar_imu_calib/build/devel/lib/lidar_imu_calib/calib_exR_lidar2imu_node: error while loading shared libraries: libndt_omp.so: cannot open shared object file: No such file or directory
[calib_exR_lidar2imu_node-1] process has died [pid 13307, exit code 127, cmd /home/lbackpack/catkin_ws/src/lidar_imu_calib/build/devel/lib/lidar_imu_calib/calib_exR_lidar2imu_node __name:=calib_exR_lidar2imu_node __log:=/home/lbackpack/.ros/log/96d22832-6c0b-11eb-8543-48b02d2ff3be/calib_exR_lidar2imu_node-1.log].
log file: /home/lbackpack/.ros/log/96d22832-6c0b-11eb-8543-48b02d2ff3be/calib_exR_lidar2imu_node-1*.log
all processes on machine have died, roslaunch will exit

any suggestion on getting this working?
thanks in advance

why not consider about motion distort?

first, thanks for you great work @chennuo0125-HIT !
as i know, this pip can be devided into two step, in first step, compute the init extrinsic rotation part. after first step, why not undistort cloud, it will give much more precise result when ndt match. and in the step two, it only use init rotation computed in step one as the ndt init, and do the same work again as step one???

catkin_make error

it seems I'm the only one having issue with this error

cc1plus: fatal error: CMakeFiles/calib.dir/src/lib/calibExRLidar2Imu.cpp.d: No such file or directory
compilation terminated.
lidar_imu_calib/lidar_imu_calib/CMakeFiles/calib.dir/build.make:75: recipe for target 'lidar_imu_calib/lidar_imu_calib/CMakeFiles/calib.dir/src/lib/calibExRLidar2Imu.cpp.o' failed
make[2]: *** [lidar_imu_calib/lidar_imu_calib/CMakeFiles/calib.dir/src/lib/calibExRLidar2Imu.cpp.o] Error 1
CMakeFiles/Makefile2:1917: recipe for target 'lidar_imu_calib/lidar_imu_calib/CMakeFiles/calib.dir/all' failed
make[1]: *** [lidar_imu_calib/lidar_imu_calib/CMakeFiles/calib.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 70%] Built target align
Makefile:145: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j4 -l4" failed

is anyone out there? plz help..

failed to find match for field "intensity"

Hi, when I use XYZI type point cloud calibration, it always shows add lidar msg and no lidar and imu data, when I use XYZIRT type point cloud calibration, it shows failed to find match for field "intensity", how can I solve this problem?

关于no valid lidar frame

我用自己的禾赛64跑出来的数据包进行标定时报错,显示no valid lidar frame 。请问如何处理
2021-04-19_12 43 18

no valid lidar frame !!!

What should I do if the above message appears after I have finished the calibration? Thank you

Calibration on ground vehicle

Thanks for your great work!

I've been trying to calibrate Lidar and IMU mounted on ground vehicle, Can I use this algorithm?
It seems to be not very accurate in my simulation environment with only 2d movement.

Dataset Requirements

Hi!
Thanks for your excellent works! I'm using your algorithm to calibrate lidar and imu.The output is not accurate enough.I would like to know how to record rosbag to improve accuracy?Are there any requirements for the scene where the data is recorded?I would be very grateful if you could give a detailed answer. : )

LZ4_streamDecode_t

If you got the following error:

Errors     << lidar_imu_calib:make /home/he/catkin_ws/logs/lidar_imu_calib/build.make.003.log                                     
In file included from /home/he/catkin_ws/src/lidar_imu_calib/include/calibExRLidar2Imu.h:16:0,
                 from /home/he/catkin_ws/src/lidar_imu_calib/src/lib/calibExRLidar2Imu.cpp:1:
/usr/include/lz4.h:196:57: error: conflicting declaration ‘typedef struct LZ4_stream_t LZ4_stream_t’
 typedef struct { long long table[LZ4_STREAMSIZE_U64]; } LZ4_stream_t;

In file included from /home/he/catkin_ws/src/lidar_imu_calib/include/calibExRLidar2Imu.h:16:0,
                 from /home/he/catkin_ws/src/lidar_imu_calib/src/lib/calibExRLidar2Imu.cpp:1:
/usr/include/lz4.h:249:72: error: conflicting declaration ‘typedef struct LZ4_streamDecode_t LZ4_streamDecode_t’
 typedef struct { unsigned long long table[LZ4_STREAMDECODESIZE_U64]; } LZ4_streamDecode_t;
                                                                        ^~~~~~~~~~~~~~~~~~

there is a fix in ethz-asl/lidar_align#16
exactly here: ethz-asl/lidar_align#16 (comment)

System: Ubuntu 18.04
ROS: melodic
Reason: /usr/include/lz4.h conflict with /usr/include/flann/ext/lz4.h

I thing this will be fixed in next release version of system or ROS.
But you could try these commands to fix this problem.

sudo mv /usr/include/flann/ext/lz4.h /usr/include/flann/ext/lz4.h.bak
sudo mv /usr/include/flann/ext/lz4hc.h /usr/include/flann/ext/lz4.h.bak

sudo ln -s /usr/include/lz4.h /usr/include/flann/ext/lz4.h
sudo ln -s /usr/include/lz4hc.h /usr/include/flann/ext/lz4hc.h

对于数据集有要求么

感谢作者的工作!
想请问一下这套方法适合无人车么?
对于数据集,车辆需要行驶怎么样的轨迹呢?需要绕八字么?

Different results for extrinsic rotation matrix

Hi @mingjitianming @chennuo0125-HIT

I do not understand how this algorithm works, but why the extrinsic rotation matrix is not consistent? every time I run the algorithm I got different result!

please find the output below for three runs.

Thanks.

==================================================================================
ibrahim@ihroob:~/catkin_ws$ roslaunch lidar_imu_calib calib_exR_lidar2imu.launch
... logging to /home/ibrahim/.ros/log/e4333678-a5dd-11eb-8a1b-000c4302407b/roslaunch-ihroob-9257.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

SUMMARY

PARAMETERS

  • /calib_exR_lidar2imu_node/bag_file: 2021-04-16-14-13-...
  • /calib_exR_lidar2imu_node/imu_topic: /thorvald_001/imu...
  • /calib_exR_lidar2imu_node/lidar_topic: /thorvald_001/vel...
  • /rosdistro: melodic
  • /rosversion: 1.14.10

NODES
/
calib_exR_lidar2imu_node (lidar_imu_calib/calib_exR_lidar2imu_node)

process[calib_exR_lidar2imu_node-1]: started with pid [9272]
/points_raw, /imu_raw
[ INFO] [1619369790.190354985, 3976.880000000]: lidar buffer size 5, imu buffer size 99
[ INFO] [1619369795.393294432, 3982.080000000]: lidar buffer size 5, imu buffer size 89
[ INFO] [1619369800.392866976, 3987.080000000]: lidar buffer size 5, imu buffer size 97
[ INFO] [1619369805.393084713, 3992.080000000]: lidar buffer size 6, imu buffer size 85
[ INFO] [1619369810.395708642, 3997.080000000]: lidar buffer size 5, imu buffer size 86
[ INFO] [1619369815.398423282, 4002.080000000]: lidar buffer size 5, imu buffer size 92
^C[calib_exR_lidar2imu_node-1] killing on exit
total lidar buffer size 324, imu buffer size 5265
constraints size 323
constraints size 323
result euler angle(RPY) : 2.02875 0.0837701 -0.631102
result extrinsic rotation matrix :
0.804547 -0.200267 -0.559104
-0.587966 -0.401234 -0.702359
-0.0836722 0.893814 -0.440562
shutting down processing monitor...
... shutting down processing monitor complete
done
ibrahim@ihroob:/catkin_ws$ ^C
ibrahim@ihroob:
/catkin_ws$ roslaunch lidar_imu_calib calib_exR_lidar2imu.launch
... logging to /home/ibrahim/.ros/log/e4333678-a5dd-11eb-8a1b-000c4302407b/roslaunch-ihroob-10630.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

SUMMARY

PARAMETERS

  • /calib_exR_lidar2imu_node/bag_file: 2021-04-16-14-13-...
  • /calib_exR_lidar2imu_node/imu_topic: /thorvald_001/imu...
  • /calib_exR_lidar2imu_node/lidar_topic: /thorvald_001/vel...
  • /rosdistro: melodic
  • /rosversion: 1.14.10

NODES
/
calib_exR_lidar2imu_node (lidar_imu_calib/calib_exR_lidar2imu_node)

process[calib_exR_lidar2imu_node-1]: started with pid [10645]
/points_raw, /imu_raw
[ INFO] [1619373238.069081582, 7423.670000000]: lidar buffer size 5, imu buffer size 94
[ INFO] [1619373243.243420420, 7428.840000000]: lidar buffer size 5, imu buffer size 93
^C[calib_exR_lidar2imu_node-1] killing on exit
total lidar buffer size 79, imu buffer size 1316
constraints size 78
constraints size 78
result euler angle(RPY) : 1.91052 -0.661753 -2.06045
result extrinsic rotation matrix :
-0.371043 -0.0215748 -0.928365
-0.696215 0.668024 0.262734
0.614501 0.743827 -0.262886
shutting down processing monitor...
... shutting down processing monitor complete
done
ibrahim@ihroob:~/catkin_ws$ roslaunch lidar_imu_calib calib_exR_lidar2imu.launch
... logging to /home/ibrahim/.ros/log/e4333678-a5dd-11eb-8a1b-000c4302407b/roslaunch-ihroob-10704.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

SUMMARY

PARAMETERS

  • /calib_exR_lidar2imu_node/bag_file: 2021-04-16-14-13-...
  • /calib_exR_lidar2imu_node/imu_topic: /thorvald_001/imu...
  • /calib_exR_lidar2imu_node/lidar_topic: /thorvald_001/vel...
  • /rosdistro: melodic
  • /rosversion: 1.14.10

NODES
/
calib_exR_lidar2imu_node (lidar_imu_calib/calib_exR_lidar2imu_node)

process[calib_exR_lidar2imu_node-1]: started with pid [10719]
/points_raw, /imu_raw
[ INFO] [1619373352.608345477, 7538.170000000]: lidar buffer size 5, imu buffer size 98
[ INFO] [1619373357.789264147, 7543.350000000]: lidar buffer size 6, imu buffer size 88
^C[calib_exR_lidar2imu_node-1] killing on exit
total lidar buffer size 66, imu buffer size 1143
constraints size 65
constraints size 65
result euler angle(RPY) : 1.80554 -0.797497 -0.0234645
result extrinsic rotation matrix :
0.698308 -0.70125 0.143579
-0.0163885 -0.216197 -0.976212
0.71561 0.679344 -0.162465
shutting down processing monitor...
... shutting down processing monitor complete
done

How to use Output ?

Hi

I've tried to read your reference page but when translating to english several important information loses.

After I run roslaunch lidar_imu_calib I got "result extrinsic R -> -0.0368546 0.01498 -0.214961" I copied and pasted to Lio-Sam params config.yaml extrinsicTrans: [-0.0368546, 0.01498, -0.214961] . I haven't seen any difference between before and after result.

no valid lidar frame.

Hi, I tried to use this repo for LIO_SAM

In my case, I use LIVOX MID-70 LiDAR, and WIT motion WT901CTTL 9DOF IMU.

First, I checked my lidar messages detected well in src/lib/calibExRLidar2Imu.cpp, before codeline 350, all the messages are detected well.

but, in linenumber 352, there is a if condition like below.

if (invalid_lidar_it != lidar_buffer_.begin())
lidar_buffer_.erase(lidar_buffer_.begin(), invalid_lidar_it);

after this, my lidar messages are set as 0. I want to figure it out why my all lidar messages are set as 0.

vector应该使用eigen的内存分配器

calibExRLidar2Imu.h 中78-80的三个vector应该用eigen的分配器,要不会崩溃,因为定义的struct用了EIGEN_MAKE_ALIGNED_OPERATOR_NEW进行对齐。
可改为:vector<LidarFrame, Eigen::aligned_allocator> lidar_buffer_;

#include <pclomp/ndt_omp.h>

There was an error compiling the repo.

catkin_ws/src/lidar_imu_calib/include/calibExRLidar2Imu.h:15:10: fatal error: pclomp/ndt_omp.h: No such file or directory
#include <pclomp/ndt_omp.h>
^~~~~~~~~~~~~~~~~~

sudo apt install libpcl-dev can not solve the problem. I also compiled PCL 1.7.2 from the source still the same error.

[pcl::VoxelGrid::applyFilter] Leaf size is too small for the input dataset. Integer indices would overflow.

I am getting the following warning/error repeatedly when using the calibration tool:

[pcl::VoxelGrid::applyFilter] Leaf size is too small for the input dataset. Integer indices would overflow.

I am using the following configuration:

  • ROS noetic
  • Ubuntu 20.04LTS
  • Velodyne VLP-16

(In order to compile on Ubuntu 20.04LTS I had to change the compiler from c++11 to c++14 in CMakeLists.txt, but then it appeared to compile correctly)

Reference Paper

Thank you for sharing your nice project & research!

Can I know the refrence paper for this project?

Thank you!

lz4 conflicting declaration

In case anyone gets the following error during compilation,

/usr/include/flann/ext/lz4.h:196:57: error: conflicting declaration ‘typedef struct LZ4_stream_t LZ4_stream_t’
 typedef struct { long long table[LZ4_STREAMSIZE_U64]; } LZ4_stream_t;

checkout the following issue for possible workaround.
ethz-asl/lidar_align#16 (comment)

If anyone has a better resolution please do let me know.

Cheers
Sooraj

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.