Vicon动作捕捉系统使用及其与ros通信

实验室新进一套Vicon设备,闲置多日后被安排学习操作使用,并做一下数据传输到个人终端的工作,将近日学习使用的经验写下来。

关于VICON

Vicon是什么

Vicon光学动作捕捉系统是一种基于反射式的捕捉系统。它需要事先在被捕捉的人或者物体身上贴一种精致的反光球(Marker),当Vicon的摄像机发出的红外光打到反光球表面上时,反光球会反射同样波长的光给摄像机,反光球本身就是高反光率的材料,从而捕捉摄像机可以确定每个反光球的2D坐标,经过控制软件处理便可以得到它的3D坐标。并且由于Vicon的摄像机系列都是高速、高分辨率的,所以可以将每个反光球的运动轨迹清晰地记录下来,得到最终所需要的动作数据。实验室的Vicon设备由十二个“高级”红外摄像头,一台十二路交换机,一套软件组成。(包括Vicon的两个控制软件Nexus和Tracker,后面会讲两者的区别,还有一套读取数据的SDK,包括多种平台的,这边主要用的是Windows64)

Vicon怎么用

Vicon的两个软件(nexus和tracker)需要使用加密狗打开。然后使用流程如下



1、调节摄像头角度。手动去调节摄像头的位置,保证视野在中间偏下位置(安装时候已做好);

2、调节摄像头参数。在nexus软件中左边栏system-->properties

settings-->strobe intensity   控制发射红外线的强弱(数值越小,强度越弱),需要根据实际情况逐个调节,保证只有marker点稳定出现在视野中。

centroid fitting-->threshold  小于threshold的点被滤掉。

                      -->minimum...  最小...即小于xx的点被滤掉。

(在camera 视角下)以上操作调节每个摄像头画面的点,保证去除无效点,保留有效点,点击软件摄像头列表上方的保存设置,每次用都看一下有效点是否都在。

3、去除无效点。上一步的操作其实挺麻烦的,本质上是调节发射源来调整画面效果,多数情况下是在这一步中去除无效点。首先对于去除不掉的无效点可以使用笔&橡皮擦工具将其遮盖(也是对每一个摄像头画面逐个调整);简单一点的方法就是使用右侧tools-->mask cameras-->start 自动遮盖所有摄像头中的点(先把视野中的marker拿走),遮盖完后stop停止。(一步到位)

4、标定。每次实验之前,摄像头被动过之后,建立刚体模型时候,为了保证实验精度都要进行标定工作。

标定步骤:1、Tools-->Calibrate Cameras-->show Advanced  Wand为Active Wand V2

                  2、Tools-->Calibrate Cameras-->start(此时摄像头的指示灯都变为紫色)   

                 (在camera视角下)挥动标定杆。绕着实验室挥动标定杆一周,挥动过程中尽量保持标定杆水平,对着每一个摄像头逐个挥                          动。摄像头的状态由慢闪变为快闪表示其接收到的帧数越来越多,直到其指示灯变为绿色可换另外一个摄像头。将可能运动                       到的空间都走一遍。

                   3、所有灯都变过绿色后即可。查看image error是否小于0.3,若image error为0.3~0.5则重新挥动,若为0.5以上则需要调整摄                     像头参数

                   完成标定计算。

                  4、切回3D Perspective视角,发现此时的12个摄像机平面应该是斜着的。此时选中某个摄像头,将标定杆放置水平,开始设                       置坐标原点。Tools-->set volume origin-->start-->set origin   软件将以杆所在平面为地面,短轴为X轴,长轴为Y轴,右手法则                     定出Z轴,将会把所有摄像头拉回正常状态。

5、选择数据保存位置。双击打开Data Management 这一步是实验目录建立过程,所谓实验目录是指  dataset-->exprienment-->who-->day。双击黄蓝小球图标可以add数据库,选择创建路径。然后依次建立实验目录、人员目录、日期目录。必须有这几级目录之后才能继续操作实验。

6、建立刚体模型。

      ①marker贴到物体上置于检测空间中。

      ②软件左边subjects,新建空白模型,命名模型。

      ③选中Tools中的人形图标,subjects选择相应的模型-->subject capture-->start大概采集一秒即可,stop之后软件进入离线模式。

      ④切回到3D Perspective,视野中没有模型对象,点击工具栏中图标(灰色的不是蓝色的那个),重建三维模型。

      ⑤连接画面中的marker建立刚体。 Tools-->Labeling Template Builder , create segments (命名后) ---->  create  ,  在空间中点击               marker创建刚体(点击的第一个点到第二个点的连线为y轴正方向,第三个点与y轴正方向的垂线为x轴正方向,根据右手准则定出z方         向,其他的点随意。)

      ⑥右键左边的列表模型,save subject,保存模型数据。

      ⑦ Go Live ,进入实时状态,可以看到视野中的刚体模型。

7、采集数据。Tools--->第三个图标-->capture--->start开始记录。若刚体消失再出现时,marker的相对位置与已设置的配置相互匹配,自动识别出这是之前消失的刚体。stop停止记录。若继续start采集,则文件名+1保存。查看数据,在三级目录下面,****01是静态标定的数据

******02才是开始采集的数据

8、回访数据,补点。双击打开录制的数据,点击工具栏中的蓝色图标(蓝色的。。。),将刚体重建出来。点击画面左下角的play,播放采集的数据。补点操作是说利用软件的算法将运动过程刚体上丢失的点的轨迹补充出来,具有一定的不确定性,若非实验操作不当,最好不用。补点操作如下:Tools的第四个图标查看丢点,Gap Filling 若有丢点则会显示出来,补点类型有以下几种 Spline Fill(按前后轨迹补点)Pattern Fill(按运动轨迹相关的点进行补点)Rigid Body Fill(按运动轨迹相关的三个点进行补点)Kinematic Fill(做人体时用的补点方法)Cyclic Fill(往复循环的补点方法)。。。介绍这么多我都没用过,太麻烦啊。。简便方法:工具栏---->Auto Gap Fill(纯自动补点)

9、输出数据。Tools--->第五个图标---->Current Pipeline选择export data,最终将数据保存输出成csv格式,可以在数据库中查看到。

Tracker与Nexus的区别

 按照售后小曹的解释,Nexus与Tracker的区别就是一个(Nexus)体量大,可处理数据更多,但默认不是实时解算,也可以变成实时模式,这样它的延时就会变大,因此我在使用其自带的sdk查看数据时,在实时情况下只有marker的坐标,而没有刚体的旋转平移。另一个(Tracker)相对于前者就并不复杂,延时更低,可以做到实时解算,与前者不同的是,它只能处理刚体上的数据,也就是说如果Marker点丢失掉后,tracker就不会输出这些点的数据了,因此这个软件更适合实时控制。

VICON与ROS通信

这里为了省事直接用了开源的软件包 vicon_brigde   http://wiki.ros.org/vicon_bridge   ,在kinetic下面编译需要改一下cmakelist和packagexml,然后就可以直接用了,,orz,然而当初折腾了好久才把这个搞定,,就是因为我用的Nexus,不能实时得到数据,一直以为是ros包的问题,ethz早在ros刚兴起时便开源了这个软件,尽管现在wiki上还是indigo版本,也不影响使用的。后面有空需要改改代码,,因为早在做smsckf时就发现ethz提供的vicon数据中的pose都是TransformStamped格式,这个格式在rviz里面是不可见的,换一个话题发布就可以了。

 

 

参考资料:

http://www.omgl.com.cn/upfile/File/2011/BME/vicon%E4%BB%8B%E7%BB%8D.pdf

实验室学长笔记

  • 12
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值