Chinaunix首页 | 论坛 | 博客
  • 博客访问: 9464887
  • 博文数量: 1750
  • 博客积分: 12961
  • 博客等级: 上将
  • 技术积分: 20091
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-09 11:25
个人简介

偷得浮生半桶水(半日闲), 好记性不如抄下来(烂笔头). 信息爆炸的时代, 学习是一项持续的工作.

文章分类

全部博文(1750)

文章存档

2024年(26)

2023年(26)

2022年(112)

2021年(217)

2020年(157)

2019年(192)

2018年(81)

2017年(78)

2016年(70)

2015年(52)

2014年(40)

2013年(51)

2012年(85)

2011年(45)

2010年(231)

2009年(287)

分类: 其他平台

2020-04-15 15:10:16



结合模块导航方案,使用深度摄像头时,应该将深度摄像头安装在上位机上。用户自行编写摄像头的驱动程序,在获取其深度数据后,再通过我们SDK中提供的publishDepthCamFrame接口将传输给模块,至此Slamware Core才能将深度数据用于避障。

配置

同添加其它传感器类似,在安装深度摄像头后,需通过RoboStudio中的Slamware配置工具将深度摄像头的具体安装位姿等相关信息进行配置,然后将配置好的文件导出,重新放到底盘MCU中进行Make,再将生成的新的hex文件烧录至底盘。

如何添加深度摄像头

开启滤波:高度滤波开关,只处理相应高度范围内的障碍物测距信息,主要应用于滤除地面噪声和高于机器人高度的障碍物信息。

开启形态学滤波:利用形态学运算主要采用态学开、闭运算进行滤波操作,用来过滤孤立噪点。(可能会影响性能,客户自行取舍是否勾选)

倒装:摄像头是否倒置,一般不勾选。

最小滤波高度:以地面为基准,高度小于该值的障碍物测距信息将被忽略,单位为m。

最大滤波高度:以地面为基准,高度大于该值的障碍物测距信息将被忽略,单位为m。

相关文档:

KBSW180147 机器人底盘传感器位置坐标及底盘配置工具的使用 

KBSW180158 Breakout kit 烧写固件

注意:配置深度摄像头前,请先确保使用的固件版本至少需要2.6.7及以上,否则配置的滤波相关信息无法被读出。

接口调用

接口调用

sensorId:使用Slamware配置工具配置时,设置的Id.

DepthCameraFrame:需要传入一个DepthCameraFrame类型的结构体变量,代表的是一帧数据。

DepthCameraFrame的成员:

 如何添加深度摄像头

深度摄像头有自己的属性参数,如分辨率,深度视角(FOV)等。定义DepthCameraFrame类型的结构体变量时,可以把深度摄像头的属性参数赋值给成员。另外,请注意如下几点:

注意各个成员的单位,距离为米,角度为弧度。

maxValidDistance建议在2米,否则可能存在噪点。

cols和rows,建议为320x240,不要大于这个值。如果一定要设置为更小的分辨率,需先确认所用的摄像头是否支持。

minFovPitch和maxFovPitch涉及到深度摄像头的VFOV(垂直视角)。假设VFOV=a(rad),则minFovPitch=-a/2,maxFovPitch=a/2。

minFovYaw和maxFovYaw涉及到深度摄像头的HFOV(水平视角)。假设HFOV=b(rad),则minFovPitch=-b/2,maxFovPitch=b/2。

data就是具体的一帧里面每个像素的值,需要把完整的一帧的深度数据全传进去。

需要把完整的一帧的深度数据全传进去

代码描述

代码描述

上述代码仅传输了一帧数据。实际在调用接口传递数据时,需要注意以下几点:

1.深度摄像头的数据是要持续发送的。为了防止数据传输堵塞,调用publishDepthCamFrame的频率不要超过一秒钟10次。

2.得到深度数据后,模式是实时处理的,为了防止有延迟,请选择性能好的上位机,获取一帧深度数据到调用publishDepthCamFrame接口总的时长应该在100ms以下。

3.对于深度摄像头的规格型号,并无特殊要求,只需要在调用接口时传送符合要求的数据即可。注意,需要的深度信息单位是米,如果您的摄像头的单位与此不同,需要转换。

4.对于不同品牌型号的深度摄像头,驱动摄像头的SDK不同,若对此需要帮助,建议您咨询摄像头品牌的支持工程师以获得专业的支持。

检验效果

当成功传输了正确符合要求的深度数据后,如果深度摄像头测距范围内有障碍物,可以通过RoboStudio或者Web portal看到深度信息。

depthcam是一个非常简单的示例文件,DepthCameraFrame中用到的data是人为构造填充的一个vector,用户可以自行下载,在VS2010中打开,查看检测到深度数据的效果。

1.通过RoboStudio查看

在此之前,需先获取下载Slamware Sensor Map插件(参考RoboStudio用户手册)。点击工作区的显示设置图标,在弹出的图层面板中选中传感器视野(深度摄像头)。

无深度信息与有深度信息对比

2.通过Web Portal查看

访问Web portal,开启Slamware Core诊断模式,具体步骤请参考KBSW180153 SLAMWARE Web Portal Function Overview 

通过Web Portal查看

阅读(1093) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~