【转载】Realsense2深度相机的基本操作命令

2023-05-16

Realsense2深度相机的基本操作命令

刚开始学习realsense2深度相机,有必要熟悉一下相关指令。
转载自:https://blog.csdn.net/weixin_42361804/article/details/104144690

Realsense2深度相机的基本操作命令

    • 1、rostopic
      • (1)rostopic list
      • (2)rostopic info
    • (3)image_view
    • 2、rviz
    • 3、rosbag
    • 4、rqt_graph

1、rostopic

(1)rostopic list

运行 roslaunch realsense2_camera rs_camera.launch,新打开终端rostopic list可以查看当前所有的topic。
rostopic list | grep color可查找所有关于“color”的topic:
在这里插入图片描述
rostopic list | grep depth 可查找所有关于“depth”的topic:
在这里插入图片描述

(2)rostopic info

rostopic info /camera/color/image_raw 可查看“/camera/color/image_raw”话题的详细信息:
在这里插入图片描述
可以看到消息类型为/camera/color/image_raw,发布者为/camera/color/image_raw,没有接受者,只有某一个节点订阅了此话题,才有接收者。
输入rosmsg show sensor_msgs/Image可以查看消息的详细定义:
在这里插入图片描述
利用此消息格式就可以传递图像的信息。

(3)image_view

输入rostopic list | grep "raw$",可以看到以下六种话题,利用image_view就可以通过这六种话题查看六种图像。
在这里插入图片描述
color:彩色图像,depth:深度图像,infra1\infra2:红外图像,pointcloud:点云图像,aligned A to B :将B映射对齐到A的图像,利用image_view可以查看相机的彩色图像、深度图像以及红外图像。
新终端输入rosrun image_view image_view image:=/camera/color/image_raw可以看到彩色图像:(/camera/color/image_raw是话题名称,查看其他图像只需修改此话题即可)
在这里插入图片描述
而此时在新终端输入rostopic info /camera/color/image_raw就可以看到接受者为“/image_view_1571487516552059717”:
在这里插入图片描述
这意味着image_view正在接收相机的视频流并显示出来。

深度图像:/camera/depth/image_rect_raw
在这里插入图片描述
红外图像:/camera/infra1/image_rect_raw
在这里插入图片描述
彩色流向深度流对齐的图像:/camera/aligned_depth_to_color/image_raw
在这里插入图片描述
红外流向深度流对齐的图像:/camera/aligned_depth_to_infra1/image_raw
在这里插入图片描述

2、rviz

通过以上的学习知道了可以使用image_view来查看相机产生的各种图像,而要查看点云需要使用rviz或其它GUI程序。
(1)用rviz创建一个visualization
运行rgbd的launch文件,用命令rosrun rviz rvizrviz打开rviz,然后Add一个visualization,选择“By topic”里面的/camera/depth_registered/points节点,把里面的 “PointCloud2”点云图像加入rviz:
在这里插入图片描述
(2)此时在rviz中并未发现有点云图像,原因是rviz中的map为世界坐标系,而相机坐标不知道自己的位姿,需要给相机一个位姿,告诉相机它与世界坐标的关系是什么,最简单的方法就是把map坐标直接设置为相机的坐标。
先通过命令rostopic info /camera/depth_registered/points查看topic的信息,看到消息类型为sensor_msgs/PointCloud2:
在这里插入图片描述
再通过命令rosmsg show sensor_msgs/PointCloud2查看消息的定义:
在这里插入图片描述
发现有一个frame_id,这就是相机的坐标系,通过命令rostopic echo /camera/depth_registered/points | grep frame_id可以查看frame_id的名称:
在这里插入图片描述
frame_id的名称叫做“camera_color_optical_frame”,世界坐标系叫做“map”,之后就可以通过命令rosrun tf static_transform_publisher 0.0 0.0 0.0 0.0 0.0 0.0 map camera_color_optical_frame 100 把世界坐标系直接赋给相机坐标系,此命令中的6个0.0表示即没有平移,也没有旋转。(通过查找资料得知rosrun tf static_transform_publisher的两种用法:1:static_transform_publisher x y z yaw pitch roll frame_id child_frame_id perios_in_ms,用坐标表示平移,用欧拉角表示旋转。2:static_transform_publisher x y z qx qy qz qw frame_id child_frame_id period_in_ms,用坐标表示平移,用四元数表示旋转。)之后在rviz中看到了点云图像:
在这里插入图片描述

3、rosbag

rosbag主要用于记录、回放、分析rostopic中的数据,可以将指定rostopic中的数据记录到.bag后缀的数据包中,便于对其中的数据进行离线分析和处理。
运行rgbd的launch文件,在新终端中运行rosbag record /camera/color/image_raw -o color_image,将/camera/color/image_raw话题上的数据保存到color_image.bag文件里,就是把相机的RGB视频流保存到bag文件里,供后续使用。
之后退出所有程序,运行roscore,新终端运行rostopic echo /camera/color/image_raw,没有任何结果:
在这里插入图片描述
在新终端运行rosbag play color_image_2019-10-19-23-00-49.bag,此时可以看到在/camera/color/image_raw话题发布的信息。
在这里插入图片描述
在这里插入图片描述
总之,rosbag作用就是作为subscriber接收并储存信息,作为publisher重新发布信息。

