ubantu20.04 跑通ros2版的orbslam2

2024-05-27 00:36

本文主要是介绍ubantu20.04 跑通ros2版的orbslam2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我的历程

先编译的非ros版的robslam2(非常详细)

ubuntu20.04配置并编译ORB-SLAM2_ubuntu20.04安装orb-lslam2-CSDN博客

然后装ros2(非常详细)

详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)_ubuntu安装ros-CSDN博客

遇到的问题
一、usb_cam-test.launch的内容git下来的项目不可用,需要手动更改为

<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>

二、相机标定 找到标定结果文件后,按照其数据修改Examples/ROS/ORB_SLAM2目录下Asus.yaml

标定文件

# oST version 5.0 parameters[image]width
640height
480[narrow_stereo]camera matrix
796.930694 0.000000 286.884431
0.000000 813.678506 319.738009
0.000000 0.000000 1.000000distortion
0.040080 -0.391803 0.041621 -0.044204 0.000000rectification
1.000000 0.000000 0.000000
0.000000 1.000000 0.000000
0.000000 0.000000 1.000000projection
785.134277 0.000000 266.168442 0.000000
0.000000 804.472961 331.780934 0.000000
0.000000 0.000000 1.000000 0.000000

修改后的asus文件

# Camera calibration and distortion parameters (OpenCV) 
Camera.fx: 796.93069
Camera.fy: 813.67851
Camera.cx: 286.88443
Camera.cy: 319.73801Camera.k1: 0.040080
Camera.k2: -0.391803
Camera.p1: 0.041621
Camera.p2: -0.044204

三、编译./build_ros.sh

第一个问题 

-- Configuring incomplete, errors occurred!
See also "/home/user/ORB_SLAM2/Examples/ROS/ORB_SLAM2/build/CMakeFiles/CMakeOutput.log".
make: *** No targets specified and no makefile found. Stop.

编译失败一次记得删掉ros下的build文件

有conda环境的或者此时报错的可以试下conda deactivate

然后.bashrc文件 最后三行应该是这

source /home/you/catkin_ws/devel/setup.sh
source /opt/ros/noetic/setup.bash
export ROS_PACKAGE_PATH=${ROS_PACKAGE_PATH}:/home/you/catkin_ws/src/ORB_SLAM2/Examples/ROS
第二个问题 orbslam2 fatal error: …/…/config.h: 没有那个文件或目录

这是因为g2o没有编译完整,进入ORB_SLAM2文件夹,重新执行 ./build.sh

第三个问题 摄像头启动失败记得

source ~/catkin_ws/devel/setup.bash

这篇关于ubantu20.04 跑通ros2版的orbslam2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1006031

相关文章

ROS2从入门到精通4-4:局部控制插件开发案例(以PID算法为例)

目录 0 专栏介绍1 控制插件编写模板1.1 构造控制插件类1.2 注册并导出插件1.3 编译与使用插件 2 基于PID的路径跟踪原理3 控制插件开发案例(PID算法)常见问题 0 专栏介绍 本专栏旨在通过对ROS2的系统学习,掌握ROS2底层基本分布式原理,并具有机器人建模和应用ROS2进行实际项目的开发和调试的工程能力。 🚀详情:《ROS2从入门到精通》 1 控制插

【yolov8语义分割】跑通:下载yolov8+预测图片+预测视频

1、下载yolov8到autodl上 git clone https://github.com/ultralytics/ultralytics 下载到Yolov8文件夹下面 另外:现在yolov8支持像包一样导入,pip install就可以   2、yolov8 语义分割文档 看官方文档:主页 -Ultralytics YOLO 文档 还能切换成中文版本,真友好。 看以下y

ROS2学习笔记三:话题Service

目录 前言 1 话题简介 2 常用指令 3 RCLCPP实现实现话题 3.1 创建工作空间 3.2 代码编写 3.2.1 发布端编写 3.2.2 发布端编写 前言 Service是ROS 2提供的一种通信机制,用于在不同节点之间进行请求和响应。 Service允许一个节点向另一个节点发送请求,并等待对方节点响应的消息。这种通信方式适用于需要交互式的、即时的通信场景,

【ROS1转ROS2示例】

ROS1中的代码:  这是一个循环函数: ros::Rate loop_rate(10); // Adjust the publishing rate as neededwhile (ros::ok()){loop_rate.sleep();} 如果转ROS2,可以使用rclcpp::WallRate或者直接依赖于执行器(Executor)的循环来实现类似的功能。这里提供两种方法: 方

ros2-foxy-20201211 Windows下failed to create process的解决方法

现象:将ros2-foxy-20201211-windows-debug.amd64.zip解压并按照官方的方法安装后,运行 ros2 run demo_nodes_cpp talker 提示failed to create process。 推测是python的路径写死在exe中,导致ros2.exe找不到python造成的。 打开目录下的local_setup.ps1后发现了一个值为c:\py

Ubuntu20.04配置ORBSLAM2并在kitti数据集序列进行实验

一、ORB-SLAM2 安装和编译 1.ORB-SLAM2下载 用以下命令在终端上下载 git clone https://github.com/raulmur/ORB_SLAM2 2.安装Pangolin 在下载了ZIP压缩包后解压缩放在ubantu的/home下(此处只要是英文路径都可以),但别急着安装Pangolin我们还需要安装一些必要的库 sudo apt install l

ROS2底层机制源码分析

init ->init_and_remove_ros_arguments     ->init         ->Context::init 保存初始化传入的信号         ->install_signal_handlers→SignalHandler::install 开线程响应信号     ->_remove_ros_arguments 移除ros参数 ->SingleNodeMan

orbslam2代码解读(2):tracking跟踪线程

书接上回,mpTracker->GrabImageMonocular(im,timestamp)函数处理过程: 如果图像是彩色图,就转成灰度图如果当前帧是初始化的帧,那么在构建Frame的时候,提取orb特征点数量为正常的两倍(目的就是能够在初始化的时候有更多匹配点对),如果是普通帧,就正常构建Frame。接着就是调用tracking线程中的Track()函数。返回当前图像帧的位姿估计结果。

python-win10跑通chattts笔记(亲测可跑)0.8.010

python-win10跑通chattts笔记-亲测可跑 背景项目地址安装过程使用技巧参考链接 背景 克隆了项目中的代码,在无conda环境下使用pip安装了依赖,最后报错cl: 命令行 error D8021 :无效的数值参数“/Wno-register” error: command 'C:\,最后通过使用conda解决了,以此记录下 项目地址 https://gitc

【ROS2大白话】四、ROS2非常简单的传参方式

系列文章目录 【ROS2大白话】一、ROS2 humble及cartorgrapher安装 【ROS2大白话】二、turtlebot3安装 【ROS2大白话】三、给turtlebot3安装realsense深度相机 【ROS2大白话】四、ROS2非常简单的传参方式 文章目录 系列文章目录前言一、launch文件传参的demo1. 编写launch.py文件2. 编写C++代码3. 编