乐视体感astra pro深度摄像头在ros系统获取 深度图像 彩色图像 无色彩点云数据 彩色点云数据

article/2025/10/21 14:54:04

 

 

  • 1.astra pro深度摄像头介绍

  • 2.astra pro驱动安装

  • 3.astra pro获取深度图像   无色彩pointCloud2

  • 4.astra pro获取彩色图像  带彩色的pointCloud2

 

1.astra pro深度摄像头介绍

  

摄像头有四个镜头,从左到右的镜头分别是1 ir发射源  2 最小距离传感器  3 彩色摄像头 4 ir接收器

 

2.astra pro驱动安装

2.1下载驱动及依赖

ubuntu16 kinetic及ubuntu18 melodic下载以下驱

OpenNI-Linux-x64-2.3.tar.bz2

$sudo apt-get install build-essential freeglut3 freeglut3-dev
$ldconfig -p | grep libudev.so.1
$cd /lib/x86_64-linux-gnu
$sudo ln -s libudev.so.x.x.x libudev.so.1

 

2.2编译驱动

 解压下载的OpenNI-Linux-x64-2.3驱动

$ cd OpenNI-Linux-x64-2.3
$ sudo chmod a+x install.sh
  • 安装
$ sudo chmod a+x install.sh
$ sudo ./install.sh

插拔摄像头,source环境

$ source OpenNIDevEnvironment
  • 编译
$ cd Samples/SimpleViewer
$ make
  • 连接设备,执行示例
$ cd Bin/x64-Release
$ ./SimpleViewer 

 

编译安装libuvc

$ cd ~
$ git clone https://github.com/ktossell/libuvc
$ cd libuvc
$ mkdir build
$ cd build
$ cmake ..
$ make && sudo make install
$ sudo cp /usr/include/libusb-1.0/libusb.h  /usr/local/include/libuvc/

 

2.3 安装ros的官方astra_launch  astra_camera libuvc rgbd包, ubuntu melodic的需要下载源码安装这些包,因为apt-get不到

如果提示源码安装找不到包,到ros wiki上更新一下本地的ros软件源

$ sudo apt-get install ros-kinetic-astra-camera 
$ sudo apt-get install ros-kinetic-astra-launch  
$ sudo apt-get install ros-kinetic-libuvc-*
$ sudo apt-get install ros-kinetic-rgbd-launch 

3.astra pro获取深度图像   无色彩pointCloud2

$ roslaunch astra_launch astra.launch  

打开rqt_image_view查看图像话题

$ rqt_image_view

 

打开rviz查看无彩色点云数据

 

$ rviz

 

4.astra pro获取彩色图像  带彩色的pointCloud2

因为astra的驱动无发布彩色图像,导致点云数据也无彩色数据.

有三种思路取解决:

  1.修改官方驱动

  2.修改ros的底层astra_camera 和 rgbd_launch 的适配

  3.另外新开一个节点监听无彩色pointCloud2数据和彩色数据,用彩色数据的rgb通道数值填充pointCloud2的rgbd的通道,在重新发布出来就是彩色的点云数据

 

这里采用第二种做法,第一做法难度大,第三做法耗电脑资源

4.1获取彩色图像

    这里采用ros的uvc_camera包来获取彩色图像

$ sudo apt-get install uvc_camera

新建一个launch文件来启动uvc_camera

<launch><node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen"><param name="device" type="string" value="/dev/video1" /> <param name="width" type="int" value="640" /><param name="height" type="int" value="480" /><param name="fps" type="int" value="30" /><param name="frame_id" type="string" value="camera_rgb_optical_frame" /></node>
</launch>

/dev/video1时摄像头的设备号,查看一下摄像头的设备号

$ ls /dev

启动上面的launch文件

$ roslauch uvc.launch

使用rqt_image_view查看

当然也可以采用usb_cam来获取彩色图像,参数ros wiki上有

 

4.2 校准彩色摄像头和深度摄像头

获取彩色点云数据需要对相机进行校准(个人感觉比kinect校准难,校准了好多遍)

