-
Notifications
You must be signed in to change notification settings - Fork 204
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
A Short Guide to Getting Fast-LIVO to Work in Noetic (Compile Bugs + Solutions) #53
Comments
Thanks for great contributions! Helps me a lot! |
I have an issue of running launch FAST-LIVO. I have problem of [laserMapping-2] process has died [pid 29207, exit code -11, cmd /home/hyss/livo_ws/devel/lib/fast_livo/fastlivo_mapping __name:=laserMapping __log:=/home/hyss/.ros/log/3e90916c-cfb4-11ee-a012-65f897d77de0/laserMapping-2.log]. when I execute the command "roslaunch fast-livo mapping_avia.launch" I followed your instructions and I cannot find the error. Also, I run the gdb and I got this error Thread 1 "fastlivo_mappin" received signal SIGSEGV, Segmentation fault. |
同样的问题,请问您解决了吗 |
I also have this problem (ros: noetic, opencv 4.2), I tried to track this API and found that there might be a problem with "/rpg_vikit/vikit_common/src/pinhole_camera.cpp". I tried to catkin make fast livo on ubuntu 18.04 (ros:melodic, opencv 3.2) using docker, this problem did not arise. I think the problem is the opencv version, this API might need to be adjusted due to opencv version changes |
[ INFO] [1730771598.803767110]: Found parameter: laserMapping/cam_model, value: Pinhole Thread 1 "fastlivo_mappin" received signal SIGSEGV, Segmentation fault. How can I fix the process died problem |
My gdb debugging results are: |
Thanks to the author(s) for this great piece of work & other users for their help solving issues.
I got Fast-LIVO working on my machine yesterday and wrote a list of errors with solutions that may help other new users like me!
NOTE: This list is correct on March 14 2023 with the Fast-LIVO commit a8918c2 (Feb 7 2023)
My Setup:
Prerequisites I already had installed:
Installing Other Prerequisites:
I had never used Sophus or VIKit before.
I followed the basic instructions in Fast-LIVO's README and here are my errors & solutions from that:
1. Sophus
error: lvalue required as left operand of assignment...
32 | unit_complex_.real() = 1.;
33 | unit_complex_.imag() = 0.;
unit_complex_ = std::complex<double>(1,0);
2. VIKit
CV_RANSAC
are not declared (I think this is syntax changes from OpenCV 3.X -> 4.X).CV_...
tocv::...
, specifically:.../fast_livo_ws/src/rpg_vikit/vikit_common/src
homography.cpp
(line 48)CV_RANSAC
->cv::RANSAC
pinhole_camera.cpp
(line 112)CV_INTER_LINEAR
->cv::INTER_LINEAR
img_align.cpp
(lines 237 & 437)CV_WINDOW_AUTOSIZE
->cv::WINDOW_AUTOSIZE
Compile Fast-LIVO & Test With Official Data
After the errors above were solved I had no problems compiling the main Fast-LIVO code with
catkin_make
.Before using your own data (where many things can go wrong) it's good to test that the author's "official" data works well.
In my case I ran the
hku2.bag
data with the standardmapping_avia.launch
profile and it worked really well.Crash When Running My Own Data:
When running your own custom data, specifically when you have different (larger?) image height & width, a crash may occur and the terminal will read something like:
[laserMapping-1] process has died [pid 2096, exit code -11, ...]
This could happen for a number of different reasons - you are reccomended to learn how to use
gdb
(below) to debug "properly" incase your crash is different to mine!My specific crash seems to be common and happens like so:
In this case the crash is probably from an error processing line ~376 in
lidar_selection.cpp
where the following line:float it[height * width] = {0.0};
Can be changed to:
std::vector<float> it(height*width, 0);
(Here is a link to a user confirming a similar error & their solution that I copied).
After this Fast-LIVO doesn't crash with my custom data - however that doesn't mean it works well! :-P
Calibraiton, synchronisation, etc. all need to be good!
Enabling GDB (for the Complete Beginner):
I am really new to using GDB but I found it very easy to debug the crash above once I learned how to start it!
With Fast-LIVO we are launching everything using a launch file - in this case all you have to do is to add the line
launch-prefix="gdb -ex run --args"
to the node description in the launch file.Specifically change:
to:
And now when you launch Fast-LIVO like normal it will launch attached to the GDB debugger! :-)
The text was updated successfully, but these errors were encountered: