[ROS2系列] ORBBEC(奥比中光)AstraPro相机在ROS2进行rtabmap 3D建图

目录

背景:

一、驱动AstraPro摄像头

二、安装rtabmap

error1:缺包

三、尝试

四、参数讲解

五、运行

error2: Did not receive data since 5 seconds!

六、效果​编辑

error4:


背景:

1、设备:pc;jeston agx orin

2、环境:Ubuntu20.04;ROS2(Foxy)

3、主从机配置,jeston agx orin为主机

4、jeston agx orin含有:AstraPro、激光雷达驱动,刑天底盘控制,语音交互

5、目前已实现激光雷达2D建图,AstraPro驱动,刑天底盘控制,语音交互

一、驱动AstraPro摄像头

https://github.com/orbbec/ros_astra_camera

启动摄像头:
ros2 launch astra_camera astra_pro.launch.py

warning:

[component_container-1] [WARN] [1697708402.794392173] [camera.point_cloud_xyz]: [image_transport] Topics '/camera/depth/image_raw' and '/camera/depth/camera_info' do not appear to be synchronized. In the last 10s:
[component_container-1] 	Image messages received:      5
[component_container-1] 	CameraInfo messages received: 5
[component_container-1] 	Synchronized pairs:           0

二、安装rtabmap

https://github.com/introlab/rtabmap_ros

 具体操作看[ROS2系列] ubuntu 20.04测试rtabmap-CSDN博客

但是我在jeston agx orin 使用

rosdep update && rosdep install --from-paths src --ignore-src -r -y
error1:缺包
sudo apt-get ros-foxy-
注意:后面跟的包的“_”都需要改成“-”

三、尝试

由于我用的是奥比中光摄像头,官方也并没有例子,在issue中我也问了维护者:

这有一个zed的例子:
ros2 launch zed_wrapper zed.launch.pyros2 launch rtabmap_launch rtabmap.launch.py \rtabmap_args:="--delete_db_on_start" \rgb_topic:=/zed/zed_node/rgb/image_rect_color \depth_topic:=/zed/zed_node/depth/depth_registered \camera_info_topic:=/zed/zed_node/rgb/camera_info \frame_id:=base_link \approx_sync:=false \wait_imu_to_init:=true \imu_topic:=/zed/zed_node/imu/data \qos:=1 \rviz:=true

qos (Quality of Service) argument should match the published topics QoS (1=RELIABLE, 2=BEST EFFORT). ROS1 was always RELIABLE.

所以这里我选择用qos=2。

四、参数讲解

args:="-d --Mem/UseOdomGravity true --Optimizer/GravitySigma 0.3": 这个参数用于指定RTAB-Map的命令行参数。具体地,它包括了以下命令行参数:-d:表示RTAB-Map在启动时删除(清空)先前的数据库,以重新开始构建地图。
--Mem/UseOdomGravity true:启用RTAB-Map使用里程计信息进行重力校正。
--Optimizer/GravitySigma 0.3:设置RTAB-Map优化中的重力方向方差为0.3。
odom_topic:=/t265/odom/sample: 这个选项指定里程计信息的话题,通常用于融合定位和地图构建。frame_id:=t265_link: 这个选项指定RTAB-Map使用的坐标系,通常是相机或机器人的坐标系。在这里,它被设置为t265_link。rgbd_sync:=true: 这个选项表示启用RGB-D数据的同步,确保RGB图像和深度图像具有相同的时间戳。depth_topic:=/d400/aligned_depth_to_color/image_raw: 这个选项指定深度图像的话题。rgb_topic:=/d400/color/image_raw: 这个选项指定RGB图像的话题。camera_info_topic:=/d400/color/camera_info: 这个选项指定相机信息的话题,包含了相机的参数和标定信息。approx_rgbd_sync:=false: 这个选项表示禁用RGB-D数据的近似同步。visual_odometry:=false: 这个选项表示禁用视觉里程计(Visual Odometry)。queue_size:=30: 这个选项指定RTAB-Map节点使用的消息队列大小。增加队列大小可以容纳更多的消息,以应对消息发布频率不一致的情况。
frame_id:=base_link: 这个选项指定RTAB-Map节点使用的坐标系,通常是相机或机器人的坐标系。在这里,它被设置为base_link。approx_sync:=false: 这个选项用于控制RGB和深度图像的同步。当设置为false时,RGB和深度图像不会强制同步。

五、运行

