当前位置:网站首页>Quadruped robot | gem (elevation map) + fast_ Deployment records of Leo (odometry) environment
Quadruped robot | gem (elevation map) + fast_ Deployment records of Leo (odometry) environment
2022-07-28 22:37:00 【TwilightZrui】
Due to the needs of the project and scientific research , Often need to be on different platforms ( For example, my desktop and projects pc) Deploy GEM(elevation map) + Fast_lio(odomtry) Environment , Therefore, record the installation process and the solutions that appear every time in the process .
System :
Ubuntu 18.04 CUDA10.2
1. GEM && GEM Dependencies install
GEM yes ZJU Robotics Lab Open source construction elevation map Program
@ARTICLE{
9293017,
author={
Y. {
Pan} and X. {
Xu} and X. {
Ding} and S. {
Huang} and Y. {
Wang} and R. {
Xiong}},
journal={
IEEE Transactions on Instrumentation and Measurement},
title={
GEM: Online Globally Consistent Dense Elevation Mapping for Unstructured Terrain},
year={
2021},
volume={
70},
number={
},
pages={
1-13},
doi={
10.1109/TIM.2020.3044338}}
0) costmap 、octomap INSTALL
sudo apt install ros-melodic-costmap-2d
sudo apt-get install ros-melodic-octomap-msgs
sudo apt-get install ros-melodic-octomap-ros
1)Grid Map INSTALL
Addr: https://github.com/anybotics/grid_map
INSTALL:
cd catkin_ws/src
git clone https://github.com/anybotics/grid_map.git
cd ../
catkin_make
There may be problems :
In file included from /home/ysc/hedian_lib/grid_map_ws/src/grid_map-master/grid_map_filters/src/ThresholdFilter.cpp:9:0:
/home/ysc/hedian_lib/grid_map_ws/src/grid_map-master/grid_map_filters/include/grid_map_filters/ThresholdFilter.hpp:14:10: fatal error: filters/filter_base.hpp: There is no file or directory
#include <filters/filter_base.hpp>
^~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
grid_map-master/grid_map_filters/CMakeFiles/grid_map_filters.dir/build.make:62: recipe for target 'grid_map-master/grid_map_filters/CMakeFiles/grid_map_filters.dir/src/ThresholdFilter.cpp.o' failed
make[2]: *** [grid_map-master/grid_map_filters/CMakeFiles/grid_map_filters.dir/src/ThresholdFilter.cpp.o] Error 1
CMakeFiles/Makefile2:4940: recipe for target 'grid_map-master/grid_map_filters/CMakeFiles/grid_map_filters.dir/all' failed
make[1]: *** [grid_map-master/grid_map_filters/CMakeFiles/grid_map_filters.dir/all] Error 2
make[1]: *** Waiting for unfinished tasks ....
solve :
take grid_map All of them filter_base.hpp Switch to filter_base.h. Pictured 
2)Kindr
Addr : https://github.com/anybotics/kindr
git clone https://github.com/ANYbotics/kindr.git
cd kindr/
mkdir build
cd build
cmake .. -DUSE_CMAKE=true
sudo make install
3) PCL
ROS Installed in the background PCL and VTK
Test available PCL edition :PCL-1.8
4) Eigen
because fast lio need Eigen 3.3.9, Therefore, you can have Eigen Install another one on the basis of 3.3.9 edition , Switch versions when using
Eigen 3.3.9 Version download
View the present Eigen edition
gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h
install Eigen 3.3.9
#git clone https://github.com/libeigen/eigen.git
wget https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.zip
unzip eigen-3.3.9.zip
Eigen3 Multi version switching
4) CUDA
Tested GEM Usable CUDA edition
CUDA Version 11.0.207
CUDA Version 10.2.89
First check cuda edition
cat /usr/local/cuda/version.txt
CUDA Version 10.2.89
see CUDA Ability to calculate (GEM in CUDA Configuration requires )
cd /usr/local/cuda-11.0/samples/1_Utilities/deviceQuery
2 sudo make
3 sudo ./deviceQuery
Query results :
therefore , This machine CUDA Ability to calculate
arch=compute_86,code=sm_86
5) GEM
cd catkin_workspace/src
git clone https://github.com/ZJU-Robotics-Lab/GEM.git
git clone https://github.com/ZJU-Robotics-Lab/slam_msg.git
git clone https://github.com/ANYbotics/kindr_ros.git
cd ../
catkin_make
problem 1:
[ 1%] Built target actionlib_generate_messages_eus
In file included from /usr/include/eigen3/Eigen/Core:42:0,
from /home/ysc/gem_test_0422/src/elevation_mapping_periodical/elevation_mapping/cuda/gpu_process.cu:15:
/usr/local/cuda-10.2/include/math_functions.hpp:54:2: warning: #warning "crt/math_functions.hpp is an internal header file and must not be used directly. Please use cuda_runtime_api.h or cuda_runtime.h instead." [-Wcpp]
#warning "crt/math_functions.hpp is an internal header file and must not be used directly. Please use cuda_runtime_api.h or cuda_runtime.h instead."
^~~~~~~
In file included from /usr/local/cuda-10.2/include/cuda_runtime.h:115:0,
from <command-line>:0:
/usr/local/cuda-10.2/include/crt/common_functions.h:74:24: error: token ""__CUDACC_VER__ is no longer supported. Use __CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, and __CUDACC_VER_BUILD__ instead."" is not valid in preprocessor expressions
#define __CUDACC_VER__ "__CUDACC_VER__ is no longer supported. Use __CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, and __CUDACC_VER_BUILD__ instead."
^
/usr/local/cuda-10.2/include/crt/common_functions.h:74:24: note: in definition of macro ‘__CUDACC_VER__’
#define __CUDACC_VER__ "__CUDACC_VER__ is no longer supported. Use __CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, and __CUDACC_VER_BUILD__ instead."
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/cuda-10.2/include/crt/common_functions.h:74:24: error: token ""__CUDACC_VER__ is no longer supported. Use __CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, and __CUDACC_VER_BUILD__ instead."" is not valid in preprocessor expressions
#define __CUDACC_VER__ "__CUDACC_VER__ is no longer supported. Use __CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, and __CUDACC_VER_BUILD__ instead."
^
/usr/local/cuda-10.2/include/crt/common_functions.h:74:24: note: in definition of macro ‘__CUDACC_VER__’
#define __CUDACC_VER__ "__CUDACC_VER__ is no longer supported. Use __CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, and __CUDACC_VER_BUILD__ instead."
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[ 1%] Built target tf_generate_messages_lisp
/
problem 1 solve :
cd /usr/local/cuda-10.2/include/crt/common_functions.h
comment out line 74
#define __CUDACC_VER__ "__CUDACC_VER__ is no longer supported. Use __CUDACC_VER_MAJOR__, __CUDACC_VER_MINOR__, and __CUDACC_VER_BUILD__ instead.
problem 2

