【简单易操作】图漾TM460-E2深度网络相机在ROS-melodic环境下的配置过程

news2024/11/15 23:43:22

目录

  • 一、配置的环境
  • 二、下载内容及链接
  • 三、ubuntu环境配置
    • 下载 Camport3 SDK
    • 安装依赖
    • 编译
    • 运行
  • 四、安装OpenNI2套件
    • 下载 Camport3 OpenNI2 SDK
    • 安装 Camport3 OpenNI2 SDK
  • 五、ROS平台安装
    • 下载 Camport3 ROS SDK
    • 编译
    • 配置环境变量
    • 运行

一、配置的环境

  • 相机型号:TM460-E2(网络相机,不是USB相机)
  • 系统:Ubuntu 18.04
  • ROS:melodic
  • 语言:C++

二、下载内容及链接

  1. ros-melodic的安装包,csdn下载
  2. 图漾官方的安装过程在线文档

三、ubuntu环境配置

下载 Camport3 SDK

选择以下任意方式,下载 Camport3 SDK:

  • 使用浏览器访问 http://github.com/percipioxyz/ 并下载 Camport3 SDK。
    下载后的文件目录结构如下:
    在这里插入图片描述
    sample 目录存放了可供用户编程参考的示例程序。关于示例程序,详情请参见 示例程序说明。

安装依赖

  1. cmake
    sudo apt-get install cmake
  2. opencv
    sudo apt-get install libopencv-dev
    如果是USB相机,还需要安装usb依赖、设置usb的root权限。详细教程官方文档有介绍。

编译

  1. 进入 camport3 目录,执行以下命令编译示例代码。
    sudo cp lib/linux/lib_x64/libtycam.so* /usr/lib/
    cd sample
    mkdir build
    cd build
    cmake ..
    make
  2. camport3/sample/build/bin 目录下生成若干编译生成的可执行文件。

运行

深度相机连接电脑后开始系统初始化,直到相机背面 Power 灯以 1Hz 的频率闪烁。相机初始化后,以 root 权限运行以下命令,即可接收并显示深度图像。
sudo ./SimpleView_FetchFrame

四、安装OpenNI2套件

OpenNI2 SDK 基于 Linux SDK 开发,提供相应平台的库文件。

OpenNI(开放自然交互)是一个多语言,跨平台的框架,它定义了编写应用程序,并利用其自然交互的 API。OpenNI 的主要目的是要形成一个标准的 API,来搭建视觉和音频传感器与视觉和音频感知中间件通信的桥梁。

下载 Camport3 OpenNI2 SDK

  1. 选择以下方式,下载 Camport3 OpenNI2 SDK:
  • git clone https://github.com/percipioxyz/camport3_openni2.git

    Camport3 OpenNI2 SDK 的目录图所示:
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/b9cd3df5a7234476ba7feddcad056e20.png

  1. 该开发包根目录下的 Percipio.ini 复制到 /etc/openni2 目录.
    Camport3 OpenNI2 SDK 通过读取该文件的配置来设置 Percipio 深度相机输出的深度和彩色图像数据分辨率,相机默认输出的深度和彩色图像数据分辨率是 640x480。

安装 Camport3 OpenNI2 SDK

sudo dpkg -i libopenni2-0_2.2.0.33+dfsg-4_i386.deb
sudo dpkg -i libopenni2-dev_2.2.0.33+dfsg-4_i386.deb
安装好后,运行SImpleRead_x64,可以看到有数据传输。

五、ROS平台安装

下载 Camport3 ROS SDK

选择以下方式,下载 Camport3 OpenNI2 SDK:

  • git clone https://github.com/percipioxyz/camport_ros.git

    Camport3 OpenNI2 SDK 的目录图所示:
    在这里插入图片描述

    • openni2_camera:ROS 调用 OpenNI2 的封装层。

    • openni2_launch:打开 OpenNI2 设备并获取深度和颜色数据应用。

    • depthimage_to_laserscan:打开 OpenNI2 设备并获取线性深度数据应用。