校准深度摄像头

$ roslaunch astra_launch astrapro.launch
$ rosrun camera_calibration cameracalibrator.py image:=/camera/ir/image camera:=/camera/ir --size 8x6 --square 0.024

把校准得到的yaml文件的camera_name值设为 camera_name: depth_Astra_Orbbec

校准彩色摄像头

$ rosrun uvc_camera uvc_camera_node device:=/dev/video1 
$ rosrun camera_calibration cameracalibrator.py image:=/image_raw camera:=/ --size 8x6 --square 0.024

把校准得到的yaml文件的camera_name值设为 camera_name: rgb_Astra_Orbbec

 

创建launch文件

<launch><!-- "camera" should uniquely identify the device. All topics are pushed downinto the "camera" namespace, and it is prepended to tf frame ids. --><arg name="camera" default="camera" /><arg name="rgb_frame_id"   default="$(arg camera)_rgb_optical_frame" /><arg name="depth_frame_id" default="$(arg camera)_depth_optical_frame" /><!-- device_id can have the following formats:"#n"            : the nth device found, starts from 1"2@n"           : the nth device on USB bus 2, n starts from 1"2bc5/0401@1/6" : uri in format <vendor ID>/<product ID>@<bus number>/<device number>"15120410023"   : serial number --><arg name="device_id" default="#1" /><arg name="bootorder" default="0" /><arg name="devnums" default="1" /><!-- By default, calibrations are stored to file://${ROS_HOME}/camera_info/${NAME}.yaml,where ${NAME} is of the form "[rgb|depth]_[serial#]", e.g. "depth_B00367707227042B".See camera_info_manager docs for calibration URL details. --><!--<arg name="rgb_camera_info_url"   default="" /><arg name="depth_camera_info_url" default="" />--><arg name="rgb_camera_info_url"   default="file://$(find drive)/rgb.yaml" /><arg name="depth_camera_info_url" default="file://$(find drive)/ir.yaml" /><!-- Hardware depth registration --><arg name="depth_registration" default="false" /><!-- Driver parameters --><arg name="color_depth_synchronization"     default="false" /><arg name="auto_exposure"                   default="true" /><arg name="auto_white_balance"              default="true" /><!-- Arguments for remapping all device namespaces --><arg name="rgb"              default="rgb" /><arg name="ir"               default="ir" /><arg name="depth"            default="depth" /><!-- Optionally suppress loading the driver nodelet and/or publishing the default tftree. Useful if you are playing back recorded raw data from a bag, or aresupplying a more accurate tf tree from calibration. --><arg name="load_driver" default="true" /><arg name="publish_tf" default="true" /><!-- Processing Modules --><arg name="rgb_processing"                  default="true"  /><arg name="debayer_processing"              default="false" /><arg name="ir_processing"                   default="false" /><arg name="depth_processing"                default="true" /><arg name="depth_registered_processing"     default="true" /><arg name="disparity_processing"            default="false" /><arg name="disparity_registered_processing" default="false" /><arg name="hw_registered_processing"        default="true" if="$(arg depth_registration)" /><arg name="sw_registered_processing"        default="false" if="$(arg depth_registration)" /><arg name="hw_registered_processing"        default="false" unless="$(arg depth_registration)" /><arg name="sw_registered_processing"        default="true" unless="$(arg depth_registration)" /><!-- Disable bond topics by default --><arg name="respawn" default="false" /><!-- Worker threads for the nodelet manager --><arg name="num_worker_threads" default="4" /><!-- Push down all topics/nodelets into "camera" namespace --><group ns="$(arg camera)"><!-- Start nodelet manager --><arg name="manager" value="$(arg camera)_nodelet_manager" /><arg name="debug" default="false" /> <!-- Run manager in GDB? --><include file="$(find rgbd_launch)/launch/includes/manager.launch.xml"><arg name="name" value="$(arg manager)" /><arg name="debug" value="$(arg debug)" /><arg name="num_worker_threads"  value="$(arg num_worker_threads)" /></include><!-- Load driver --><include file="$(find astra_launch)/launch/includes/device.launch.xml" if="$(arg load_driver)"><arg name="manager"                         value="$(arg manager)" /><arg name="device_id"                       value="$(arg device_id)" /><arg name="bootorder"                       value="$(arg bootorder)" /><arg name="devnums"                         value="$(arg devnums)" /><arg name="rgb_frame_id"                    value="$(arg rgb_frame_id)" /><arg name="depth_frame_id"                  value="$(arg depth_frame_id)" /><arg name="rgb_camera_info_url"             value="$(arg rgb_camera_info_url)" /><arg name="depth_camera_info_url"           value="$(arg depth_camera_info_url)" /><arg name="rgb"                             value="$(arg rgb)" /><arg name="ir"                              value="$(arg ir)" /><arg name="depth"                           value="$(arg depth)" /><arg name="respawn"                         value="$(arg respawn)" /><arg name="depth_registration"              value="$(arg depth_registration)" /><arg name="color_depth_synchronization"     value="$(arg color_depth_synchronization)" /><arg name="auto_exposure"                   value="$(arg auto_exposure)" /><arg name="auto_white_balance"              value="$(arg auto_white_balance)" /></include><!-- Load standard constellation of processing nodelets --><include file="$(find rgbd_launch)/launch/includes/processing.launch.xml"><arg name="manager"                         value="$(arg manager)" /><arg name="rgb"                             value="$(arg rgb)" /><arg name="ir"                              value="$(arg ir)" /><arg name="depth"                           value="$(arg depth)" /><arg name="respawn"                         value="$(arg respawn)" /><arg name="rgb_processing"                  value="$(arg rgb_processing)" /><arg name="debayer_processing"              value="$(arg debayer_processing)" /><arg name="ir_processing"                   value="$(arg ir_processing)" /><arg name="depth_processing"                value="$(arg depth_processing)" /><arg name="depth_registered_processing"     value="$(arg depth_registered_processing)" /><arg name="disparity_processing"            value="$(arg disparity_processing)" /><arg name="disparity_registered_processing" value="$(arg disparity_registered_processing)" /><arg name="hw_registered_processing"        value="$(arg hw_registered_processing)" /><arg name="sw_registered_processing"        value="$(arg sw_registered_processing)" /></include><node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen"><param name="device"  value="/dev/video1" /> <param name="camera_info_url"  value="$(arg rgb_camera_info_url)" /><param name="camera_name" value="rgb_Astra_Orbbec"/><param name="width"  value="640" /><param name="height"  value="480" /><param name="fps" value="30" /><param name="frame_id"  value="camera_rgb_optical_frame" /><remap from="/camera/camera_info" to="/camera/rgb/camera_info"/><remap from="/camera/image_raw" to="/camera/rgb/image_raw"/></node></group> <!-- camera --><!-- Load reasonable defaults for the relative pose between cameras --><include file="$(find astra_launch)/launch/includes/astra_frames.launch" if="$(arg publish_tf)"><arg name="camera" value="$(arg camera)" /></include></launch>

 

