Robocup3d (simspark-0.22 or later)关于线的识别和使用(定位)。

来源:互联网 发布:官网pkpm软件多少钱 编辑:程序博客网 时间:2024/05/27 06:56

      simspark-0.22以及以后的版本都会包含NAO机器人所看到的线的信息,但服务器不会告知具体为哪条线。服务器发过来的是视野内所有线的两端的位置。例如一条线的信息:(L (pol 4.65 60.06 1.50) (pol 4.65 -60.24 1.21)),pol后面的三个值依次为线的一个端点到摄像机的直线距离,端点距离视线中心在视线平面上的夹交,从及端点距离视线中心在垂直方向上的夹角,使用时需将它们转换为水平方向上的夹角的距离方可使用,详见:http://simspark.sourceforge.net/wiki/index.php/Perceptors#Vision_Perceptors

 

     中场的圆被分割成10条直线段,全场共包含21条线。

 

     具体线的识别必须信赖于所看到的四个角的标志位和两边四个球门柱。例如:视野内看到了球场四个角的中的一个角的标志位,所看到的线中就会有两条线的各一个端点和这个标志位重合,这样就可以识别出来球场的一条边线和一条底线,再求出距离这两条线的距离就可以实现自我定位。如果可以看到两个球门柱,可以用双标志定位很容易实现自我定位。如果只看到一个标志位,可以从所有的线中用余弦定理分别求出这条线的长度,然后和这条线的两个端点到这个球门柱的距离之和比较,如果线的长度和两端到球门柱距离之和相等,就可以识别出视线内的底线的一部分份。定位时我和线的两端构成一个三角形,和这条线上的球门柱构成三角形内部的一条线段,由于球门柱的坐标已知,利用上述三角形同样可以实现自我定位。

 

    利用线的信息,可以在看到任何一个标志位的情况下实现自我定位。