Ubuntu20.04 安装 noetic
本段教程参考于 https://www.guyuehome.com/12640
安装过程与ROS官网一致,网络无法连接时可以换个服务器,或使用国内镜像
安装完成后可以跑以下小乌龟的例子看一下是否ok安装完成后需要 sudo rosdep init ,提示website may be down ,总之在浏览器中可以打开这个网址,但终端中不能访问到,复制代码,新建文件,手动放到目录/etc/ros/rosdep/sources.list.d下
1 | sudo rosdep init |
1
2
3
sudo mkdir -p /etc/ros/rosdep/sources.list.d
cd /etc/ros/rosdep/sources.list.d
sudo gedit 20-default.list
1
2
3
4
5
6
7
8
9
10
# os-specific listings first
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml osx
# generic
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
yaml https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
gbpdistro https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml fuerte
# newer distributions (Groovy, Hydro, ...) must not be listed anymore, they are being fetched from the rosdistro index.yaml instead
之后执行rosdep update
若是githubusercontent不能访问,可以将其改为github
创建ROS工作空间
1 | mkdir -p ~/catkin_ws/src |
编译usb_cam
[usb_cam下载链接] (https://github.com/bosch-ros-pkg/usb_cam)
在ros工作空间 src目录下进行
1 | cd ~/catkin_ws/src |
编译安装ORB_SLAM2
本段教程参考自( https://www.cnblogs.com/MingruiYu/p/12286752.html )
Pangolin
安装教程见github https://github.com/stevenlovegrove/Pangolin
实测最新的pangolin需求c17过新 安装旧版V0.5就行opencv
到opencv官网 https://opencv.org/releases 下载源码自行编译安装
下载后解压1
2
3
4
5
6
7
8
9
10
11
12
13cd ~/opencv
mkdir build # 创建工程编译所需文件夹
cd build
#注意,后面的两个点千万不能省,代表了上级目录
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j10 # 多线程执行make任务
sudo make install
pkg-config --modversion opencv #查看安装版本Eigen
其下载和安装教程可见:(http://eigen.tuxfamily.org)。在ubuntu中,可以直接使用 sudo apt-get install libeigen3-dev进行安装
注:关于Eigen3的安装路径,如果出现程序include不到Eigen3的情况,可以参考 (https://www.cnblogs.com/newneul/p/8256803.html) 对Eigen3的位置进行调整。
安装ORB_SLAM2
1
2
3
4
5# 在 /catkin_ws/src 目录下
git clone https://github.com/raulmur/ORB_SLAM2.git
cd ORB_SLAM2
chmod +x build.sh
./build.sh
把摄像头数据发布到topic
1 | cd ~/catkin_ws |
修改ros_mono.cc
进入~/catkin_ws/src/ORB_SLAM2/Examples/ROS/ORB_SLAM2/src
打开 ros_mono.cc 把程序里面的topic改为 /usb_cam/image_raw
具体还要查看自己的rviz(即上一步打开的摄像头窗口的标题)
编译ros下的ORB_SLAM2
1 | echo $ROS_PACKAGE_PATH |
启动mono
1 | 在目录~/catkin_ws/src/ORB_SLAM2下 |
有两个参数,第二个参数是相机参数文件,根据自己的相机参数修改。
启动后正常如图
相机标定 获取参数
本段教程参考于( https://blog.csdn.net/yx868yx/article/details/115366655 )
使用棋盘格
下载ros的相机标定包
1
2rosdep install camera_calibration
rosmake camera_calibration启动usb_cam
1
2# 若失败 source一下 devel/setup.bash
roslaunch usb_cam usb_cam-test.launch启动标定程序
1
rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.025 image:=/usb_cam/image_raw camera:=/usb_cam
其中image:= 和camera:=后的内容需要根据自己电脑摄像头的话题和节点来修改,可以通过rqt_graph来查看。比如有的会是image:=/camera/image_raw camera:=/camera
标定界面出现后,按照x(左右)、y(上下)、size(前后)、skew(倾斜)等方式移动棋盘,直到x,y,size,skew的进度条都变成绿色位置.
此时可以按下CALIBRATE按钮,点击一下后,界面会卡住,此时不要做任何操作,直到运行标定程序的终端输出标定的结果
有标定结果出来后,点击标定界面的SAVE按钮,再点commit按钮,标定结果保存在/tmp/calibrationdata.tar.gz这个压缩包中,到这里彩色相机的标定就结束了
关闭标定程序,完成后Commit,在终端后会有标定结果yaml文件地址.默认一般为/home/用户名/.ros/camera_info/head_camera.yaml修改相机名称
如图
修改/dev/video0 和 usb_cam
与其他地方保持一致
参考链接
总体安装教程
https://blog.csdn.net/xmy306538517/article/details/59501718
http://www.liuxiao.org/2016/07/ubuntu-orb-slam2-%E5%9C%A8-ros-%E4%B8%8A%E7%BC%96%E8%AF%91%E8%B0%83%E8%AF%95/
https://blog.csdn.net/qinqinxiansheng/article/details/107079265
编译build_ros.sh时报错
https://blog.csdn.net/weixin_41111088/article/details/89377368
ORB_SLAM2编译build_ros.sh时报错
https://blog.csdn.net/chengmo123/article/details/104906376
相机标定
https://blog.csdn.net/yx868yx/article/details/115366655
ORB_SLAM2数据集
https://vision.in.tum.de/data/datasets/rgbd-dataset/download#freiburg2_pioneer_360
ORB_SLAM2编译build.sh 出错
https://blog.csdn.net/lixujie666/article/details/90023059
小乌龟
https://blog.csdn.net/qq_21835111/article/details/99694286