ros下用kinectv2运行orbslam2

news2025/7/20 10:55:49

目录

前提

创建工作空间

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/368749.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

听车企做开发朋友说,面试Framework 必问~

近期听在车企工作的朋友说&#xff0c;今年去他们公司面试的人比往年增长了30%左右&#xff0c;但实际面试达到标准的人屈指可数&#xff0c;大多都是从 Android 开发方向转过来的。 车企招聘要求有哪些&#xff1f; 每个车企因为业务部门的不同&#xff0c;他们的要求也会有…

Tapdata Connector 实用指南:实时数仓场景之数据实时同步至 ClickHouse

【前言】作为中国的 “Fivetran/Airbyte”, Tapdata 是一个以低延迟数据移动为核心优势构建的现代数据平台&#xff0c;内置 60 数据连接器&#xff0c;拥有稳定的实时采集和传输能力、秒级响应的数据实时计算能力、稳定易用的数据实时服务能力&#xff0c;以及低代码可视化操作…

搭建直播平台服务器什么配置最合适?直播平台专用服务器(驰网i9-13900k服务器)

如今&#xff0c;视频直播越来越受欢迎&#xff0c;视频和直播平台也越来越多&#xff0c;直播平台和视频网站都需要更好的服务器来支持。那么&#xff0c;视频直播平台需要什么服务器呢&#xff1f;以一个简单的直播网站为例。如果每天在线人数约1000人&#xff0c;同时在线人…

Win10 22H2 19045.2670系统原版镜像

相比以前系统&#xff0c;修复了如下KB5022906 修复了诸多问题&#xff0c;IT之家将官方更新日志翻译如下&#xff1a;修复了在 Microsoft Excel 中无法打开超链接的问题修复了影响 Appx 状态存储库的问题。在用户删除用户配置文件后&#xff0c;相关清理工作未能妥善完成&…

【nohup引发磁盘读写高】nohup命令导致服务器磁盘读写占满该如何修复?

【写在前面】自己在跑一个项目的时候&#xff0c;猛然发现服务器挂了&#xff0c;直接访问不了&#xff0c;呈现出一种卡死现象&#xff0c;我当时都懵了&#xff0c;难道阿里在后端升级&#xff0c;也不会选择在工作日的时间升级吧&#xff0c;于是乎就咨询了一下客服。才有下…

【项目精选】jsp码头船只出行及配套货柜码放管理系统的设计与实现(视频+源码+论文)

点击下载源码 jsp码头船只出行及配套货柜码放管理系统主要用于实现高校在线考试&#xff0c;基本功能包括&#xff1a;用户登录、修改个人信息、查看码头信息&#xff1b;系统管理人员管理&#xff1b;船只信息管理&#xff1b;船只路线信息管理&#xff1b;货柜信息管理等。本…

Vue-cli脚手架在做些什么(源码角度分析)

什么是Vue脚手架&#xff1f;在学习初期&#xff0c;我们的项目往往需要借助webpack、vite等打包工具配置Vue的开发环境&#xff0c;但是在真实开发中我们不可能每个项目从头来完成所有的webpack配置&#xff0c;这样显得开发的效率会大大的降低&#xff1b;所有的真实开发中&a…

手写SpringBoot的starter

自定义SpringBoot的starter 引言 starter命名格式&#xff1a; 官方的 starter 的命名格式为 spring-boot-starter-{xxxx} 比如spring-boot-starter-activemq 第三方我们自己的命名格式为 {xxxx}-spring-boot-starter。比如mybatis-spring-boot-starter。 如果我们忽略这种约定…

【Git】与“三年经验”就差个分支操作的距离

前言 Java之父于胜军说过&#xff0c;曾经一位“三年开发经验”的程序员粉丝朋友&#xff0c;刚入职因为不会解决分支问题而被开除&#xff0c;这是不是在警示我们什么呢&#xff1f; 针对一些Git的不常用操作&#xff0c;我们通过例子来演示一遍 1.版本回退 1.1已提交但未p…

【Nginx】|入门连续剧——安装

作者&#xff1a;狮子也疯狂 专栏&#xff1a;《Nginx从入门到超神》 坚持做好每一步&#xff0c;幸运之神自然会降临在你的身上 目录一. &#x1f981; 前言Ⅰ. &#x1f407; 为啥我们要使用Nginx&#xff1f;二. &#x1f981; 搭建流程Ⅰ. &#x1f407; 环境准备Ⅱ. &…

LeetCode 热题 C++ 141. 环形链表 142. 环形链表 II(详解!)

力扣141 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&am…

图片和ppm文件互转

一、代码结构 二、代码实现 Denoise.java&#xff1a; package com.xj.ppm.toimg;import java.awt.FlowLayout; import java.awt.image.BufferedImage; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel;/*** Image noise reduction pro…

I.MX6ULL内核开发10:设备树

目录 一、设备树简介 二、设备树源码 三、获取设备树信息 1、增加设备节点 2、内核编译设备树 3、替换设备树文件 4、查看设备树节点 5、在驱动中获取节点的属性 6、编译驱动模块 7、加载模块 一、设备树简介 设备树的作用是描述一个硬件平台的硬件资源。这个“设备树…

Redis主从和哨兵搭建

今天主要分享Redis主从架构和哨兵的搭建。 主从集群搭建 总共三个节点&#xff0c;一个主节点和两个从节点。都安装在一台机器上模拟主从集群&#xff0c;信息如下&#xff1a; IPPORT角色192.168.246.1407001slave192.168.246.1407002master192.168.246.1407003slave 我们只…

FreeRTOS入门(04):中断、内存、追踪与调试

文章目录目的中断内存堆&#xff08;heap&#xff09;栈&#xff08;stack&#xff09;断言调试总结目的 有了前面的几篇文章 FreeRTOS 基本上已经可以在项目中使用上了&#xff1a; 《FreeRTOS入门&#xff08;01&#xff09;&#xff1a;基础说明与使用演示》 《FreeRTOS入门…

【java 8】强大的 Stream API

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

因子分析计算权重

因子分析两类权重计算方法总结 案例背景 疫情爆发以来&#xff0c;越来越多的人为了避免线下与人接触&#xff0c;选择了线上购买生活必需品。网购虽然方便快捷&#xff0c;但是随着订单压力的增加&#xff0c;物流问题也随之出现&#xff0c;近期有很多卖家收到物流投诉的问题…

Ubuntu下Python的安装及管理

Ubuntu下Python的安装及管理 1.概述 Ubuntu下python的安装及配置。 2.安装 安装python2.7&#xff1a; python --version #或python2.7 --version检查检查python是否存在&#xff0c;有则无需继续安装python2.7 sudo apt-get update sudo apt-get install python #或者su…

【正点原子FPGA连载】第十五章eMMC读写测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十五章eMMC读写…

BI工具术语表大全:从字母A-Z全面收录

谈到商业智能行业&#xff0c;变革是不可避免的。为了跟上步伐&#xff0c;各种各样的BI 解决方案正在快速迭代更新&#xff0c;以满足企业的数字化需求&#xff0c;那么市场上BI 工具种类繁杂&#xff0c;到底如何选择适合功能全面、满足自己企业运转情况的、合适的BI 工具呢&…