多传感器标定自学记录(持续更新)

本文介绍了在VMware中安装Ubuntu20.04,配置ROSNoetic版本,以及如何安装和使用IMU传感器、标定工具箱opencalib进行相机和IMU校准的过程,包括解决Docker安装问题和Pangolin库版本调整等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装vmware以及ubuntu以及Ubuntu对应的ros版本

(以下指路大佬)

VMware虚拟机安装Ubuntu20.04详细图文教程_vmware ubuntu-优快云博客

这一步自行解决,我安装的是

vmware17pro

Ubuntu20.04

ros 安装noetic版本(这个太好用了,必须指路)

如何一行代码安装ROS|2022最新版|一行代码安装ROS2|一行代码解决rosdep|一行代码配置多ROS环境_小鱼一行代码安装ros-优快云博客

 这里在介绍一个好用的终端插件,终端直接安装

sudo apt install terminator

这可以让你的终端分页分块 

二、IMU传感器

IMU(inertia measurement unit)惯性传感器是指由3个加速度计和3个陀螺仪组成的组合单元,陀螺仪用来检测三个方向的角速度,加速度计用来检测三个方向的加速度。

1.应用惯性测量

2.多传感器融合:

           为什么能融合:①IMU数据与其他传感器数据互补

                                    ②IMU数据频率很高

3.什么是九轴IMU?

三轴加速度、三轴角速度、三轴磁力(气压)

4.IMU有哪些性能参数?

量程、非线性度、零偏、轴间灵敏度、噪声密度、温偏

5.有哪些常见的IMU芯片?
MPU9250、ADIS16405

原始数据采集:

  1. 硬件电路搭建
  2. 固件驱动开发(具体开发得看相应的芯片手册)
  3. 上位机ros驱动程序

参数标定

三、标定工具箱:

https://github.com/Autoware-Al/autoware.ai

https://github.com/ethz-asl/kalibr

opencalib链接:

https://github.com/PJLab-ADG/SensorsCalibration

四、相机标定 

 什么是FOV

FOV (Field of View)的大小取决于相机镜头的焦距和传感器尺寸。较短的焦距和较大的传感器尺寸会导致更大的FOV,即能够捕捉到更广阔的画面范围而较长的焦距和较小的传感器尺寸则会导致较小的 FOV,即只能捕捉到较为狭窄的画面范围。

相机坐标系转换:

 畸变:

五、安装docker/opencalib

指路:

最详细的ubuntu 安装 docker教程_ubuntu docker-优快云博客

 安装好docker后进行环境搭建

# pull docker image

sudo docker pull scllovewkf/opencalib:v1

# After the image is pulled down, start the docker image.  /home/sz3/ailab/ =  code root path on your host docker run -it -v /home/sz3/ailab/:/share scllovewkf/opencalib:v1 /bin/bash

# or

sudo ./run_docker.sh

如果运行第一步总是卡住的话:

使用Docker拉取一个镜像,但是在下载过程中遇到了问题。这可能是由于多种原因,包括网络问题、Docker服务问题或者磁盘空间不足等。以下是一些可能的解决方案:

  1. 重启Docker服务:您可以尝试重启Docker服务来解决这个问题。在终端中输入以下命令1
    sudo service docker restart
    
  2. 清理Docker的运行文件:有时候,Docker的运行文件可能会导致问题。您可以尝试删除这些文件2

    sudo rm -rf /var/run/docker

  3. sudo rm /var/run/docker.*

    然后重启Docker服务2
    sudo service docker start
    
  4. 检查网络连接:如果您的网络连接不稳定或者速度较慢,可能会导致下载过程中断。您可以尝试更换一个网络环境,或者使用代理服务器。

pcl官网链接

Releases · PointCloudLibrary/pcl · GitHub
注意此处要安装低版本的pcl(最好是1.9版本或以下)

 