problem 2 solve
This is a CUDA Cmakelist in NVCC Compilation settings are not set correctly
CUDA It's using NVCC compiler , The compilation process will not be in catkin_make Window error , But it will be there. GEM function CUDA Report an error in the process
Should be based on CUDA deviceQuery The result of query is modified arch=compute_80,code=sm_80
src/elevation_mapping_periodical/elevation_mapping/cuda/CMakeLists.txt
project(gpu) # required cmake version
cmake_minimum_required(VERSION 2.8) # packages
find_package(CUDA REQUIRED)
find_package(Eigen3 REQUIRED)
find_package(kindr)
# set(CUDA_NVCC_FLAGS -O3;-G;-g)
SET(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-O3;-std=c++14 -gencode arch=compute_80,code=sm_80)
# SET(CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS};-O3;-std=c++14 -gencode arch=compute_75,code=sm_75)
#include_directories(${EIGEN3_INCLUDE_DIRS})
file(GLOB_RECURSE CURRENT_HEADERS *.h *.hpp *.cuh)
file(GLOB CURRENT_SOURCES *.cpp *.cu)
source_group("Include" FILES ${CURRENT_HEADERS})
source_group("Source" FILES ${CURRENT_SOURCES})
cuda_add_library(gpu SHARED ${CURRENT_HEADERS} ${CURRENT_SOURCES})
problem 3
This is in a poor performance NX Up and running GEM, I hung up as soon as I ran , Because the processor performance is too poor , I can't handle so much