自行修改ir 和 rgb两个文件的路径,启动这个launch文件打开rviz订阅/camera/depth_registered/points就可以看到彩色点云了

 

总结:后期可以利用这些数据进行opencv tensorFlow 开发,及move_base的导航

 


http://chatgpt.dhexx.cn/article/DdC0yyRk.shtml

相关文章

体感(Kinect)技术开发和应用简介

体感有多种&#xff1b;Kinect是微软做的&#xff1b; 一 微软 Kinect 技术简介 Kinect使人机交互从二维扩展到三维&#xff0c;进入到非接触的交互体验。 Kinect硬件基本组成&#xff1a;传动马达&#xff0c;用于仰角控制&#xff1b;彩色摄像头&#xff1b;红外摄像头&…

kinect能接到电脑上用吗_浅谈:在PC上用摄像头体验体感控制

浅谈:在PC上用摄像头体验体感控制 2016-01-28 13:02:22 7点赞 11收藏 20评论 小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情 先balabala什么是体感游戏:一个摄像头架立于电视之上或下面,可以捕捉人的形态,所以可以在体感…

Python实现的端午节吃棕子除五毒体感小游戏源码,利用Paddlehub制作的端午体感小游戏,根据摄像头识别的人脸进行控制

利用Paddlehub制作端午体感小游戏 前言 马上要端午节,所以干脆再重写一些逻辑,做个端午节定制小游戏吧. 端午特色 游戏的贴图全换成了端午节相关贴图:三种粽子造型 雄黄酒 以及五毒:蛇,壁虎,蜈蚣,蟾蜍,蟹子 其实五毒也是我在逛了粽子博物馆才看到的哈哈哈,所以虽…

