跳到内容 跳到主导航 跳到页脚

视觉能力

根据条件找人

发送参数

备注:需要使用底盘的功能组件,都是互斥的。比如底盘行走、导航、回冲、焦点跟随等。请不要同时使用他们,会造成错误

        说明:

参数类型必需参数说明
commandstring操作指令       
startPersonAppear : 根据条件找人
personIdnumber根据id查找,用于检测特定id的人脸,默认-1
personNamestring用于检测特定名字的人脸,默认为””
maxDistancenumber检测的最大距离,默认3米,超过该距离的人脸数据自动忽略
maxFaceAngleXnumber检测的最大人脸角度,默认60度
isNeedInCompleteFaceBoolean是否包含不完整人脸检测,默认false
incompleteFaceCacheTimeoutnumber不完整人脸检测缓存时间,默认3000毫秒
isNeedBodyBoolean是否检测人体,默认false
isNeedRecognizeBoolean是否需要识别详细信息,默认true
recognizeTimeoutnumber人脸识别超时时间,默认2000毫秒
appearTimeoutnumber检测超时时间,默认7000毫秒
textObject  
paramsObject 

示例

程序示例:
        /**
        * 测试发送一个 “根据条件找人” 指令, opk demo 中收到播放指令,会将指令通过 MRobotMessenger 再回传回来
        */
        JSONObject json = new JSONObject();
        json.put("command", "startPersonAppear");
        json.put("personId", -1);
        json.put("personName", "");
        json.put("maxDistance", 3);
        json.put("maxFaceAngleX", 60);
        json.put("isNeedInCompleteFace", false);
        json.put("incompleteFaceCacheTimeout", 3000);
        json.put("isNeedBody", false);
        json.put("isNeedRecognize", true);
        json.put("recognizeTimeout", 2000);
        json.put("appearTimeout", 7000);
        json.put("text", "Enable personnel detection");
        map.put("params", "");
        RobotMessengerManager.INSTANCE.triggerCommand(json.toString());

数据示例:                    
{
	"command": "startPersonAppear",
	"personId": -1,
	"personName": "",
	"maxDistance": 3,
	"maxFaceAngleX": 60,
	"isNeedInCompleteFace": false,
	"incompleteFaceCacheTimeout": 3000,
	"isNeedBody": false,
	"isNeedRecognize": true,
	"recognizeTimeout": 2000,
	"appearTimeout": 7000,
	"text": "Enable personnel detection"
}

接受参数

        说明:

参数类型必需参数说明
commandstring操作指令       
personAppearAction :人员检测
textObject 
codenumber状态码
32610001:检测成功
32610003:超时未检测到符合条件的人
-32600004: 获取人脸数据失败
datastring检测人员的详细信息
messagestring内容信息说明

示例

数据示例:
{
	"command": "personAppearAction",
	"text": "person appear action",
	"code": 32610001,
	"data": "\"{\\\"age\\\":0,\\\"angle\\\":0,\\\"angleInView\\\":0.0,\\\"avatar_url\\\":\\\"\\\",\\\"bodyX\\\":0,\\\"bodyY\\\":0,\\\"bodyheight\\\":0,\\\"bodywidth\\\":0,\\\"distance\\\":0.0,\\\"faceAngleX\\\":0.0,\\\"faceAngleY\\\":0.0,\\\"faceRegisterTime\\\":\\\"\\\",\\\"faceX\\\":0,\\\"faceY\\\":0,\\\"faceheight\\\":0,\\\"facewidth\\\":0,\\\"fake_face\\\":false,\\\"gender\\\":\\\"\\\",\\\"glasses\\\":0,\\\"headSpeed\\\":0,\\\"id\\\":0,\\\"isNewUser\\\":false,\\\"isStaff\\\":false,\\\"latency\\\":0,\\\"mWelcomeActions\\\":[{\\\"action\\\":\\\"play_tts\\\",\\\"isConfirm\\\":0,\\\"recommend\\\":\\\"\\\",\\\"value\\\":\\\" 嗨,,很开心为你服务\\\"}],\\\"mouthmove_score\\\":0.0,\\\"mouthstate\\\":0,\\\"name\\\":\\\"\\\",\\\"other_face\\\":false,\\\"quality\\\":\\\"\\\",\\\"remoteFaceId\\\":\\\"\\\",\\\"remoteReqId\\\":\\\"8fb71ee049ff8dc50190da2540e1cdc4\\\",\\\"remoteWakeupId\\\":\\\"\\\",\\\"role\\\":\\\"stranger\\\",\\\"role_id\\\":11,\\\"staff_dept\\\":\\\"\\\",\\\"staff_job\\\":\\\"\\\",\\\"staff_mobile\\\":\\\"\\\",\\\"timestamp\\\":1678784679674,\\\"ukfBodyOmega\\\":0.0,\\\"ukfBodyVel\\\":0.0,\\\"userId\\\":\\\"\\\",\\\"with_body\\\":false,\\\"with_face\\\":false}\"",
	"messaage": ""
}

