最近因為做融合定位,需要對IMU進(jìn)行標(biāo)定所以了解了下標(biāo)定的程序。但是網(wǎng)上的教程基本上都或多或少有點問題沒法,在我自己把坑趟完后,做個總結(jié)給后來者一個方便。
在烏爾禾等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計制作、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,成都全網(wǎng)營銷,外貿(mào)網(wǎng)站建設(shè),烏爾禾網(wǎng)站建設(shè)費用合理。1.1安裝依賴項sudo apt-get install libdw-dev
1.2安裝ceres如果說沒有安裝過那直接去搜索ceres的安裝方法全局安裝即可,若是自定義裝那么對于cmakelist.txt ,則需要注意加入
#由于我ceres版本較高所以需要C++17
set(CMAKE_CXX_FLAGS "-std=c++17")
set(THIRD_PATH_HOME_PATH /usr/local/third_party)#定義你的路徑
#find_package(Ceres REQUIRED)#注釋掉
include_directories(
${THIRD_PATH_HOME_PATH}/x64/include
${catkin_INCLUDE_DIRS}
${EIGEN3_INCLUDE_DIR}
)#加入頭文件
target_link_libraries(pnp ${Boost_LIBRARIES} ${OpenCV_LIBS} ${THIRD_PATH_HOME_PATH}/x64/lib/ceres)#加入lib
2.1安裝code_utils創(chuàng)建一個文件夾catkin_ws,內(nèi)部創(chuàng)建子文件夾src,用來作為編譯源碼
cd src
git clone https://github.com/gaowenliang/code_utils
cd ..
catkin_make #編譯這個空間
編譯完成后進(jìn)行下一步,若有錯誤找到cmakelist.txt 的31行做如下修改
include_directories("include" "include/code_utils")
2.2安裝imu_utils完成上一步后,將這個文件夾放入src中,如果所有庫都是全局安裝的那應(yīng)該不需要怎么進(jìn)行修改,如果報錯
make[2]: *** [imu_utils-master/CMakeFiles/imu_an.dir/build.make:181:/media/sunmc/My Passport/catkin_ws/devel/lib/imu_utils/imu_an] 錯誤 1
make[1]: *** [CMakeFiles/Makefile2:462:imu_utils-master/CMakeFiles/imu_an.dir/all] 錯誤 2
make: *** [Makefile:141:all] 錯誤 2
Invoking "make -j16 -l16" failed
那么需要在cmakelist.txt中做如下處理
set(BOOST_LINK_LIBS "-lboost_system -lboost_signals")#加入34行左右
target_link_libraries(imu_an ${BOOST_LINK_LIBS})#加入這個在57行左右
如果自定義了ceres位置等則需要如下修改,同時如果有以上報錯也需要進(jìn)行上述修改
set(CMAKE_CXX_FLAGS "-std=c++17")#6行
set(THIRD_PATH_HOME_PATH /usr/local/third_party)#9行
#find_package(Ceres REQUIRED)#注釋掉ceres
include_directories(
${THIRD_PATH_HOME_PATH}/x64/include/
${catkin_INCLUDE_DIRS}
${EIGEN3_INCLUDE_DIR}
)#28行
link_directories(
${THIRD_PATH_HOME_PATH}/x64/lib/boost
${THIRD_PATH_HOME_PATH}/x64/lib/protobuf
${THIRD_PATH_HOME_PATH}/x64/lib/glog
${THIRD_PATH_HOME_PATH}/x64/lib/gflags
${THIRD_PATH_HOME_PATH}/x64/lib/ceres
)#35行
target_link_libraries(imu_an ${catkin_LIBRARIES} ${OpenCV_LIBS} gflags glog protobuf ${BOOST_LINK_LIBS} ceres)#57行
然后進(jìn)行編譯
cd src
git clone https://github.com/gaowenliang/imu_utils
cd ..
catkin_make #編譯imu_utils
編譯完成后即可使用。
1、讓IMU保持靜止兩個小時,保存IMU數(shù)據(jù);
2、將IMU數(shù)據(jù)按照對應(yīng)的格式打包成IMU.bag;
3、然后根據(jù)自己的需求對src/imu_utils-master/launch文件進(jìn)行修改(可直接用文件下的):主要包括名字、時長之類的; 比如:A3.launch
4、rosbag play -r 200 imu-.bag (200倍速度發(fā)布)
source ./devel/setup.bash
roslaunch imu_utils A3.launch
5、最后標(biāo)定結(jié)果文件保存在src/imu_utils-master/data/ 找到對應(yīng)的 yaml文件
標(biāo)定結(jié)果格式為三軸的bias和隨機(jī)游走
%YAML:1.0
---
type: IMU
name: "16448"
Gyr:
unit: " rad/s"
avg-axis:
gyr_n: 5.4087209662838391e-03
gyr_w: 2.8014911724116295e-04
x-axis:
gyr_n: 9.8285305850927306e-04
gyr_w: 2.9311234179739457e-05
y-axis:
gyr_n: 1.8599032135948482e-03
gyr_w: 5.8209513808253253e-05
z-axis:
gyr_n: 1.3383406626747394e-02
gyr_w: 7.5292660373549607e-04
Acc:
unit: " m/s^2"
avg-axis:
acc_n: 6.1067058739634868e-02
acc_w: 1.3090835326163882e-03
x-axis:
acc_n: 7.7670032495112368e-02
acc_w: 2.1647622724341922e-03
y-axis:
acc_n: 3.8066062843794456e-02
acc_w: 8.9909838235641690e-04
z-axis:
acc_n: 6.7465080879997780e-02
acc_w: 8.6338994305855507e-04
參考:imu_utils IMU內(nèi)參標(biāo)定工具 imu_utils安裝教程 imu_utils使用教程_Baymax_在路上的博客-博客_imu_utils
使用imu_utils進(jìn)行IMU的誤差標(biāo)定以及IMU姿態(tài)解算_非晚非晚的博客-博客_imu_utils
c++ - Undefined reference to 'boost::system::generic_category()'? - Stack Overflow
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