一、安装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
原始数据采集:
- 硬件电路搭建
- 固件驱动开发(具体开发得看相应的芯片手册)
- 上位机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服务问题或者磁盘空间不足等。以下是一些可能的解决方案:
- 重启Docker服务:您可以尝试重启Docker服务来解决这个问题。在终端中输入以下命令1:
sudo service docker restart
- 清理Docker的运行文件:有时候,Docker的运行文件可能会导致问题。您可以尝试删除这些文件2:
sudo rm -rf /var/run/docker
-
sudo rm /var/run/docker.*
sudo service docker start
- 检查网络连接:如果您的网络连接不稳定或者速度较慢,可能会导致下载过程中断。您可以尝试更换一个网络环境,或者使用代理服务器。
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
- 添加ROS的软件源和密钥
- 安装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
- 安装catkin tools,一个用于构建ROS项目的工具
- 克隆并编译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的源码
安装好结果如图
六、opencalib初使用
对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的步骤如下:
sudo apt-get install cmake
sudo apt-get install libglew-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
mkdir build
cd build
cmake ..
make -j2
sudo apt-get install g++
sudo make install
装完这些再次进行编译即可打开工具箱
此处再对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自动标定使用(此处用时会稍微久一点)