ROS随笔记(二)
1.ubuntu安装GIMP(可用于修改pgm地图)
修改pgm地图的轻量软件:GIMP,可通过软件商店直接安装。
参考链接:Ubuntu18.04通过软件商店安装类似Photoshop的GIMP 2.10.20
2.安装gtsam
gtsam编译报错:
/gtsam/gtsam/3rdparty/CCOLAMD/Source/ccolamd.c:1:0: error: unknown value ‘native’ for -march
参考链接:GTSAM各版本汇总及ubuntu20.04编译时遇到问题及方法总结
GTSAM在LOAM/LIO-SAM系列中mapOptmization进程中断问题
安装GTSAM
解决办法:(安装GTSAM过程)
##1.下载gtsam源码
git clone https://bitbucket.org/gtborg/gtsam.git
##2.依赖
Boost >= 1.43 (Ubuntu: sudo apt-get install libboost-all-dev)
CMake >= 3.0 (Ubuntu: sudo apt-get install cmake)
##3.编译
mkdir build
cd build
cmake .. -DGTSAM_BUILD_WITH_MARCH_NATIVE=OFF
make check (可以选的)
make install #或者sudo make install
2)安装gtsam报错
安装gtsam时,make报错
undefined reference to pthread_mutexattr_init
解决方法:
在CMakeLists.txt里面加上以下:
set(CMAKE_CXX_FLAGS "-std=c++11 -O2 -pthread")
3.编译grid_map
包报错
编译grid_map
包报一堆<filters/filter_base.hpp>
错:
/grid_map/grid_map_filters/include/grid_map_filters/MathExpressionFilter.hpp:14:10: fatal error: filters/filter_base.hpp: No such file or directory
#include <filters/filter_base.hpp>
**解决方案:**将对应路径的.h
文件中#include <filters/filter_base.hpp>
修改为#include <filters/filter_base.h>
4.编译grid_map
包中grid_map_filters
报错(AARCH64 linux架构)
编译grid_map
包中grid_map_filters
报错:
/grid_map/grid_map_filters/CMakeLists.txt:35 (find_package): By not providing “FindTBB.cmake” in CMAKE_MODULE_PATH this project has asked CMake to find a package configuration file provided by “TBB”, but CMake did not find one.
Could not find a package configuration file provided by “TBB” (requested version 2020.1) with any of the following names:TBBConfig.cmake
tbb-config.cmake
解决方法:
1.安装AARCH64 linux架构下的TBB库:
PS: 装的是2020.2版本(找不到AARCH64 linux版TBB的2020.2版本),grid_map指定的是2020.1版本,所以需要修改一下/grid_map_filters/CMakeLists.txt
文件。
cd tbb-aarch64
./scripts/bootstrap-aarch64-linux.sh
cmake .
sudo make install ##加上sudo,不然会报错
2.修改一下/grid_map_filters/CMakeLists.txt
文件
报错:
/grid_map/grid_map_filters/CMakeLists.txt:35 (find_package): Could not find a configuration file for package “TBB” that exactly matches requested version “2020.1”. The following configuration files were considered but not accepted:
/usr/local/lib/cmake/tbb/TBBConfig.cmake, version: 2020.2
解决方法:修改一下/grid_map_filters/CMakeLists.txt
文件:
按照报错提示,把CMakeLists.txt
中35行2020.1改成2020.2即可。
5.make
sudo make -j$(nproc) #该命令自动计算可用几核
6.查看版本
(1)eigen3
pkg-config --modversion eigen3
dpkg -s libeigen3-dev | grep Version #方法2
(2)opencv
opencv_version
pkg-config --modversion opencv #方法2
(3)Eigen & cere-solover
# Eigen
sudo gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h #大概14-16行
# cere-solover
打开home下安装ceres-solver的文件夹,然后打开ceres-solver的package.xml文件,可以看到版本号
PS: Eigen & cere-solover版本对应关系:
Ceres Solver
7.GDB调试ROS Launch启动程序
参考链接:GDB调试ROS Launch启动程序
GDB调试常用参数
//在launch文件中添加
launch-prefix = "gdb -ex run --args"
GDB常用参数:
(gdb)n:单步调试(逐过程,函数直接执行)
s:单步调试(逐语句:跳入自定义函数内部执行)
bt:查看函数的调用的栈帧和层级关系
c:继续运行
q:退出gdb
b:在第num行设置断点
d:删除第num个断点
8.ImportError: No module named sklearn.neighbors(跑Livox-Localization)
解决方法:确保python环境下安装了sklearn
sudo apt-get install python-sklearn
参考链接:
Ubuntu下安装scikit-learn(sklearn)
9.ceres报错
/usr/bin/ld: /home/xavier/zq/kyxz/devel/.private/project_721/lib/project_721/estimate_test: hidden symbol `_ZN5ceres12CostFunctionD2Ev’ in /usr/local/lib/libceres.a(cost_function.cc.o) is referenced by DSO
/usr/bin/ld: final link failed: Bad value
collect2: error: ld returned 1 exit status
解决方法:
把ceres中的CmakeLists内容:
set(CMAKE_C_VISIBILITY_PRESET hidden)
set(CMAKE_CXX_VISIBILITY_PRESET hidden)
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
改为
set(CMAKE_C_VISIBILITY_PRESET default)
set(CMAKE_CXX_VISIBILITY_PRESET default)
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
参考链接:
Hidden symbol error. #804
10.ubuntu关闭自动休眠
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
参考链接:
如何关闭Ubuntu的自动休眠