4、rqt_graph

rqt_graph能够创建一个显示当前系统运行情况的动态图形,能够利用图形查看节点之间的连接关系和正在使用的topic,输入命令rqt_graph可以看到图形。
Nodes only:
在这里插入图片描述
Nodes/Topics(all):
在这里插入图片描述

</article>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【转载】Realsense2深度相机的基本操作命令 的相关文章

  • 获取realsense内参

    文章目录 xff11 xff0e 无畸变 xff12 xff0e Brown Conrady 畸变模型3 Opencv 里畸变图像矫正过程 xff11 xff0e 无畸变 相机内参包括相机矩阵参数和畸变系数 相机内参矩阵为3 3的矩阵 xf
  • 十年研发经验工程师的嵌入式学习书籍大推荐

    从事嵌入式研发行业十年 xff0c 认为学习就是要不断的吸纳知识 xff0c 在研发过程中 xff0c 经常会遇到一些问题 xff0c 这种发现问题并解决问题的过程就是进步 为什么选择学习嵌入式 xff1f 嵌入式系统无疑是当前最热门最有发
  • js手机号正则表达式验证

    看到网上很多代码 都很复杂 xff0c 还包括以中文开头的86 xff0c 17951 xff0c 其实谁会填这么多 xff0c 无非是检验一下他们是否位数对不对 xff0c 开头有没有写错而已 下面我们从百度百科的手机号码历程来看 xff
  • 正则验证匹配中文姓名全部源字符串

    这个是验证匹配中文姓名的全部源串 xff0c 在网上找了很久 xff0c 大都是验证匹配含有中文 xff0c 就在网上某人提供的正则的基础上修改成了验证所填姓名的每个字符 xff0c 只有都匹配才能验证通过 该正则为 xff1a u4e00
  • 域名,网站名和URL区别

    要写一个正则表达式来验证输入域名是否有正确 xff0c 一直以为例如http www baidu com类似于这种才是网站域名 xff0c 经过百度才发现自己的认知是错误的 以下转载于百度经验 xff1a http jingyan baid
  • 23种设计模式(1)-Facade设计模式

    前记 曾经我遇见的一个需求是这样的 xff0c 接口A有个方法void methodA xff0c 类B需要实现接口A的methodA 方法 xff0c 并且在类B中需要把methodA 方法内部处理逻辑获得的结果利用C类实例的某个方法进行
  • Linux CentOS 7安装GNOME图形界面并设置默认启动方式

    为hadoop集群做准备 xff0c 没有多台电脑 xff0c 也只能委屈我这渣渣电脑了 在我的物理机上安装虚拟机 xff0c 再在虚拟机里面虚拟出两台电脑 xff0c 安装两个linux操作系统 1 xff0c 电脑太渣 xff0c 安装
  • dubbo学习资源

    简介 xff1a 项目有使用dubbo xff0c 以此需要学习一下 xff0c 搜集学习资源 一 xff0c 博客资源 1 xff0c dubbo学习 2 xff0c dubbo配置
  • 使用CSS3的box-sizing属性解决div宽高被内边距撑开的问题

    有时我们会给页面的元素 xff08 比如div xff09 设置个固定的高度或宽度 但如果给这个div又设置了内边距或者边框的话 xff0c 那么这个div就会被撑大 也就是其实际的尺寸变成了 xff1a 设置的宽高尺寸 43 内边距 43
  • 博客搬家:https://blog.csdn.net/u012995888

    本博客文章有些乱 xff0c 多有转载 xff0c 现在主要在另一CSDN账号更新原创文章 xff0c 点击查看博客主页 另外 xff0c 本博客后续可能会重新整理栏目 xff0c 更新高质量文章 xff0c 谢谢关注 xff01
  • C++ 常用设计模式(学习笔记)

    1 工厂模式 工厂模式 xff1a 简单工厂模式 工厂方法模式 抽象工厂模式 1 简单工厂模式 xff1a 主要特点是需要在工厂类中做判断 xff0c 从而创造相应的产品 xff0c 当增加新产品时 xff0c 需要修改工厂类 typede
  • 通过更新显卡驱动和内核,解决linux启动时在starting atd: [ok]停止的问题

    说得有些复杂 xff0c 你可以不用理会这些 xff0c 直接执行我罗列的那几个命令就行了 方法一 xff1a 网上有说In some cases the new install Gforce Drivers do not supporte
  • Streamedian/html5_rtsp_player接海康视频遇到的坑

    Streamedian是一套能够让浏览器免插件播放RTSP的项目 安装了其官方的server端后有一个demo 如图 xff0c 在输入处输入红框格式的RTSP地址 xff0c 如官方的demo地址 xff1a rtsp 184 72 23
  • 文档与笔记利器 reStructuredText 和 Sphinx

    原文http qixinglu com archives note tools restructuredtext sphinx 文档与笔记利器 reStructuredText 和 Sphinx 28六 2011 作者 投稿 转载 本文采用
  • 关于递归的问题:无限递归

    当你在写递归的时候 xff0c 可能会出现运行不出结果来 xff0c 此时你应该试着看看会不会出现无限递归的问题 xff0c 如果有的话 xff0c 你可以在前面增加一个判断语句 xff0c 满足条件进入执行相关操作与递归 xff0c 但在

随机推荐