编译之前先说明3个问题,避免后面报错太多:
(1)全局安装ceres库,code_imu依赖ceres。
(2)不要同时把imu_utils和code_utils一起放到src下进行编译。
由于imu_utils 依赖 code_utils,所以先把code_utils放在工作空间的src下面,进行编译。然后再将imu_utils放到src下面,再编译。
sudo apt-get install libdw-dev
安装Ceres之前确保已经安装Eigen3.3版本。
(1)添加源
sudo gedit /etc/apt/sources.list
##把下面的源粘贴到source.list的最上方 ,保存退出
deb http://cz.archive.ubuntu.com/ubuntu trusty main universe
sudo apt-get update
(2)安装依赖裤
sudo apt-get install liblapack-dev libsuitesparse-dev libcxsparse3.1.2 libgflags-dev
sudo apt-get install libgoogle-glog-dev libgtest-dev
(3)下载Ceres
这里推荐下载老版本 ceres-solver-1.14.0.tar.gz
下载地址:Index of /ceres-solver
sudo tar -xzvf ceres-solver-1.14.0.tar.gz
cd ceres-solver-1.14.0 ####选择你的Ceres的解压路径
mkdir build && cd build
cmake ..
make
sudo make install
imu_utils下载地址为:GitHub - gaowenliang/imu_utils: A ROS package tool to analyze the IMU performance.
code_utils下载地址为: GitHub - gaowenliang/code_utils: my code utils
编译:
先把把code_utils放在工作空间的src下面,然后编译。
cd catkin_ws
catkin_make
成功以后,再把imu_utils放到工作空间的src线面进行编译。
cd catkin_ws
catkin_make
编译code_uitl 报错:
解决方法:
sudo apt-get install libdw-dev
imu上电10分钟后(数据更稳定),录制2个小时imu数据:
rosbag record /imu/data -o imu_120mins.bag
这里要录制两个小时的IMU数据,注意!!!录制数据时必须保持IMU的静止状态,录制全程不可晃动只录制IMU的Topic即可,不过别担心内存,两小时下来只要300M多一点。并且这个数据包最好是放到你imu_utils的工作空间下(与src并列的地方)。最好是IMU上电10分钟之后在开始录制,上电瞬间开始录制会有较大误差。
修改imu_utils/launch/A3.launch,重新复制一份更名为test.launch,修改内容如下:
第3行的value,修改内容为你所使用的imu数据话题.
开始标定
//启动launch
source devel/setup.bash
roslaunch imu_utils test.launch
此时运行录制好的bag包,以200倍速度播放
rosbag play -r200 imu_120mins.bag
直到bag包播放完,结果也就出来,结果会存到 /imu_utils/data中A3_imu_param.yaml中,每次都会覆盖前一次.
参考文献:
https://blog.csdn.net/fang794735225/article/details/92804030#commentBox
ubuntu16.04 安装Ceres - 知乎
ubuntu编译camera_model报错:fatal error: elfutils/libdw.h: 没有那个文件或目录_Akalaka的博客-CSDN博客