进入ubuntu,查看摄像头话题

ros2 topic list
          ('rgb/image', '/camera/color/image_raw'),#('rgb/camera_info', '/camera/color/camera_info'),('rgb/camera_info', '/camera/color/camera_info'),#('depth/image', '/camera/aligned_depth_to_color/image_raw'),('depth/image', '/camera/depth/image_raw')]

 当我尝试命令时候,会出现延时错误

error2: Did not receive data since 5 seconds!
rtabmap_viz-3] [WARN] [1697700727.832576678] [rtabmap.rtabmap_viz]: rtabmap_viz: Did not receive data since 5 seconds! Make sure the input topics are published ("$ ros2 topic hz my_topic") and the timestamps in their header are set. If topics are coming from different computers, make sure the clocks of the computers are synchronized ("ntpdate"). If topics are not published at the same rate, you could increase "queue_size" parameter (current=20). 

这个错误有很多,github issue里面相关的解决方法我都看完了,但不是我需要的,最后我的可执行命令是:

ros2 launch rtabmap_launch rtabmap.launch.py \rtabmap_args:="--delete_db_on_start" \rgb_topic:=/camera/color/image_raw \depth_topic:=/camera/depth/image_raw \camera_info_topic:=/camera/color/camera_info \frame_id:=camera_link \use_sim_time:=true \approx_sync:=true \qos:=2 \rviz:=true \queue_size:=30

六、效果

至少3个界面都有图像了。

当我操作我的机器人时,图像同步的过于慢,终端有报错

error4:
[rtabmap_viz-3] [INFO] [1697708400.611813528] [rtabmap.rtabmap_viz]: rtabmap_viz stopping spinner...
[rtabmap-2] [ERROR] (2023-10-19 17:39:10.449) Rtabmap.cpp:1343::process() RGB-D SLAM mode is enabled, memory is incremental but no odometry is provided. Image 0 is ignored!
[rtabmap-2] [ERROR] (2023-10-19 17:39:11.367) Rtabmap.cpp:1343::process() RGB-D SLAM mode is enabled, memory is incremental but no odometry is provided. Image 0 is ignored!

后续再更吧,尊的累了,搞的想吐。我的intel D435i 为什么不显示点云!!!

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

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

相关文章

语音芯片KT142C两种音频输出方式PWM和DAC的区别

目录 语音芯片KT142C两种音频输出方式PWM和DAC的区别 一般的语音芯片,输出方式,无外乎两种,即dac输出,或者PWM输出 其中dac的输出,一般应用场景都是外挂功放芯片,实现声音的放大,比如常用的音箱…

WMS透明仓库:实现仓储的全方位可视化与优化

一、WMS透明仓库的定义与特点 1. WMS透明仓库的定义:WMS透明仓库是一种基于信息技术的仓库管理系统,通过实时数据采集、分析和可视化,将仓库内外的物流流程、库存状态、人员活动等信息以透明的方式展示给相关利益方。 2. 实时数据采集&…

力扣每日一题50:Pow(x,n)

题目描述: 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000示例 2: 输入:x 2.10000, n 3 输出…

性能评测 | GreatDB VIP PLUGIN方案 VS MySQL InnoDB Cluster高可用方案

前言 最近,我们与许多数据库用户进行了沟通和调研,了解到,目前仍有相当一部分投产的MySQL高可用或故障转移方案,用到了读写分离功能或业务接入VIP(Virtual IP Address)的方式,来屏蔽后端数据库架…

2022年合肥市庐阳区信息学区赛(初中组)

2022年合肥市庐阳区信息学区赛(初中组)第1题 信封 题目描述 有两张贺卡,需要装入一个信封邮寄,当然贺卡都是正的放进信封中,也就是两张贺卡的边同信封的边一都是平行的,不允许斜着放入信封。请问信封的最小尺寸。 输入格式 共两行。每行两个整数,分别表示两张贺卡的两个…

