Memos:V-REP/Coppeliasim视觉传感器的使用

记录vrep中使用视觉传感器(Kinect、Vision sensor)时的一些操作。

1.Kinect篇

memo①

放入blobDetectionCamera和Kinect,选中这两个shape中的这三项,然后把这三项放在一起形成一个新的shape
在这里插入图片描述
如下:
在这里插入图片描述
(笔者改名为Vision_RGBD_UR5),这样做实际上就是利用了blobcamera的外观,本质上这个新的shape还是kinect传感器,这样做有一个好处就是:由于kinect传感器的外形,有些时候在对sensor进行rotation或者translatin时kinect不太方便观察,这个blob传感器不一样,反正就一个镜头,比较容易观察。(可能没有讲清楚,笔者也不造该如何讲,只可意会)

memo②

完成上述步骤点击仿真按钮不会出现任何图像,我们还需要写一个Lua script。选中该sensor,ADD->Associated Child Script->Non threaded

function sysCall_init() 
    depthCam=sim.getObjectHandle('kinect_depth')
    depthView=sim.floatingViewAdd(0.9,0.9,0.2,0.2,0)
    sim.adjustView(depthView,depthCam,64)

    colorCam=sim.getObjectHandle('kinect_rgb')
    colorView=sim.floatingViewAdd(0.9,0.69,0.2,0.2,0)
    sim.adjustView(colorView,colorCam,64)
end
function sysCall_cleanup() 
end 

将上述demo添加到lua script中,简单的解释一下其中的函数意义。
sim.getObjectHandle笔者的理解是就是要对给定参数的vision sensor进行处理,相当于启动这个sensor,sim.floatingViewAdd(0.9,0.9,0.2,0.2,0)这句话的意思是在env中添加floatview,(后面也会提到如何添加floatview)
这是官方给出的parameters的解释:
https://www.coppeliarobotics.com/helpFiles/en/regularApi/simFloatingViewAdd.htm

simFloatingViewAdd / sim.floatingViewAdd

Description Adds a floating view to current page. See also the sim.floatingViewRemove, sim.adjustView and sim.cameraFitToView functions.
C synopsis simInt simFloatingViewAdd(simFloat posX,simFloat posY,simFloat sizeX,simFloat sizeY,simInt options)
C parameters

posX & posY:

relative position of the center of the floating view. Accepted values are between 0 and 1.

sizeX & sizeY:

relative size of the floating view. Accepted values are between 0 and 1.
options: bit-coded:
bit0 set (1)=double click allows swapping the floating view with the main view
bit1 set (2)=the floating view doesn’t have a close button
bit2 set (4)=the floating view cannot be shifted
bit3 set (8)=the floating view cannot be resized
C return value
Handle of the floating view, or -1 in case of an error.
Lua synopsis number floatingViewHandle=sim.floatingViewAdd(number posX,number posY,number sizeX,number sizeY,number options)
Lua parameters
Same as C-function
Lua return values
Same as C-function

前两个参数其实就是要添加的floatview的中心点坐标,接下来两个采参数表示窗口的相对大小(笔者尝试改了几个参数发现没什么变化,筒子们可以尝试以下,欢迎留言)最后一个参数,如果是1则表示可以和主窗口相互切换,是2表示窗口右上角没有关闭选项,4表示无法shifted;8表示无法resize 。设置为其他参数无影响.

添加过上述代码之后点击运行就可以弹出这样的floatview
在这里插入图片描述
如果你的rgb窗口一片黑,可能有下面几种情况。首先查看vrep中最下方的info提示有没有说script有错误,如果没有错误还有一个可能的原因就是你的camera在world坐标系中的z轴的距离太远了。这是因为这个blobcamera有一定的视野距离,
如下图,这是camera在z轴为0.85m左右的时候的采集到的图像,是正常的
在这里插入图片描述
倘若再抬高一些,到0.99m左右的时候发现视野就全黑了。
在这里插入图片描述
所以如果view中全是黑色一片,可以考虑调一下sensor高度。

memo③

另外就是要注意可以根据自己project的实际需要调节一下sensor的scene object properties
在这里插入图片描述
可以修改剪切平面(Near/Far Clipping Plane)、视场角(FOV)、分辨率(Resolution )的值,kinect的视场角一般是57,这个可不调,可以适当调节Far Clipping Plane这个参数值,通过调节这一参数值可以适当的改变kinect所获取的视野大小。

2.Vision sensor->perspective type篇

这部分可以参考下面几篇blog,理论和操作讲解的都比较全
https://blog.csdn.net/weixin_34319817/article/details/94562081
https://www.cnblogs.com/21207-iHome/p/7120497.html
https://zhuanlan.zhihu.com/p/106059246
http://www.mamicode.com/info-detail-1887732.html

memo①

在env中如何添加Floatview,可查看这篇blog(笔者小白菜竟然因为这一个小小的issue困了半个小时,无语)
https://blog.csdn.net/qq_33374294/article/details/98877817

其他blog:
https://blog.csdn.net/qq_29945727/article/details/98469621

目前只用了这么多,暂时写到这里,后续如果有进一步的学习会持续更新。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值