体感摄像头LeMTC-520首次体验

参考资料&#xff1a; http://www.orbbec.com.cn/sys/list/11.html https://blog.csdn.net/weixin_43489667/article/details/107244318 https://blog.csdn.net/qq_36711448/article/details/100120939 https://blog.csdn.net/qq_41951923/article/details/108175449 调试文件&…

奥比中光Orbbec Astra Pro体感摄像头“标定全过程”

作者 | 童虎 编辑 | 3D视觉开发者社区 ✨如果觉得文章内容不错&#xff0c;别忘了三连支持下哦&#x1f618;~ 文章目录 前期准备工作安装标定功能包标定彩色相机启动相机开始标定 前期准备工作 在ROS中配置奥比中光Orbbec Astra Pro&#xff0c;保证可以正常显示RGB、深度、I…

深度相机(七)--体感设备对比

&#xfeff;&#xfeff; Intel RealSense R200&#xff08;参数规格&#xff1a;分辨率&#xff1a;1080p&#xff0c;深度有效距离&#xff1a;0.51-4&#xff0c;USB3.0&#xff09; 乐视 LeTV Pro Xtion&#xff08;参数规格&#xff1a;深度有效距离&#xff1a;0.8m 至 …

Kinect体感机器人(二)—— 体感识别

Kinect体感机器人&#xff08;二&#xff09;—— 体感识别 By 马冬亮(凝霜 Loki) 一个人的战争(http://blog.csdn.net/MDL13412) 背景知识 体感技术属于NUI&#xff08;自然人机界面&#xff09;的范畴&#xff0c;可以让用户通过肢体语言与周边设备或环境互动&#xff0c;其…

乐视三合一体感摄像头Astra pro开发记录1(深度图、彩色图及点云简单显示)

在某鱼上淘的乐视三合一体感摄像头&#xff0c;捡漏价九十几块&#xff0c;买来玩玩。 网上已经有一些关于此款摄像头的开发资料。 官方的开发资料&#xff1a;[官网链接]&#xff08;https://orbbec3d.com/index/download.html) 按官方网站以及其他帖子&#xff0c;下载并安装…

百来块钱的乐视体感三合一体感摄像头拆解

乐视体感三合一体感摄像头基本参数 乐视体感三合一的体感摄像头前世今生 乐视体感三合一体感摄像头和奥比中光的Astra Pro是同门师兄弟&#xff0c;也就是当年乐视辉煌的时候向奥比中光定制的外观&#xff0c;富士康代工生产&#xff0c;当时生产的时候对标微软 kinect&#x…

3D深度体感摄像头 自有算法的深度立体视觉传感器

rgbdsense基于结构光结合自有算法的深度立体视觉传感器&#xff0c;通过USB将深度数据与RGB数据传输至PC的免驱动设备。通过此次众筹为大家提供开放易用的3D深度摄像头&#xff0c;开发人员可借助PC用于3D成像&#xff0c;图像匹配。三维扫描&#xff0c;动感游戏&#xff0c;u…

乐视三合一体感摄像头--基本信息及windows下部分开发

