어찌 다른 카테고리와는 달리, ROS1 관련 쪽 글을 쓸 때마다 육두문자가 나오는지..
이거 해결하면 저기서 에러, 저거 깔면 디펜던시 에러...
아무튼 사담이 길었다. 오늘은 fast_lio를 빌드 하는데 겪은 에러를 공유하고자 한다.
잘은 모르지만 Git의 대부분이 중국어인 것으로 미루어본데, 중국 쪽에서 만든 코드 같다.
그래서 그런지 한글로 된 문제 해결하기는커녕 영어로 된 문제 해결기도 보이지 않는다.
홀리..
fast_lio는 SLAM을 하는데 많이 사용된다. 설치 방법만 빠르게 설명하면
workspace로 쓸 폴더를 만들고, 그 안에 src 폴더를 만들어 준다.
나의 경우에는 home디렉토리에 SLAM을 만들고 그 안에 src 폴더를 생성했다.
>> cd
>> mkdir SLAM
>> cd SLAM
>> mkdir src
src 폴더로 들어가 fast_lio 소스를 Git에서 받아준다.
>> cd src
>> git clone https://github.com/Woogie-Boogie/fast_lio.git
그리고 상위 디렉토리로 나와 빌드
>> cd ..
>> catkin_make
상당히 간단한 과정이다. 그런데 에러가 뭐 이렇게 많은지...
우선 처음으로 만난 에러는 이런 느낌이었다.
fatal error: livox_ros_driver/CustomMsg.h: No such file or directory
4 | #include <livox_ros_driver/CustomMsg.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Invoking "make -j4 -l4" failed
찾아보니 이건 make 과정에서 생긴 devel, build 폴더를 지우고
될 때까지 다시 시도하다 보면 해결된다는 외국인들의 지혜(?)가 있더랬다.
10번을 더 지웠다 make 해봐도 같은 오류를 만들길래 다른 포럼을 좀 더 찾아보니
가상머신의 사양 부족으로 빌드가 실패하는 경우가 왕왕 있다고 했다.
기존에는 CPU 1 core + RAM 4GB에서 4 core + 8GB로 늘려주었다.
그러니까 해결은 됐는데, 또 다른 에러가 발생하였다.
(만약 이래도 안된다 하면, catkin_make -j1 옵션으로 make 해보자)
ImportError: No module named 'em' 뭐 이런 느낌이었다.
아 이건 간단하지
>> pip install em
간단히 해결 후 넘어가니 최종 보스(?)인 에러를 직면하였다.
fatal error: fast_lio/Pose6D.h: No such file or directory
8 | #include <fast_lio/Pose6D.h>
| ^~~~~~~~~~~~~~~~~~~
compilation terminated.
Invoking "make -j4 -l4" failed
간단(?) 히 해결하는 방법이 있다.
src/fast_lio/FAST_LIO에 CMakeLists.txt를 vsCode나 vim 등으로 열어보면 아래와 같은 코드 블럭이 있을 것이다.
find_package(catkin REQUIRED COMPONENTS
geometry_msgs
nav_msgs
sensor_msgs
roscpp
rospy
std_msgs
pcl_ros
tf
livox_ros_driver
message_generation
eigen_conversions
)
여기 마지막 줄에 다음과 같이 genmsg를 추가해 주자.
find_package(catkin REQUIRED COMPONENTS
geometry_msgs
nav_msgs
sensor_msgs
roscpp
rospy
std_msgs
pcl_ros
tf
livox_ros_driver
message_generation
eigen_conversions
genmsg
)
그리고 아예 마지막 줄
target_include_directories(fastlio_mapping PRIVATE ${PYTHON_INCLUDE_DIRS}) 아래에
다음과 같은 코드를 추가한다.
add_dependencies(fastlio_mapping fast_lio_generate_messages_cpp)
다시 경건한 마음으로 SLAM 폴더에서
>> catkin_make
해결!
'ROS1 고군분투기' 카테고리의 다른 글
[ROS1] ROS Noetic 설치 - rosbridge를 돌리기 위한 노력 (0) | 2023.11.07 |
---|