ros版ov2slam运行笔记
0.环境搭建
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
| FROM docker.1ms.run/osrf/ros:noetic-desktop-full
RUN apt-get update && apt-get install -y tzdata \ && ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \ && dpkg-reconfigure --frontend noninteractive tzdata
RUN apt-get update && apt-get install -y \ git \ vim \ cmake \ wget \ zip \ libgflags-dev \ libgoogle-glog-dev \ libssl-dev\ build-essential \ libgl1-mesa-dev \ libglew-dev \ libepoxy-dev \ libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev \ libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libdc1394-22-dev libopenexr-dev \ libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev \ libboost-all-dev \ && apt-get clean
RUN mkdir -p /home/catkin_ws/src RUN cd /home/catkin_ws/src && git clone https://github.com/ov2slam/ov2slam.git
RUN cd /home/ && git clone https://github.com/laurentkneip/opengv && cd opengv && mkdir build && cd build && cmake .. && make -j$(nproc) && make install
RUN apt-get update && apt-get install -y libeigen3-dev
RUN cd /home/ && \ git clone https://github.com/opencv/opencv.git -b 3.4 --depth 1
RUN cd /home/ && \ git clone https://github.com/opencv/opencv_contrib.git -b 3.4 --depth 1
RUN cd /home/opencv && mkdir build && cd build && \ cmake -D CMAKE_BUILD_TYPE=Release \ -D CMAKE_INSTALL_PREFIX=/usr/local \ -D OPENCV_EXTRA_MODULES_PATH=/home/opencv_contrib/modules \ -D BUILD_EXAMPLES=ON \ -D BUILD_opencv_world=ON \ -D WITH_CUDA=OFF \ -D WITH_GTK=ON \ -D WITH_OPENGL=ON \ -D OPENCV_ENABLE_NONFREE=ON .. && \ make -j$(nproc) && \ make install
RUN ldconfig
RUN cd /home/catkin_ws/src/ov2slam && ./build_thirdparty.sh
|
1
| >> docker build -t ov2slam:latest .
|
1
| >> docker run -itd --name ov2slam ov2slam:latest
|
1.运行roscore
1 2 3 4
| >> source /opt/ros/noetic/setup.bash
>> roscore
|
2.运行ov2slam节点
1 2 3 4 5 6 7 8
| >> source /opt/ros/noetic/setup.bash
>> cd /home/catkin_ws && catkin_make --pkg ov2slam
>> source /home/catkin_ws/devel/setup.bash
>> rosrun ov2slam ov2slam_node /home/catkin_ws/src/ov2slam/parameters_files/accurate/euroc/euroc_mono.yaml
|
3.运行rosplay节点喂入数据
1 2 3 4
| >> source /opt/ros/noetic/setup.bash
rosbag play V1_01_easy.bag /cam0/image_raw:=/camera/image_raw
|
/cam0/image_raw:EuRoC bag 原始图像话题
/camera/image_raw:OV2SLAM 节点订阅的话题
4.可视化rviz
1 2 3 4
| >> source /opt/ros/noetic/setup.bash
>> rviz
|
rviz中添加下面话题
- Image:topic
/ov2slam/image(带特征点的图像)
- Pose:topic
/ov2slam/camera_pose(相机位姿)
- Marker:地图 / 特征点可视化
轨迹保存:OV2SLAM 会自动把轨迹写入文件,路径在 yaml 配置里 save_traj: true
参考资料