编译

在开发包根目录下执行以下命令:
sudo apt-get install ros-melodic-rgbd-launch
catkin_make

配置环境变量

echo "source ~/camport_ros/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc

运行

  1. 在多个窗口中,执行以下命令,在 RVIZ 中查看 Depth Camera:
    roscore
    roslaunch openni2_launch openni2.launch
    rosrun rviz rviz
    在 RVIZ 的 /camera/image/depth 目录下添加深度图像视图,可查看三维空间视图。

  2. 执行如下命令,在 RVIZ 中查看从深度图中仿真出的 Laser Scan 图:
    roscore
    roslaunch depthimage_to_laserscan depthimage_to_laserscan.launch
    rosrun rviz rviz
    在 RVIZ 的 /scan/LaserScan 目录下添加激光扫描视图,可查看模拟线激光视图。

在这里插入图片描述在这里插入图片描述可通过下拉箭头选择不同模式下的image
在这里插入图片描述

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

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

相关文章

OpenRASP agent源码分析

目录 前言 准备 源码分析 1. manifest 2. agent分析 3. agent卸载逻辑 总结 前言 笔者在很早前写了(231条消息) OpenRASP Java应用自我保护使用_fenglllle的博客-CSDN博客 实际上很多商业版的rasp工具都是基于OpenRASP的灵感来的,主要就是对核心的Java类通过…

堆(二叉堆)-优先队列-数据结构和算法(Java)

文章目录1 概述1.1 定义1.2 二叉堆表示法2 API3 堆相关算法3.1 上浮(由下至上的堆有序化)3.2 下沉(由上至下的堆有序化)3.3 插入元素3.4 删除最大元素4 实现5 性能和分析5.1 调整数组的大小5.2 元素的不可变性6 简单测试6 后记1 概…

2006-2020年全国31省人口老龄化水平

2006-2020年全国31省人口老龄化 1、时间为2006-2020年 2、来源:人口与就业年鉴 3、数据缺失情况说明: 其中2010年存在缺失,采用线性插值法进行填补,内含原始数据、线性插值 4、计算说明:以城镇地区老年抚养比衡量…

uImage的制作过程详解

1、uImage镜像介绍 参考博客:《vmlinuz/vmlinux、Image、zImage与uImage的区别》; 2、uImage镜像的制作 2.1、mkimage工具介绍 参考博客:《uImage的制作工具mkimage详解(源码编译、使用方法、添加的头解析、uImage的制作)》; 2.2…

软路由搭建:工控机(3865U)安装esxi并在esxi上创建iStoreOS做主路由(网卡直通)

一、硬件介绍 1、工控机(3865U) CPU:3865U 内存:8G 硬盘:120G 网卡:六口网卡 2、无线路由器(荣耀路由器pro2) 3、主机 下载资料、制作启动盘、系统设置 4、U盘 至少8G以上 …

ConcurrentHashMap 1.7与1.8的区别

ConcurrentHashMap 与HashMap和Hashtable 最大的不同在于:put和 get 两次Hash到达指定的HashEntry,第一次hash到达Segment,第二次到达Segment里面的Entry,然后在遍历entry链表 从1.7到1.8版本,由于HashEntry从链表 变成了红黑树所以 concurr…

Python Gui之tkinter(下)

6.Radiobutton单按按钮 Radiobutton控件用于选择同一组单选按钮中的一个。Radiobutton可以显示文本,也可以显示图像。 7.Checkbutton复选按钮 Checkbutton控件用于选择多个按钮的情况。Checkbutton可以显示文本,也可以显示图像。 经典的Gui类的写法&a…

关于liunx 宝塔运行php项目

