关于NAO机器人的ALLandMarkDetection
程序员文章站
2022-07-14 22:03:32
...
关于NAO机器人的ALLandMarkDetection
概述
参考 原文
此API主要是用来识别mark
API 通过调用NAO机器人的摄像头来识别mark
参考代码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都有一个数组相对应。
代码实现
代码
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']