opencalib是一个用于相机标定的开源软件,它基于ROS(机器人操作系统)开发,支持多种相机模型和标定板1。要在Ubuntu20.04上安装opencalib,您需要先安装ROS Noetic和一些依赖包2。您可以按照以下步骤进行安装:

  • 安装ROS Noetic
    • 添加ROS的软件源和密钥
      sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
      sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
      
    • 更新软件列表并安装ROS Noetic桌面版
      sudo apt update
      sudo apt install ros-noetic-desktop-full
      
    • 初始化ROS环境变量
      echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
      source ~/.bashrc
      
  • 安装catkin tools和其他依赖包
    • 安装catkin tools,一个用于构建ROS项目的工具
      sudo apt install python3-catkin-tools python3-osrf-pycommon
      
    • 安装opencalib所需的依赖包,包括Eigen,Boost,SuiteSparse,OpenCV,Poco,TBB等
      sudo apt install -y \
        git wget autoconf automake nano \
        libeigen3-dev libboost-all-dev libsuitesparse-dev \
        doxygen libopencv-dev \
        libpoco-dev libtbb-dev libblas-dev liblapack-dev libv4l-dev
      
  • 克隆并编译opencalib
    • 创建一个工作空间并克隆opencalib的源码
      mkdir -p ~/kalibr_workspace/src
      cd ~/kalibr_workspace/src
      git clone https://github.com/ethz-asl/kalibr.git
      
    • 编译opencalib并设置环境变量
      cd ~/kalibr_workspace
      catkin build -DCMAKE_BUILD_TYPE=Release
      echo "source ~/kalibr_workspace/devel/setup.bash" >> ~/.bashrc
      source ~/.bashrc
      

安装好结果如图

六、opencalib初使用

GitHub - PJLab-ADG/SensorsCalibration: OpenCalib: A Multi-sensor Calibration Toolbox for Autonomous Driving

对camera _intrinsic文件编译运行

1.进入camera_intrinsic文件夹

cd camera_intrinsic/

2.在进入cd intrinsic_calib/文件夹

cd intrinsic_calib/

 3.创建build工作空间

mkdir build

4.进入工作空间

cd build/

 5.编译工作空间

cmake ..

make -j3

 6.创建好空间后回到intrinsic_calib

cd ..

7. 运行一下现有程序

./bin/run_intrinsic_calibration ./data/

 运行结束后会给到这几幅标定图的数据

这里会给到一个相机的内参矩阵、以及畸变系数

以上是有关标定图的参数

同理对calib_verification文件下进行编译运行

可以得到这样一组数据

对lidar2camera里面的joint-calib进行编译

cd lidar2camera/

cd joint_calib/

重复以上步骤建立build然后编译空间

cmake ..

make -j3

 此处编译可能会偏慢一些

此处我发生了编译错误

解决方案如下

终端安装头文件

sudo apt-get install libgflags-dev

再重新编译环境即可

退回到joint_calib文件夹下

./bin/lidar2camera

用于输出运行语句

运行:

./bin/lidar2camera data/intrinsic/ data/circle.csv

然后运行结果如下

产线代码标定:

目标文件

此文件编译时发生了错误

将所有的CV_BGR2GRAY替换为cv::COLOR_BGR2GRAY,以适应新的OpenCV版本

再次编译即可

以下是各标定板运行结果

./bin/run_board_detect data/chessboard.jpg 0

 

./bin/run_board_detect data/vertical_board.jpg 1

 ./bin/run_board_detect data/circle_board.jpg 2

手动标定工具:

标定工具基础按键

同理我们在这个文件目录下编译

此处编译我遇到两个问题

一是找不到pangolin文件,自己查了一下发现没有安装,需要自己安装0.8版本pangolin

注意看这里cmake文件里面的版本,我将PCL版本换成了1.10.0版本,原内容为1.9.0,这里要更新不然编译错误

以下为pangolin安装步骤:

在Ubuntu 20.04中安装Pangolin的步骤如下:

  1. 首先,你需要安装一些依赖项1
sudo apt-get install cmake
sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
  1. 然后,你需要下载Pangolin文件并解压1。你可以从这个链接下载1

  2. 在Pangolin文件夹下创建一个新的文件夹,名为"build",并进入这个文件夹1

mkdir build
cd build
  1. 配置编译选项1
cmake ..
  1. 开始编译代码1
make -j2
  1. 如果出现报错,可能是没有安装g++,可以试试这句1
sudo apt-get install g++

然后再进行cmake过程1

  1. 最后,进行安装1
sudo make install

至此,安装完成1

装完这些再次进行编译即可打开工具箱

此处再对radar2camera进行编译运行

此处我报了很多错误,于是我在cmak文件里面进行了修改

这一步解决了后又提示我pangolin版本有问题:

以下是pangolin问题的解决(glsl文件)

注意pangolin版本问题

解决方法如下:

替换pangolin版本即可,将0.8版本换为更早的0.6版本

cd Pangolin
cd build 
sudo make uninstall
cd .. && rm -rf build
git checkout v0.6
git switch -c v0.6 #这个根据提示写就行了,貌似就是切换到另一个分支
mkdir build && cd build
cmake ..
cmake --build .
sudo make install

 解决成功后如下图

此处感谢前辈资料指示

Ubuntu系统工程中Pangolin库编译报错_‘struct pangolin::glbuffer’ has no member named ‘f-优快云博客

lidar2camera自动标定使用(此处用时会稍微久一点)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值