目录
前提
创建工作空间
orbslam2源码配置、测试:
配置usb_cam ROS功能包
配置kinect
前提
vim 、 cmake 、 git 、 gcc 、 g++ 这些一般都装了
主要是Pangolin 、 OpenCV 、 Eigen的安装
18.04建议Pangolin0.5
创建工作空间
我们在主目录下创建一个catkin_ws文件夹
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
orbslam2源码配置、测试:
环境:ubuntu18.04
在上面创建好的ROS工作空间下的src目录安装orbslam2
cd ~/catkin_ws/src/
git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2
cd ORB_SLAM2
chmod +x build.sh
./build.sh
编译时如果有如下错误:在ORB_SLAM2/include/system.h头文件中加上 #include <unistd.h>
运行测试(单目):
需要在目录中创建一个data文件夹,其中需要放入对应的数据(这里放入这里下载的Tum数据集rgbd_dataset_freiburg1_xyz,并且解压缩)
./Examples/Monocular/mono_tum Vocabulary/ORBvoc.txt Examples/Monocular/TUM1.yaml data/rgbd_dataset_freiburg1_xyz
运行测试(RGBD)
cvpr-ros-pkg - Revision 232: /trunk/rgbd_benchmark/rgbd_benchmark_tools/src/rgbd_benchmark_tools
上面网址下载好以后拷贝associate.py至ORB_SLAM2主文件夹内。在associate.py所在的目录执行:(将RGB信息和深度信息链接到一起)
python associate.py data/rgbd_dataset_freiburg1_xyz/rgb.txt data/rgbd_dataset_freiburg1_xyz/depth.txt > data/rgbd_dataset_freiburg1_xyz/associations.txt
注:我们可以看到association中的第一行中的信息是 depth 和 rgb 两个的第一行信息的和
然后执行:
./Examples/RGB-D/rgbd_tum ./Vocabulary/ORBvoc.txt ./Examples/RGB-D/TUM1.yaml data/rgbd_dataset_freiburg1_xyz data/rgbd_dataset_freiburg1_xyz/associations.txt
如果需要在ROS下运行的话还需要添加以下步骤:
sudo gedit ~/.bashrc
在文件末尾添加:
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/ros/catkin_ws/src/ORB_SLAM2/Examples/ROS
后面的“/home/ros/catkin_ws/src/ORB_SLAM2/Examples/ROS”是自己保存的文件路径,保存使其生效
source ~/.bashrc
编译build_ros环境:
sudo chmod +x build_ros.sh
./build_ros.sh
编译工作区间:
cd ~/catkin_ws
catkin_make
source /devel/setup.sh
配置usb_cam ROS功能包
# 首先进入catkin_ws/src路径下下载功能包
cd ~/catkin_ws/src
git clone https://github.com/bosch-ros-pkg/usb_cam.git# 然后退回到工作空间,编译源码
cd ~/catkin_ws
catkin_make# 编译成功后将编译好的文件添加到环境变量
source devel/setup.bash# 接下来测试usb_cam,首先打开一个新的终端运行ros master
roscore# 然后在另一个终端中运行usb_cam节点
rosrun usb_cam usb_cam_node# 通过运行rostopic list可知此时实际上已经接收到硬件模块的相机输出,但是还没有显示图像
rostpoic list# 此时运行下面的命令就可以显示出此时的摄像头图像
rosrun image_view image_view image:=/usb_cam/image_raw
如果想利用一个终端在打开usb_cam节点的同时也能够看到图像,那么可以在launch文件夹下新建一个launch文件usb_cam_test.launch,然后roslaunch 文件路径/usb_cam usb_cam_test.launch
<launch><node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" > <param name="video_device" value="/dev/video0" /> <param name="image_width" value="640" /> <param name="image_height" value="480" /> <param name="pixel_format" value="yuyv" /> <param name="camera_frame_id" value="usb_cam" /> <param name="io_method" value="mmap"/> </node> <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen"> <remap from="image" to="/usb_cam/image_raw"/> <param name="autosize" value="true" /> </node> </launch>
如果usb_cam出错:
ubutnu18.04下调用usb相机_ubuntu调用usb摄像头_weixin_44293973的博客-CSDN博客
配置kinect
参考:分别利用ubuntu18.04和ROS运行 kinect v2_qq_45792429的博客-CSDN博客
Ubuntu18.04+ROS安装Kinect V2步骤及问题解决 | 码农家园
安装依赖:
sudo apt-get install build-essential cmake pkg-config libturbojpeg libjpeg-turbo8-dev mesa-common-dev freeglut3-dev libxrandr-dev libxi-dev
sudo apt-get install libglfw3-dev
sudo apt-get install libopenni2-dev
sudo apt-get install libusb-1.0-0-dev
安装libfreenect2:
git clone https://github.com/OpenKinect/libfreenect2.git
cd libfreenect2
mkdir build
cd build
cmake ..
make
sudo make install
将kinect2的rules文件拷贝到udev目录下
sudo cp libfreenect2/platform/linux/udev/90-kinect2.rules /etc/udev/rules.d/
然后打开/etc/udev/rules.d/90-kinect2.rules可以看到以下内容
其中:045e是kinect设备号,重新连接kinect之后,终端输入指令:lsusb,应该出现以下三个信息
Bus 004 Device 003: ID 045e:02c4 Microsoft Corp.
Bus 004 Device 002: ID 045e:02d9 Microsoft Corp.
Bus 003 Device 003: ID 045e:02d9 Microsoft Corp.
测试
cd libfreenect2/build
./bin/Protonect
如果遇到运行程序后死机,或者图像显示不完全的情况,尝试更新显卡驱动
自动化安装显卡驱动
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall
第一条命令会显示已经连接到电脑的显卡设备,并建议安装哪个版本的驱动程序
第二条命令则是自动安装所推荐的驱动程序
安装iai_kinect2库
这个包为 ROS 和 Kinect 的连接提供了必要的工具和库
cd ~/catkin_ws/src/
git clone https://github.com/code-iai/iai_kinect2.git
cd iai_kinect2
rosdep install -r --from-paths . //这一步可能会报错,好像这个报错可以忽略
cd ~/catkin_ws
catkin_make -DCMAKE_BUILD_TYPE="Release"
测试
source ~/catkin_ws/devel/setup.bash
roslaunch kinect2_bridge kinect2_bridge.launch
打开另外一个终端即可看到画面:
rosrun kinect2_viewer kinect2_viewer
使用rviz显示:终端输入 rosrun rviz rviz
修改“Fixed Frame”为/kinect2_rgb_optical_frame,接着点击add,选择camera类型。添加成功后选择camera菜单下的Iamge Topic选项,选择 /kinect2/hd/image_color。
接着点击add选择camera类型。添加成功后选择camera菜单下的Iamge Topic选项,选择 /camera/depth/image
参考:
ubuntu18.04运行ORB_SLAM2_alex1801的博客-CSDN博客
Ubuntu20.04配置ORBSLAM2并运行(保姆级教程)_orbslam2运行_9527风先生的博客-CSDN博客
【SLAM环境配置】基于Ubuntu18.04的ORB-SLAM2环境配置全套方案记录_Robot_Tiger_的博客-CSDN博客