当前位置:网站首页>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
边栏推荐
- SQL injection less42 (post stack injection)
- [Ruiji takeout] day05 package management business development
- 105. Construct binary tree from preorder and inorder traversal sequence (medium binary tree DFS hash table binary tree)
- 32. Longest valid bracket (difficult stack string)
- AWK空行过滤
- [LiteratureReview]Object Detection and Mapping with Bounding Box Constraints
- Ultra detailed visual studio 2019 running littlevgl (lvgl) simulator
- [leetcode] maximum depth of binary tree
- 纪念一下第一次写的线段树了喽(对应洛谷3372)
- Qt+FFmpeg环境搭建
猜你喜欢

Ngrok intranet penetration

CMD common commands

Ultra detailed visual studio 2019 running littlevgl (lvgl) simulator

Lvs+keepalived high availability deployment practical application
![[connect set-top box] - use ADB command line to connect ec6108v9 Huawei Yuehe box wirelessly](/img/ab/624e9a3240416f8445c908378310ad.png)
[connect set-top box] - use ADB command line to connect ec6108v9 Huawei Yuehe box wirelessly

internet的基本服务中文件传输命令是哪个

Changes in the history of oscilloscope development

PaddleNLP基于ERNIR3.0文本分类以CAIL2018-SMALL数据集罪名预测任务为例【多标签】

Ruiji takeout - background login function development

How about the actual use effect of common source oscilloscope
随机推荐
Overall introduction of Ruiji takeout project
近期bug总结
ngx+sql环境离线安装日志(rpm安装)
tutorial/detailed_ workflow. Ipynb quantitative finance qlib Library
Wechat applet uses canvas drawing, round avatar, network background, text, dotted line, straight line
JS array merging, de duplication, dimensionality reduction (es6: extended operator, set)
Leetcode question brushing series - sum of majority type
Mysql8.0 cannot authorize users or prompt you are not allowed to create a user with grant
SSH password free login
imx6q gpio复用
Concise history of graphic technology
How about the actual use effect of common source oscilloscope
软考网络工程师
When can I sign up for the 2022 class I constructor examination?
Sword finger offer II 055. Binary search tree iterator (medium binary search tree iterator)
Paddlenlp text classification based on ernir3.0: take wos dataset as an example (hierarchical classification)
Which is the file transfer command in the basic services of the Internet
redis相关
tutorial/detailed_workflow.ipynb 量化金融Qlib库
XXX port is already in use