ROS学习笔记之——VICON的使用
Posted gwpscut
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ROS学习笔记之——VICON的使用相关的知识,希望对你有一定的参考价值。
最近要测量定位算法的精度,打算用vicon来提供ground truth
入门
vicon其实就相当于一个传感器,在机载电脑上安装VICON-ROS包,这个包就相当于驱动接收来自VICON的数据
在机载电脑上编译(需要用cm编译)
编译完了之后,就只需要修改 /ws_vicon/src/viconros/launch/unit.launch 文件里面的值就可以使用 viconros pkg 了然后根据 viconros使用说明.pdf 的提示,修改 unit.launch 文件里面的值。如下所示:
<?xml version="1.0"?>
<launch>
<node pkg="viconros" type="viconros" name="viconros" output="screen" ns="turtlebot2">
<!-- <remap from="/pengrui/viconros/mocap/pos" to="/mavros/vision_pose/pose"/> -->
<param name="vicon_host_name" value="192.168.50.74:801"/>
<param name="modelsegment_name" value="turtlebot2"/>
</node>
<!-- 192.168.50.74:801 value 是vicon 主机的ip地址,然后冒号之后的端口号 = 801 -->
<!-- <node pkg="viconros" type="viconros" name="viconros" output="screen" ns="pr_object_1">
<remap from="/pr_object_1/viconros/mocap/pos" to="/pr_object_1/pose"/>
<param name="vicon_host_name" value="192.168.50.74:801"/>
<param name="modelsegment_name" value="pr_object_1"/>
</node>
<node pkg="viconros" type="viconros" name="viconros" output="screen" ns="pr_object_2">
<remap from="/pr_object_2/viconros/mocap/pos" to="/pr_object_2/pose"/>
<param name="vicon_host_name" value="192.168.50.74:801"/>
<param name="modelsegment_name" value="pr_object_2"/>
</node>
<node pkg="viconros" type="viconros" name="viconros" output="screen" ns="pr_object_3">
<remap from="/pr_object_3/viconros/mocap/pos" to="/pr_object_3/pose"/>
<param name="vicon_host_name" value="192.168.50.74:801"/>
<param name="modelsegment_name" value="pr_object_3"/>
</node> -->
</launch>
保存文件之后 roslaunch viconros unit.launch 就可以收到信息了
topic 的命名方式是 "objectname"/viconros/mocap/(acc OR pos OR vel),示例如下:
$ rostopic list
/calibrationstick/viconros/mocap/acc
/calibrationstick/viconros/mocap/pos
/calibrationstick/viconros/mocap/vel
如果有多个object,就在launch 文件里面多调几次node,然后每段node 的launch 都是一样地改三个地方。
VICON的原理:相机发射红外线到无人机上的反射球上,得到测距距离,通过多相机标定计算反射球的空间位置
相机连接方式:一共14个相机(顺时针排序)全部用网线连接到总交换机上
软件使用
Vicon-tracker,每次装完该软件第一次要用licsence激活
在vicon-tracker里选择“camera”栏可以调节相机的基本参数
在vicon-tracker里选定单个相机->对应相机的LED灯会加一圈紫色
相机状态正常:镜头旁边的LED灯显示绿色
判断vicon相机对单个反射球的检测质量:
中间为白色,周围最外面一圈为灰色(逐渐变暗)-> 此时检测质量最佳
调节相机光圈大->造成检测效果过白,光圈小->过暗
反射球能选大的就尽量选大的,除非物理上有干涉(放不下)才选小尺寸的
vicon的频率:100hz~330hz
在机器人上贴球时尽量不要对称,每个无人机的贴法不要一致。如下图所示
VICON相机标定
- 在标定时尽量把所有反光物体移开,当然包括所有反射球
- 如果遇到实在无法移走的反光区域,可用Mask Calibration模式手动覆盖该区域,但是该区域也不会被纳入VICON工作范围,所以不能mask太多的区域
- 标定过程:
(a)打开标定杆,中间有按钮分别显示“开关-电量-强度”
(b)点击vicon-tracker里的calibration,开始标定,此时所有相机的LED会闪烁
(c)走进vicon场,一边走动一边挥动标定杆
(d)直到所有相机LED变绿,说明标定完成,查看标定误差error < 0.3mm即可
(e)将标定杆放置在合适的地方,回到vicon-tracker设置原点origin,标定完成
标定完成之后检测标定效果:在vicon场里放入装有反射球的无人机,点击单独一个球可以看到该球和所有相机都有实时的连线
VICON发布的topic
pose
- topic name:
/object/viconros/mocap/pos
- topic type:
geometry_msgs/PoseStamped
- messages: position, orientation
velocity
- topic name:
/object/viconros/mocap/vel
- topic type:
geometry_msgs/TwistStamped
- messages: linear velocity, angular velocity
acceleration
- topic name:
/object/viconros/mocap/acc
- topic type:
geometry_msgs/TwistStamped
- messages: linear acceleration, angular acceleration
实验测试
参考资料
以上是关于ROS学习笔记之——VICON的使用的主要内容,如果未能解决你的问题,请参考以下文章