一、安装ceres
1.安装ceres1.14.0
https://codeload.github.com/ceres-solver/ceres-solver/tar.gz/refs/tags/1.14.0
如果安装过可卸载(我安过2.2.0报错,所以安1.14.0)
sudo rm -r /usr/local/lib/cmake/Ceres
sudo rm -r /usr/local/include/ceres /usr/local/lib/libceres.a
# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# Use ATLAS for BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse (optional)
sudo apt-get install libsuitesparse-dev
ceres-solver-1.14.0.tar.gz 复制到主目录
主目录打开终端:
tar zxf ceres-solver-1.14.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-1.14.0
make -j3
make test
# Optionally install Ceres, it can also be exported using CMake which
# allows Ceres to be used without requiring installation, see the documentation
# for the EXPORT_BUILD_DIR option for more information.
sudo make install
二、VINS-Fusion编译
cp -r ~/XTDrone/sensing/slam/vio/VINS-Fusion ~/catkin_ws/src/
mkdir ~/catkin_ws/scripts/
cp ~/XTDrone/sensing/slam/vio/xtdrone_run_vio.sh ~/catkin_ws/scripts/
cd ~/catkin_ws
catkin_make #或catkin build,取决于您的编译工具
三、无点云输出
即将如下代码添加到/usr/local/lib/cmake/Ceres/CeresConfig.cmake中:
set(EIGEN_INCLUDE_DIR "/usr/local/include/eigen3") #添加此行
set(CERES_EIGEN_VERSION 3.3.9) #添加此行,版本号与你安装的对应
四、VINS-Fusion仿真
1.PX4飞控EKF配置(可选,视觉定位)
修改rcS配置文件
gedit ~/PX4_Firmware/ROMFS/px4fmu_common/init.d-posix/rcS
# GPS used
#param set EKF2_AID_MASK 1
# Vision used and GPS denied
param set EKF2_AID_MASK 24
# Barometer used for hight measurement
#param set EKF2_HGT_MODE 0
# Barometer denied and vision used for hight measurement
param set EKF2_HGT_MODE 3
删除参数文件:
重启仿真前,需要删除上一次记录在虚拟eeprom中的参数文件,否则仿真程序会读取该参数文件,导致本次rcS的修改不能生效
rm ~/.ros/eeprom/parameters*
rm -rf ~/.ros/sitl*
2.仿真
打开仿真文件
cd PX4_Firmware/
roslaunch px4 indoor1.launch
运行vins-fusion
cd ~/catkin_ws
bash scripts/xtdrone_run_vio.sh
修改话题(视觉定位所需)
cd ~/XTDrone/sensing/slam/vio
python vins_transfer.py iris 0
查看无人机实时位置、姿态(视觉定位所需)
rostopic echo /iris_0/mavros/local_position/pose
开启视觉定位(视觉定位所需)
cd ~/XTDrone/sensing/pose_ground_truth
python3 get_local_pose.py iris 1
建立通信
cd ~/XTDrone/communication
python multirotor_communication.py iris 0
键盘控制起飞
cd ~/XTDrone/control/keyboard
python multirotor_keyboard_control.py iris 1 vel