华为OD 最小数字(100分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…

MySQL 性能分析

MySQL 性能分析 对 mysql 进行性能分析,主要就是提升查询的效率,其中索引占主导地位。对 mysql 进行性能分析主要有如下几种方式: 方式一:查看 sql 执行频次 show global status like ‘Com_______’; // global 表示全局 show s…

HCIA --- 网络基础

OSPF七层参考模型: 应用层 抽象语言输入和输出 抽象语言-->编码 表示层 编码-->二进制 会话层 应用程序内部到地址,区分程序内各个会话 上三层均为应用程序处理加工数据,上三被统称为应用流层 下四层负责数…

ROS2使用colcon build编译的工程运行出错,cmake编译的没有问题。

ROS2下的工程编译后, 用标准的ros2的运行节点命令无法正常运行,程序没有问题。 ros2 run package_name exc_file build下生成的可执行文件可以用 ./ exc_file 执行, install下的可执行文件用 ./ exc_file无法运行 解决方法: co…

[每周一更]-(第68期):Excel常用函数及常用操作

日常工作,偶尔也会存在excel表格入库的情况,针对复杂的入库情况,一般都是代码编号,读文件-写db形式;但是有些简单就直接操作,但是 这些简单的入库不仅仅是直接入库,而是内容中有部分需要进行映射…

uniapp图片加水印

1、uniapp加水印 1.1、创建画布容器 <canvas class"watermark-canvas" id"watermark-canvas" canvas-id"watermark-canvas":style"{ width: canvasWidth, height: canvasHeight }" /> 1.2、获取水印内容 async getLocation(…

防水款无源NFC卡片

产品参数&#xff1a; PN29_T 产品参数 产品型号 PN29_T 尺寸(mm) 85.8*41*2.9mm 显示技术 电子墨水屏 显示区域(mm) 29(H) * 66.9(V) 分辨率(像素) 296*128 像素尺寸(mm) 0.227*0.226 显示颜色 黑/白 视觉角度 180 工作温度 0-50℃ 电池 无需电池 工作…

flutter与原生 相互通信实战

一、原生和flutter 通信 ios 通信类 CommonUtil.swift import Foundation import Flutterpublic class CommonUtil {public static func emitEvent(channel: FlutterMethodChannel, method: String, type: String, errCode: Int32?, errMsg: String?, data: Any?){safeMa…

Stable Diffusion原理

一、Diffusion扩散理论 1.1、 Diffusion Model&#xff08;扩散模型&#xff09; Diffusion扩散模型分为两个阶段&#xff1a;前向过程 反向过程 前向过程&#xff1a;不断往输入图片中添加高斯噪声来破坏图像反向过程&#xff1a;使用一系列马尔可夫链逐步将噪声还原为原始…

“智能+”时代,深维智信如何借助阿里云打造AI内容生成系统

云布道师 前言&#xff1a; 随着数字经济的发展&#xff0c;线上数字化远程销售模式越来越成为一种主流&#xff0c;销售流程也演变为线上视频会议、线下拜访等多种方式的结合。根据 Gartner 报告&#xff0c;到 2025 年 60% 的 B2B 销售组织将从基于经验和直觉的销售转变为数…

stable diffusion如何解决gradio外链无法开启的问题

问题确认 为了确认gradio开启不了是gradio库的问题还是stable diffusion的问题&#xff0c;可以先执行这样一段demo代码 import gradio as grdef greet(name):return "Hello " name "!"demo gr.Interface(fngreet, inputs"text", outputs&q…

QT获取USB相机具体属性信息

代码获取 #include <QCameraInfo>foreach (const QCameraInfo& cameraInfo, cameras) {QString device_name cameraInfo.deviceName();qDebug() << "Device Name: " << device_name;qDebug() << "Description: " << …

Unity之ShaderGraph如何实现飘动的红旗

前言 今天我们来实现一个飘动的红旗 如图所示&#xff1a; 关键节点 SimpleNoise&#xff1a;根据输入UV生成简单噪声或Value噪声。生成的噪声的大小由输入Scale控制。 Split&#xff1a;将输入向量In拆分为四个Float输出R、G、B和A。这些输出向量由输入In的各个通道定义&…

边缘检测算法

边缘检测算法是在数字图像处理中常用的一种技术&#xff0c;用于检测图像中物体边缘的位置。以下是几种常见的边缘检测算法&#xff1a; Sobel算子&#xff1a;Sobel算子是一种基于梯度的算法&#xff0c;通过计算图像的水平和垂直方向的梯度值&#xff0c;并将其组合起来得到边…

UiPath:一家由生成式AI驱动的流程自动化软件公司

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 总结&#xff1a; &#xff08;1&#xff09;UiPath(PATH)的股价并没有因为生成式AI的炒作而上涨&#xff0c;但很可能会成为主要受益者。 &#xff08;2&#xff09;即使在严峻的宏观环境下&#xff0c;UiPath的收入还在不…