乐视三合一体感摄像头--基本信息及windows下部分开发 Introduction基本信息Windows下使用安装驱动使用openNI使用imageJ调用RGB图像Q&#xff1a; 参考资料 Introduction 乐视三合一体感摄像头是乐视对标kinect&#xff0c;做的一款3D体感摄像头&#xff1b;设计目的为用于电视…

体感摄像头 realsense 系列硬件资料

一、体感摄像头 Intel的体感摄像机是具有深度图像采集能力的摄像机&#xff0c;目前已经出到了400系列。与kinect 2&#xff0c;ZED&#xff0c;leap motion比较&#xff0c;属于比较中庸。 手势识别方面不如leap motion&#xff0c;leap motion的视角是120度&#xff0c;精度和…

大学计算机专业课程体系参考

#参考一 对于跨专业小白来说&#xff0c;熟悉大学本科计算机专业课程体系设置对于把握计算机知识体系具有重大意义。特此&#xff0c;结合笔者学习过程&#xff0c;分享一下本人认为比较有价值的体系层次图&#xff0c;以便于初学者和跨专业者更好的构建自己脑中的计算机网络和…

同济大学计算机系的课程,同济大学计算机系本科生培养方案

附件一&#xff1a;教学安排 课程性质课程编号课程名称考试学期学分学时上机时数实验时数公共基础课必修002016形势与政策(1)10.517 公共基础课必修070373中国近现代史纲要1 2.034 公共基础课必修070374思想道德修养和法律基础1 3.034 公共基础课必修100383计算机科学导论1 3.0…

斯坦福 计算机 学什么,斯坦福大学本科计算机专业学习哪些课程?

斯坦福大学本科计算机专业学习哪些课程&#xff1f;据小编了解&#xff0c;高质量的课程和自由的选课制度是斯坦福大学本科教育的特点。学校是根据课程的深度给课程排号的。如计算机系的课号是CS0到CS599&#xff0c;其中&#xff1a;0~99号是服务性课程&#xff0c;适合非技术…

计算机应用 主修,计算机应用主修课程

海量优秀的免费计算机应用主修课程范文供您参考与下载&#xff0c;关于计算机应用主修课程的免费论文范文参考资料是由2016年最新的相关论文题目按照标准论文格式模板写作的,适合不知道怎么写计算机应用主修课程的大学毕业生,对相关的本科论文和硕士毕业论文及职称论文发表写作…

计算机专业课顺序,计算机专业课程安排顺序 计算机专业课程安排

每年都有很多人选择报考计算机专业&#xff0c;那么&#xff0c;计算机专业主要学哪些课程呢&#xff1f;要掌握什么技能呢&#xff1f;下面小编整理了一些相关信息&#xff0c;供大家参考&#xff01; 计算机专业要学什么 学习计算机&#xff0c;需要有一定的数学及英语基础&a…

计算机应用基础课程学什么,计算机专业本科课程 主要学什么

计算机专业本科课程 主要学什么2021-05-01 17:02:08文/李文源 计算机专业本科课程主要有计算机应用基础、应用文写作、数学、英语、德育、电工与电子技术、计算机网络技术、C语言、计算机组装与维修、企业网安全高级技术、企业网综合管理等。 计算机专业本科课程 一、数学类 主…

计算机专业及课程设置,清华及各大高校公布计算机专业培养方案课程

原标题&#xff1a;清华及各大高校公布计算机专业培养方案课程 计算机科学与技术的基础课程在不同的学校的都不一样。不过基本都有计算机导论、计算机组成原理、操作系统、数据结构、算法分析与设计、编译原理、计算机原理、数据库原理等主干课程。而这些课程的基础就是数学&am…

计算机成人本科学历,计算机专业成人本科

为毕业生写计算机专业成人本科提供计算机专业成人本科范文参考,涵盖硕士、大学本科毕业论文范文和职称论文范文&#xff0c;包括论文选题、开题报告、文献综述、任务书、参考文献等&#xff0c;是优秀免费计算机专业成人本科网站。 基于极限编程的计算机专业本科毕业设计模式 基…