虽然使用Ubuntu 16.04 安装Ceres所记录的方法安装了最新的ceres,但是在colcon build VINS程序包的时候,报错:
例如:
ceres/internal/variadic_evaluate.h:71:12: error: ‘make_integer_sequence’ in namespace ‘std’ does not name a template type
等等,提示的是Ceres错误。
根据链接:
ceres报错:Eigen3版本和ceres版本冲突问题 - 知乎
删除了现存Ceres:
sudo rm -r /usr/local/lib/cmake/Ceres
sudo rm -rf /usr/local/include/ceres /usr/local/lib/libceres.a
sudo rm -r /usr/local/share/Ceres
重新下载ceres 1.14.0:
wget ceres-solver.org/ceres-solver-1.14.0.tar.gz
解压
tar xvf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0
创建编译目录
mkdir build
切换到编译目录
cd build
生成Makefile
cmake ..
编译
make -j4
make test
安装
sudo make install
转回VINS文件夹,再次colcon build成功,不再报错。启动前端,有正确的响应:
SUMMARY========
PARAMETERS
* /rosdistro: kinetic
* /rosversion: 1.12.14
* /vins_estimator/config_file: /home/junchuan/si...
NODES
/
vins_estimator (sineva_mapping_vins/sineva_mapping_vins_node)
auto-starting new master
process[master]: started with pid [7343]
ROS_MASTER_URI=http://localhost:11311
setting /run_id to 0c6f4634-bb9e-11ea-8798-fc017c31e4a7
process[rosout-1]: started with pid [7356]
started core service [/rosout]
process[vins_estimator-2]: started with pid [7363]
[ INFO] [1593609808.243356380]: init begins
USE_IMU: 1
IMU_TOPIC: /imu
result path ../output//vio.csv
[ WARN] [1593609808.248722671]: fix extrinsic param
camera number 2
/home/junchuan/sineva_vins/mapping_20200113/install/sineva_mapping_vins/share/sineva_mapping_vins/config/mynteye/left_pinhole.yaml
exitrinsic cam 0
1 0 -0
0 -1 -0
-0 0 -1
-0.0533469 0.00817438 -0.0286183
exitrinsic cam 1
1 0 0
0 -1 -0
0 0 -1
0.0666531 0.00817438 -0.0286183
set g 0 0 9.81007
MULTIPLE_THREAD is 1
[ WARN] [1593609808.249001968]: waiting for image and imu...