视觉能力
根据条件找人
发送参数
备注:需要使用底盘的功能组件,都是互斥的。比如底盘行走、导航、回冲、焦点跟随等。请不要同时使用他们,会造成错误
说明:
参数 | 类型 | 必需 | 参数说明 |
command | string | 是 | 操作指令 startPersonAppear : 根据条件找人 |
personId | number | 是 | 根据id查找,用于检测特定id的人脸,默认-1 |
personName | string | 是 | 用于检测特定名字的人脸,默认为”” |
maxDistance | number | 是 | 检测的最大距离,默认3米,超过该距离的人脸数据自动忽略 |
maxFaceAngleX | number | 是 | 检测的最大人脸角度,默认60度 |
isNeedInCompleteFace | Boolean | 是 | 是否包含不完整人脸检测,默认false |
incompleteFaceCacheTimeout | number | 是 | 不完整人脸检测缓存时间,默认3000毫秒 |
isNeedBody | Boolean | 是 | 是否检测人体,默认false |
isNeedRecognize | Boolean | 是 | 是否需要识别详细信息,默认true |
recognizeTimeout | number | 是 | 人脸识别超时时间,默认2000毫秒 |
appearTimeout | number | 是 | 检测超时时间,默认7000毫秒 |
text | Object | 是 | |
params | Object | 否 |
示例
程序示例: /** * 测试发送一个 “根据条件找人” 指令, 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" }
接受参数
说明:
参数 | 类型 | 必需 | 参数说明 |
command | string | 是 | 操作指令 personAppearAction :人员检测 |
text | Object | 是 | |
code | number | 否 | 状态码 32610001:检测成功 32610003:超时未检测到符合条件的人 -32600004: 获取人脸数据失败 |
data | string | 否 | 检测人员的详细信息 |
message | string | 否 | 内容信息说明 |
示例
数据示例: { "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": "" }
人脸自动追踪
发送参数
备注:需要使用底盘的功能组件,都是互斥的。比如底盘行走、导航、回冲、焦点跟随等。请不要同时使用他们,会造成错误
说明 :
参数 | 类型 | 必需 | 参数说明 |
command | string | 是 | 操作指令 trackFace :人脸自动追踪 stopTrackFace:停止人脸追踪 |
personId | number | 是 | 首次追踪对象,可不填写,不填的话自动检测合适人脸进行追踪 |
maxDistance | number | 是 | 人脸识别的最大距离,超过该距离的人脸数据自动忽略,默认3米 |
maxFaceAngleX | number | 是 | 识别最大人脸角度,默认60度 |
isNeedInCompleteFace | Boolean | 是 | 是否包含不完整人脸检测,默认false |
disappearTimeout | number | 是 | 人脸丢失超时时间,超过该时间持续未检测到人脸数据,组件自动退出 |
isMultiPersonNotTrack | Boolean | 是 | 在检测到多个人脸数据时,是否进行追踪,默认false |
multiPersonNotTrackDistance | number | 是 | 多人检测距离,默认2米 |
isAllowMoveBody | Boolean | 是 | 机器人是否允许转动身体 |
text | Object | 是 | track face | stop track face |
params | Object | 否 |
示例
程序示例: /** * 测试发送一个 “人脸自动追踪” 指令, 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": "" }
接受参数
说明:
参数 | 类型 | 必需 | 参数说明 |
command | string | 是 | 操作指令 facAction |
text | Object | 是 | |
code | number | 否 | 状态码 32720001:追踪成功 32720003: 单次焦点跟随结束,还会继续找人跟随 32610003:本次追踪结束 -32600004: 追踪失败 |
data | string | 否 | 人脸追踪的详细信息 |
message | string | 否 | 内容信息说明 |
示例
数据示例: { "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": "" }