文章目录前言一、申请liunx服务器安装宝塔环境二、安装php看你自己安装需要的版本三.php文件创建四.数据库创建五.访问项目就可以了前言 自己研究学习,大佬勿喷 一、申请liunx服务器安装宝塔环境 我是线上安装的都一样看个人习惯爱好吧 等待安装完成提示地址和账…

Java基础—重新抛出异常

重新抛出异常 在catch块内处理完后,可以重新抛出异常,异常可以是原来的,也可以是新建的,如下所示: try{ //可能触发异常的代码 }catch(NumberFormatException e){ System.out.println("not valid numbe…

电子印章结构以及规范讲解

前言 为了确保电子印章的完整性、不可伪造性,以及合法用户才能使用,需要定义一个安全的电子印章数据格式,通过数字签名,将印章图像数据与签章者等印章属性进行安全绑定,形成安全电子印章 电子印章:一种由…

MVVM与Vue响应式的实现

Vue的响应式实现原理 MVVM M:模型 》data中的数据 V:视图 》模板 VM:视图模型 》Vue实例对象 ViewModel是一个中间的桥梁将视图View与模型Model连接起来,ViewModel内部通过数据绑定,实现数据变化,视图发…

链接装载(一)虚拟地址与物理地址

文章目录一、基本概念二、一个基本问题三、程序的执行四、从堆中分配的数据的逻辑地址一、基本概念 当我们写出一个程序,即便是最基本的 Hello World,都需要经过 预处理、编译、汇编、链接才能生成最终的可执行文件。 预处理: 预处理过程主…

spring ioc的循环依赖问题

spring ioc的循环依赖问题什么是循环依赖spring中循环依赖的场景通过构造函数注入时的循环依赖通过setter或Autowired注入时的循环依赖循环依赖的处理机制原型bean循环依赖单例bean通过构造函数注入循环依赖单例bean通过setter或者Autowired注入的循环依赖三级缓存对象的创建分…

Metasploit 操作及内网 Pivot图文教程

目录 一、metasploit 简介 二、 基本使用 三、 使用 encoders 四、pivot 技术 一、metasploit 简介 Metasploit 是一款开源的安全漏洞检测工具,集成了丰富的渗透测试工具,深受安 全工作者喜爱。官方网站:www.metasploit.com 本案例将以图…

OS-调度

调度 多个程序在并发的情况下执行,最大化CPU利用率,同时要保证一定的公平性 调度的时机 五种情况: Running -> Waiting:例如等待I/ORunning -> Ready: interupt,计时器到时间了Running -> TerminatedWait…

我把Idea给改了,看看有没有你常用的功能,没有,你告诉我,我来改

改造的目标 时隔2个多月的研发,11月25日,终于把Idea插件BG-BOOM的1.1.0版本搞上线了,本次更新勇哥也是百忙之中挤时间,加班加点开发为粉丝,目的也主要是帮助大家提升开发效率,有更多摸鱼和内卷时间&#x…

[附源码]Python计算机毕业设计SSM晋中学院教室管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

QT中怎么设置定时器/周期任务/定时触发任务

Qt中定时器的使用有两种方法,一种是使用QObject类提供的定时器,还有一种就是使用QTimer类。 其精确度一般依赖于操作系统和硬件,但一般支持20ms。下面将分别介绍两种方法来使用定时器。 QObject类提供的定时器 QObject中的定时器的使用&am…

Makefile 详解

文章目录1.什么是Makefile2.Makefile文件命名规则3.编写Makefile4.Makefile 的工作原理5.Makefile中的变量6.模式匹配7.函数1.什么是Makefile 一个工程中的源文件不计其数,按期类型、功能、模块分别放在若干个文件中,MakeFile文件定义了一系列的规则来制…

HIN应用调研总结

文章目录1. 代码安全iDev: enhancing social coding security by cross-platform user identification between GitHub and stack overflow【A】2. API推荐Group preference based API recommendation via heterogeneous information network【A】3.Andorid恶意软件检测Out-of-…