机器人基础工具箱(Robot Basic Tools, 简称RBT)旨在对机器人上常用的传感器,比如相机、单多线激光雷达、IMU、里程计等,进行单个或者多个传感器的内外参标定,对不同传感器数据进行时序分析。本工具基于openGL开发,为用户提供了友善的UI界面与明晰的结果展示。
本工具依赖以下开源库或工程:
- gl3w-Simple OpenGL core profile loading:openGL相关
- glfw:openGL相关
- Dear ImGui:GUI框架
- Portable File Dialogs:GUI 文件对话框
- ROS:通信与机器人交互
- openCV: 图像数据处理相关
- ceres: 优化库
- nlohmann-json: json数据处理相关
- camera_model: 相机模型相关
ui框架参考了interactive_slam @koide3。
本工具测试环境为Ubuntu 18.04,建议系统版本 >= Ubuntu 18.04。
sudo apt install libglm-dev libglfw3-dev
建议安装2.0.0及以上版本。参考Installation:Linux
# 安装ceres依赖
# CMake
sudo apt-get install cmake
# google-glog + gflags
sudo apt-get install libgoogle-glog-dev libgflags-dev
# BLAS & LAPACK
sudo apt-get install libatlas-base-dev
# Eigen3
sudo apt-get install libeigen3-dev
# SuiteSparse and CXSparse (optional)
sudo apt-get install libsuitesparse-dev
# 下载
git clone https://ceres-solver.googlesource.com/ceres-solver
# 安装
tar zxf ceres-solver-2.0.0.tar.gz
mkdir ceres-bin
cd ceres-bin
cmake ../ceres-solver-2.0.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.
make install
建议安装4.3.0及以上版本。参考Installation in Linux:Build core modules
# 安装opencv依赖
sudo apt-get install \
libgtk-3-dev \
libjpeg-dev \
libpng++-dev \
libtiff-dev \
libopenexr-dev \
libwebp-dev \
ffmpeg \
libavcodec-dev \
libavformat-dev \
libavutil-dev \
libswscale-dev \
libavresample-dev
# 编译
cmake \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DBUILD_DOCS=OFF \
-DBUILD_EXAMPLES=OFF \
-DBUILD_JASPER=OFF \
-DBUILD_OPENEXR=OFF \
-DBUILD_PERF_TESTS=OFF \
-DBUILD_TESTS=OFF \
-DBUILD_opencv_apps=OFF \
-DBUILD_opencv_dnn=OFF \
-DBUILD_opencv_ml=OFF \
-DBUILD_opencv_python_bindings_generator=OFF \
-DENABLE_CXX11=ON \
-DENABLE_FAST_MATH=ON \
-DWITH_EIGEN=ON \
-DWITH_FFMPEG=ON \
-DWITH_OPENMP=ON ..
根据自己系统安装相应的版本,参考ros wiki。
ubuntu 18.04安装参考
robot basic tools工具需在新创建ROS工作空间中运行,请优先创建工作空间,并source当前空间。
# 获取代码
git clone https://github.com/hardjet/robot_basic_tools.git
# 更新子模块
git submodule sync
git submodule init
git submodule update
# 如果opencv,ceres安装在系统默认位置
catkin_make -DCATKIN_WHITELIST_PACKAGES="robot_basic_tools" -j4
# 指定opencv, ceres库位置(请优先source当前工作空间)
catkin_make -DCATKIN_WHITELIST_PACKAGES="robot_basic_tools" -DOpenCV_LIB_DIR="/path/to/opencv/lib/" -DCeres_LIB_DIR="/path/to/ceres/lib/" -j4
可以在源码根目录创建.lib_path_config文件,指定opencv, ceres库位置。格式如下:
OpenCV_LIB_DIR=/home/xxx/work/lib/opencv43/
Ceres_LIB_DIR=/home/xxx/work/lib/ceres-solver-2.0.0/
# 运行
roslaunch robot_basic_tools run.launch
# 使用rosbag回放时
roslaunch robot_basic_tools sim.launch
本工具遵照 GPLv3 license。