人脸自动追踪

发送参数

备注:需要使用底盘的功能组件,都是互斥的。比如底盘行走、导航、回冲、焦点跟随等。请不要同时使用他们,会造成错误

        说明 :

参数类型必需参数说明
commandstring操作指令       
trackFace :人脸自动追踪
stopTrackFace:停止人脸追踪
personIdnumber首次追踪对象,可不填写,不填的话自动检测合适人脸进行追踪
maxDistancenumber人脸识别的最大距离,超过该距离的人脸数据自动忽略,默认3米
maxFaceAngleXnumber识别最大人脸角度,默认60度
isNeedInCompleteFaceBoolean是否包含不完整人脸检测,默认false
disappearTimeoutnumber人脸丢失超时时间,超过该时间持续未检测到人脸数据,组件自动退出
isMultiPersonNotTrackBoolean在检测到多个人脸数据时,是否进行追踪,默认false
multiPersonNotTrackDistancenumber多人检测距离,默认2米
isAllowMoveBodyBoolean机器人是否允许转动身体
textObjecttrack face | stop track face
paramsObject 

示例

程序示例:
        /**
        * 测试发送一个 “人脸自动追踪” 指令, opk demo 中收到播放指令,会将指令通过 MRobotMessenger 再回传回来
        */
        JSONObject json = new JSONObject();
        json.put("command", "trackFace");
        json.put("personId", -1);
        json.put("maxDistance", 3);
        json.put("maxFaceAngleX", 60);
        json.put("isNeedInCompleteFace", false);
        json.put("disappearTimeout", 7000);
        json.put("isMultiPersonNotTrack", false);
        json.put("multiPersonNotTrackDistance", 2);
        json.put("isAllowMoveBody", true);
        json.put("text", "track face");
        RobotMessengerManager.INSTANCE.triggerCommand(json.toString());
数据示例:
{
	"command": "trackFace",
	"personId": -1,
	"maxDistance": 3,
	"maxFaceAngleX": 60,
	"isNeedInCompleteFace": false,
	"disappearTimeout": 7000,
	"isMultiPersonNotTrack": false,
	"multiPersonNotTrackDistance": 2,
	"isAllowMoveBody": true,
	"text": "track face",
	"params": ""
}

接受参数

        说明:

参数类型必需参数说明
commandstring操作指令       
facAction
textObject 
codenumber状态码
32720001:追踪成功
32720003: 单次焦点跟随结束,还会继续找人跟随
32610003:本次追踪结束
-32600004: 追踪失败
datastring人脸追踪的详细信息
messagestring内容信息说明

示例

数据示例:
{
	"command": "facAction",
	"text": "face action",
	"code": 32720001,
	"data": "\"{\\\"age\\\":-1,\\\"angle\\\":-3,\\\"angleInView\\\":-3.4066946506500244,\\\"bodyX\\\":245,\\\"bodyY\\\":134,\\\"bodyheight\\\":581,\\\"bodywidth\\\":700,\\\"distance\\\":0.1574193239212036,\\\"faceAngleX\\\":-10.669756889343262,\\\"faceAngleY\\\":-13.33719539642334,\\\"faceX\\\":456,\\\"faceY\\\":218,\\\"faceheight\\\":263,\\\"facewidth\\\":279,\\\"fake_face\\\":false,\\\"gender\\\":\\\"-1\\\",\\\"glasses\\\":0,\\\"headSpeed\\\":0,\\\"id\\\":0,\\\"isNewUser\\\":false,\\\"isStaff\\\":false,\\\"latency\\\":37,\\\"mouthmove_score\\\":0.0,\\\"mouthstate\\\":0,\\\"name\\\":\\\"\\\",\\\"other_face\\\":false,\\\"role_id\\\":0,\\\"timestamp\\\":1683700668166,\\\"ukfBodyOmega\\\":0.0,\\\"ukfBodyVel\\\":0.0,\\\"with_body\\\":true,\\\"with_face\\\":true}\"",
	"messaage": ""
}

这篇文章是否有帮助?

0