首先自己的相机不需要安装驱动了,但是需要标定,获取内外参,还要安装ORB_SLAM2。
标定步骤如下
先安装依赖:
sudo apt-get install libglew-dev
sudo apt-get install git
sudo apt-get install cmake
sudo apt-get install libblas-dev liblapack-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-filesystem-dev
sudo apt-get install libpython2.7-dev
sudo apt-get install build-essential
sudo apt-get install cmake git libgtk2.0-dev pkg-configlibavcodec-dev libavformat-dev libswscale-dev
sudoapt-getinstalllibsqlite3-devlibpcl-dev libopencv-dev libproj-dev libqt5svg5-dev
再安装 Pangolin:
gitclonehttps://github.com/stevenlovegrove/Pangolin.git
cd Pangolin
mkdir build
cd build
cmake -DCPP11_NO_BOOST=1 …
make -j8
安装Eigen3
sudo apt-get install libeigen3-dev
安装OpenCV
先安装opencv的依赖
sudo apt-get install cmake git libgtk2.0-dev pkg-configlibavcodec-dev libavformat-dev libswscale-dev
我装的是3.2.0下载完后解压,进入OpenCV文件夹进行编译安装
mkdir release
cd release
cmake -D CMAKE_BUILD_TYPE=RELEASE -D
make
sudo make install
mkdir -p orb-slam2-ws/src
编译 ORB-SLAM2:
mkdir -p orb-slam2-ws/src
cd orb-slam2-ws/
catkin_make
echo“source~/projects/orb-slam2-ws/devel/setup.bash” >> ~/.bashrc
source ~/.bashrc
cd orb-slam2-ws/src
gitclonehttps://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2
chmod +x build.sh
/build.sh
将ORB_SLAM2安装路径加入环境变量
exportROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/(user)/orb-slam2-ws/src/ORB_SLAM2/Examples/ROS
先找到这两个文件
libboost_system.so
libboost_filesystem.so
然后复制到ORB_SLAM2/lib下,然后将路径加到ORBSLAM2/Examples/ROS/ORBSLAM2下Cmakelists.txt文件中,
$ {PROJECT_SOURCE_DIR}/../../../lib/libboost_filesystem.so
$ {PROJECT_SOURCE_DIR}/../../../lib/libboost_system.so
chmod +x build_ROS.sh
/build_ROS.sh
编译好ORB_SLAM2,接下来我们就要标定双目了。
用这个启动文件启动双目。
https://github.com/2017qiuju/ROS_notes/blob/master/stereo_usb_cam_stream_publisher.launch
roslaunch stereo_usb_cam_stream_publisher.launch camera_info:=ture
运行ROS的标定程序
rosrun camera_calibration cameracalibrator.py
--size8x6
--square0.0513
right:=/camera/right/image_raw left:=/camera/left/image_raw right_camera:=/camera/right left_camera:=/camera/left
--no-service-check
--approximate=0.1
打开文件:ORB_SLAM2/Examples/ROS/ORB_SLAM2/src/ros_stereo.cc
做如下更改,然后重新编译。
ORB_SLAM2默认接收的话题:
message_filters::Subscriber
message_filters::Subscriber
改成现在启动文件发布的话题
message_filters::Subscriber
message_filters::Subscriber
将摄像头参数写入这个文件
/home/q/packages/ORB_SLAM2/Examples/Stereo/my_EuRoC.yaml
启动摄像头
roslaunch stereo_usb_cam_stream_publisher.launch camera_info:=true
stereo_image_proc
将两个摄像头的图片处理
ROS_NAMESPACE=camerarosrunstereo_image_procstereo_image_proc _approximate_sync:=true
坐标系转换
rosrun tf static_transform_publisher 0 0 0 -1.5707963267948966 0 -1.5707963267948966 base_link camera_link 100
启动ORB_SLAM2
rosrunORB_SLAM2Stereo/home/q/packages/ORB_SLAM2/Vocabulary/ORBvoc.txt /home/q/packages/ORB_SLAM2/Examples/Stereo/my_EuRoC.yaml false
运行结果视频:
这是自制双目跑的ORB-SLAM2截图
这是MYNTEYE-S1030-IR跑的ORB-SLAM2截图
总结:自制双目和MYNTEYE-S1030-IR相比,点云不是很规整,测距不是很准,路径还可以。
RTAB-Map实验
RTAB-Map是具有实时约束的全局闭环检测的RGB-D SLAM方法,可用于生成环境的3D点云或创建用于导航的2D网格图
它的代码库有两个:
https://github.com/introlab/rtabmap_ros.git
http://introlab.github.io/rtabmap
安装步骤如下:
sudo apt-get install ros-kinetic-move-base-msgs
mkdir -p rtabmap_ros_ws/src
gitclonehttps://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
cd src
catkin_init_workspace
cd ~
git clone https://github.com/introlab/rtabmap.git rtabmap
cd rtabmap/build
cmake -DWITH_G2O=OFF -DWITH_GTSAM=OFF -DCMAKE_INSTALL_PREFIX=~/projects/rtabmap_ros_ws/devel ..
make -j4
make install
catkin_make -j4
echo "source ~/catkin_ws/devel/setup.bash " >> ~/.bashrc
source ~/.bashrc
装好之后就来测试 一下MYNTEYE-S1030-IR 和 RTAB-Map吧!
先启动相机
roslaunch mynt_eye_ros_wrapper mynteye.launch
进行坐标转换
rosrun tf static_transform_publisher 0 0 0 -1.5707963267948966 0 -1.5707963267948966 base_link camera_link 100
最后启动rtabmap_ros
roslaunch rtabmap_ros stereo_mapping.launch stereo_namespace:="/camera"
rtabmap_args:="delete_db_on_start--Odom/Strategy 5 --OdomORBSLAM2/VocPath
"/home/q/packages/ORB_SLAM2/Vocabulary/ORBvoc.txt""
left_image_topic:=/camera/left_rect/image_rect
right_image_topic:=/camera/
right_rect/image_rect left_camera_info_topic:=/camera/left/camera_info right_camera_info_topic:=/camera/right/camera_info
/rtabmap/odom_info:=/camera/left/camera_info stereo:=trueframe_id:=base_link
approx_sync:=false
运行结果视频
总结:它的点云依然很稀疏,最后的三维图依然很漂亮,路径也很规整。
自制的双目跑RTAB-Map
前面已经把环境都配置好了,现在我们直接运行程序
启动双目
roslaunch stereo_usb_cam_stream_publisher.launch camera_info:=true
图像处理
ROS_NAMESPACE=camera rosrun stereo_image_proc stereo_image_proc _approximate_sync:=true
坐标转换
rosrun tf static_transform_publisher 0 0 0 -1.5707963267948966 0 -1.5707963267948966 base_link camera_link 100
启动 rtabmap_ros
roslaunch rtabmap_ros stereo_mapping.launch stereo_namespace:="/camera" rtabmap_args:="--
delete_db_on_start --Odom/Strategy 5 --OdomORBSLAM2/VocPath
"/home/q/packages/ORB_SLAM2/Vocabulary/ORBvoc.txt""
left_image_topic:=/camera/left/image_rect_color
right_image_topic:=/camera/right/image_rect_color
left_camera_info_topic:=/camera/left/camera_info
right_camera_info_topic:=/camera/right/camera_info
/rtabmap/odom_info:=/camera/left/camera_info stereo:=trueframe_id:=base_link
approx_sync:=true
运行视频链接:
http://cache.tv.qq.com/win/play.html?cid=&vid=b0918d9fude
这是自制双目跑rtabmap_ros 的建图结果:
这是S1030-IR跑rtabmap_ros 的建图结果:
总结:自制双目发布的图像是彩色的,rtabmap_ros 的三维图就具备彩色信息,这一点比MYNTEYE-S1030-IR标准版好一些,但是这两个开源项目都没有使用到小觅相机的IMU信息,所以这里只是单纯的从图像信息对两款相机测试两个开源项目的效果,并记录测试步骤,有兴趣的小伙伴可以根据这个教程学习。
轻客智能科技(江苏)有限公司是MYNTAI(小觅智能)旗下在中国无锡设立的全资子公司,成立于2014年7月,专注立体视觉技术整体解决方案。核心技术包括自主研发的实时3D视觉惯性导航技术VPS、视觉里程计VIO技术、自动驾驶、环境/物体识别、人脸/身份识别等。产品包括不同级别的双目摄像头模块、 vSLAM模组以及基于视觉技术衍生的机器人产品。未来,通过多步走战略,MYNTAI的战略目标是通过软硬件融合的成熟解决方案,打造基于计算机视觉导航与识别的行业最优VPS云服务商。 此外,MYNTAI(小觅智能)还在中国北京设有全资子公司轻客小觅智能科技(北京)有限公司。
品牌理念
企业定位:专注于“立体视觉技术解决方案”的人工智能公司
企业使命:为人工智能时代应用装上一双导航避障的双眼
企业精神:诚信勤奋执行协作
2025-04-28 12:42
2025-04-28 12:41
2025-04-28 12:41
2025-04-28 12:40
2025-04-28 12:40
2025-04-28 12:39
2025-04-28 12:39
2025-04-28 12:38
2025-04-28 12:38
2025-04-28 12:37