欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

关于NAO机器人的ALLandMarkDetection

程序员文章站 2022-07-14 22:03:32
...

关于NAO机器人的ALLandMarkDetection

概述

参考 原文
此API主要是用来识别mark
API 通过调用NAO机器人的摄像头来识别mark
关于NAO机器人的ALLandMarkDetection

参考代码1

from naoqi import ALProxy
IP = "127.0.0.1"
PORT = 9559
markProxy = ALproxy("ALLandMarkDetection", IP, PORT)
# 订阅ALLandMarkDetection代理
period = 500
markProxy.subscribe("Test_Mark", period, 0.0 )
# 订阅

参考代码2

from naoqi import ALProxy
IP = "127.0.0.1"
PORT = 9559
memProxy = ALProxy("ALMemory", IP, PORT)
# 订阅ALLandMarkDetection代理
data = memProxy.getData("LandmarkDetected")
# 获取mark的数据
如果未检测到mark,则变量为空。更确切地说,它是一个空列表 如果检测到mark,则构建一个列表返回一个二维列表 [[TimeStampField] [Mark_info_0,Mark_info_1 ,. 。。,Mark_info_N-1]] 其中TimeStampField为时间戳就是时间线上的点,时间线就是你开始运行机器人到你机器人结束运行的这段时间。 ShapeInfo = [1,alpha,beta,sizeX,sizeY,heading]。alpha和beta表示Naomark在相对于摄像机角度方面的位置, sizeX和sizeY是摄像机角度下标记的大小 ExtraInfo = [MarkID]。标记ID是写在Naomark上的编号,与其图案相对应

MarkInfo:每个mark都有一个数组相对应。
关于NAO机器人的ALLandMarkDetection

代码实现

代码

from naoqi import ALProxy

IP = "192.168.43.10"
PORT = 9559

landmark = ALProxy("ALLandMarkDetection",IP,PORT)
memory = ALProxy("ALMemory",IP,PORT)

period = 500
event = landmark.subscribe("Test_Mark", period, 0.0)
markData = memory.getData("LandmarkDetected")
print (markData)
# 打印mark的数据

输出

[[1564999606, 813456], [[[1, -0.119369275867939, -0.22348760068416595, 0.17770451307296753, 0.17770451307296753, 11], [108]]], [0.06639236956834793, 0.0009138917084783316, 0.18207095563411713, -2.3283064365386963e-10, 0.1497575044631958, 0.01376414205878973], [0.06530139595270157, -0.0027271313592791557, 0.4126472473144531, 0.0093134306371212, 0.10614233464002609, 0.015593172051012516], 'CameraTop']

关于NAO机器人的ALLandMarkDetection