problem 4 solve
hold src/elevation_mapping_periodical/elevation_mapping/src/ElevationMapping.cpp Chinese vs image Comment out the processing part of (image Color the point cloud ), It will save a lot of computing power
Pictured
Comment it out and you can run 
problem 5
code ~/src/elevation_mapping_periodical/elevation_mapping_demos/config/robots/fxz_robot.yaml
camera_params_yaml: "/home/nickle/yq_intrinsic.yaml" To change the path , Here, the absolute path is set in the source code
2. FAST-Lio && FAST-Lio Dependencies install
1) Livox-SDK
Livox-SDK Installation instructions
git clone https://github.com/Livox-SDK/Livox-SDK.git
cd Livox-SDK
cd build && cmake ..
make
sudo make install
2)livox_ros_driver
https://github.com/Livox-SDK/livox_ros_driver
git clone https://github.com/Livox-SDK/livox_ros_driver.git ws_livox/src
cd ws_livox
catkin_make
3)FAST -LIO
cd ~/$A_ROS_DIR$/src
git clone https://github.com/hku-mars/FAST_LIO.git
cd FAST_LIO
git submodule update --init
cd ../..
catkin_make
source devel/setup.bash
problem 1
In file included from /home/ysc/GEM_ws/src/fast-lio/FAST_LIO_ws/src/FAST_LIO/src/IMU_Processing.hpp:11:0,
from /home/ysc/GEM_ws/src/fast-lio/FAST_LIO_ws/src/FAST_LIO/src/laserMapping.cpp:46:
/home/ysc/GEM_ws/src/fast-lio/FAST_LIO_ws/src/FAST_LIO/include/common_lib.h:8:10: fatal error: fast_lio/Pose6D.h: There is no file or directory
#include <fast_lio/Pose6D.h>
^~~~~~~~~~~~~~~~~~~
compilation terminated.
fast-lio/FAST_LIO_ws/src/FAST_LIO/CMakeFiles/fastlio_mapping.dir/build.make:62: recipe for target 'fast-lio/FAST_LIO_ws/src/FAST_LIO/CMakeFiles/fastlio_mapping.dir/src/laserMapping.cpp.o' failed
make[2]: *** [fast-lio/FAST_LIO_ws/src/FAST_LIO/CMakeFiles/fastlio_mapping.dir/src/laserMapping.cpp.o] Error 1
make[2]: *** Waiting for unfinished tasks ....
In file included from /home/ysc/GEM_ws/src/fast-lio/FAST_LIO_ws/src/FAST_LIO/src/preprocess.cpp:1:0:
/home/ysc/GEM_ws/src/fast-lio/FAST_LIO_ws/src/FAST_LIO/src/preprocess.h:4:10: fatal error: livox_ros_driver/CustomMsg.h: There is no file or directory
#include <livox_ros_driver/CustomMsg.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
fast-lio/FAST_LIO_ws/src/FAST_LIO/CMakeFiles/fastlio_mapping.dir/build.make:110: recipe for target 'fast-lio/FAST_LIO_ws/src/FAST_LIO/CMakeFiles/fastlio_mapping.dir/src/preprocess.cpp.o' failed
make[2]: *** [fast-lio/FAST_LIO_ws/src/FAST_LIO/CMakeFiles/fastlio_mapping.dir/src/preprocess.cpp.o] Error 1
CMakeFiles/Makefile2:6324: recipe for target 'fast-lio/FAST_LIO_ws/src/FAST_LIO/CMakeFiles/fastlio_mapping.dir/all' failed
make[1]: *** [fast-lio/FAST_LIO_ws/src/FAST_LIO/CMakeFiles/fastlio_mapping.dir/all] Error 2
Makefile:140: recipe for target 'all' failed
make: *** [all] Error 2
Invoking "make -j6 -l6" failed
solve :
Manual will livox_ros_driver Generated msg Copied to the ws/devel/include Next
problem 2
FASTlio Adapted to eigen yes 3.3.9
If not, it will produce a lot of Eigen Related error reporting , At this time, you can switch or install according to the above instructions Eigen3-3-9
边栏推荐
- 79. Word search (medium string array matrix backtracking)
- Tensorflow serving high performance machine learning model service system
- Sword finger offer II 053. Medium order successor in binary search tree (medium binary search tree DFS)
- 删除容器镜像报错解决image is referenced in multiple repositories
- 二进制的原码、反码、补码
- 纪念一下第一次写的线段树了喽(对应洛谷3372)
- Sword finger offer II 058. schedule (medium design segment tree treemap ordered set)
- Analysis notes on let (const) temporary dead zone in JS
- 98. Verify binary search tree (medium binary search tree DFS)
- Win11 how to open software notification
猜你喜欢

Ruiji takeout project - development of business development function Day2

Solve Jupiter: the term 'Jupiter' is not recognized as the name of a cmdlet, function, script file

Concise history of graphic technology

Idea generate class diagram plug-in UML (super detailed)

示波器发展史中的变化
How do we do full link grayscale on the database?

2022年一级建造师考试什么时候才能报名?

ATT&CK 威胁情报

Research cup element recognition multi label classification task based on ernie-3.0 cail2019 method

Att & CK Threat Intelligence
随机推荐
When can I sign up for the 2022 class I constructor examination?
771. 字符串中最长的连续出现的字符
105. Construct binary tree from preorder and inorder traversal sequence (medium binary tree DFS hash table binary tree)
Solve the problem that TS node xxx.ts executes TS code and reports errors
Baidu map usage
How do we do full link grayscale on the database?
Why doesn't the icon on the elment plus icon input display
Excel-VBA 快速上手(十三、日期的常见用法)
gprs网络指的是什么
微信小程序里button点击的时候会边框有黑线
PaddleNLP基于ERNIR3.0文本分类以CAIL2018-SMALL数据集罪名预测任务为例【多标签】
Common commands of NPM
JMeter installs third-party plug-ins plugins Manager
NPM switch Taobao source (NPM source)
MySQL built-in functions
Research cup element recognition multi label classification task based on ernie-3.0 cail2019 method
Can the MySQL create statement be used to create a table structure and append new records
LVS+KeepAlived高可用部署实战应用
DOM programming + events
Changes in the history of oscilloscope development