近年来,国家在人形机器人领域投入了大量资源,催生出宇树、智元和小米等企业。调研可知,当前阶段的研究重点主要包含:强化学习、人工智能算法和电驱电控技术等领域,支撑人形机器人实现跑步、爬楼梯和跳舞等动作,有效的提高了人形机器人的泛化能力,最终实现人力替代。
随着人形机器人出货量逐渐提升,使得智能运维的重要性越来越高。因此,团队花费时间进行技术探索,采用振动传感器监测人形机器人关节的运行状态,通过智能算法建立关节轴承的性能退化过程,最终结合云-边-端技术实现人形机器人的智能运维,避免突发性故障引起的安全问题。
实施方案
项目采用传感器实时采集机器人工作过程中的振动信号,后续通过智能算法实现关节故障的预警和感知,详细内容有:
振动传感器
振动传感器广泛应用在煤矿、化工、冶金、发电等行业的电机、减速机风机、发电机、空压机、离心机、水泵等旋转设备温度和振动的在线测量,具体如图3所示:
该传感器具体的参数为:
项目采用边缘网关获取振动传感器的数据,通过modbus协议,具体寄存器地址与内容的关系为:
采用边缘网关获取振动传感器信号,并通过transform_sensor_data进行数据预处理,后续配置MQTT服务器的三元组信息,将实时温度,速度和加速度数据上传到云服务器,具体代码如下所示:
# MQTT 服务器信息
broker = "ip" # MQTT 服务器地址
port = 1883 # 默认 MQTT 端口
clientid = "ClientId" # 替换为你的 clientid
username = "UserName" # 替换为你的 username
password = "05b61b97bb8fb1bb9d5433e223fea16223f9b78b;hmacsha1" # 替换为你的 password
# 上行请求 Topic
up_topic = "$thing/up/property/00x/vibration" # 替换为你的上行请求 Topic
# 下行响应 Topic
down_topic = "$thing/down/property/00x/vibration" # 替换为你的下行响应 Topic
# 构造 payload
def generate_payload():
return {
"method": "report",
"msgToken": "123",
"timestamp": int(time.time() * 1000), # 当前时间戳(毫秒)
"params": {
"tem": transform_sensor_data(sensor_vibration.read_register(registeraddress=0, functioncode=3)),
"accx": transform_sensor_data(sensor_vibration.read_register(registeraddress=10, functioncode=3)),
"accy": transform_sensor_data(sensor_vibration.read_register(registeraddress=11, functioncode=3)),
"accz": transform_sensor_data(sensor_vibration.read_register(registeraddress=12, functioncode=3)),
"vx": transform_sensor_data(sensor_vibration.read_register(registeraddress=1, functioncode=3)),
"vy": transform_sensor_data(sensor_vibration.read_register(registeraddress=2, functioncode=3)),
"vz": transform_sensor_data(sensor_vibration.read_register(registeraddress=3, functioncode=3))
}
}
在物联网平台创建产品和设备,添加对应的物模型,具体为:
"{\n \"properties\": [\n {\n \"identifier\": \"tem\",\n \"tag\": 1,\n \"name\": \"温度\",\n \"desc\": \"\",\n \"required\": false,\n \"extendConfig\": \"\",\n \"isCanSceneLinkage\": 2,\n \"isShareAuthPerm\": 0,\n \"funcGroup\": 1,\n \"controlMode\": 1,\n \"userPerm\": 0,\n \"isHistory\": 1,\n \"isPassword\": 2,\n \"order\": 0,\n \"mode\": \"rw\",\n \"define\": {\n \"type\": \"float\",\n \"min\": \"0.000\",\n \"max\": \"800.000\",\n \"start\": \"0.000\",\n \"step\": \"0.010\",\n \"unit\": \"℃\"\n },\n \"isUseShadow\": false,\n \"isNoRecord\": false\n },\n {\n \"identifier\": \"accx\",\n \"tag\": 1,\n \"name\": \"x加速度\",\n \"desc\": \"\",\n \"required\": false,\n \"extendConfig\": \"\",\n \"isCanSceneLinkage\": 1,\n \"isShareAuthPerm\": 0,\n \"funcGroup\": 1,\n \"controlMode\": 1,\n \"userPerm\": 3,\n \"isHistory\": 1,\n \"isPassword\": 2,\n \"order\": 0,\n \"mode\": \"rw\",\n \"define\": {\n \"type\": \"int\",\n \"min\": \"0\",\n \"max\": \"500\",\n \"start\": \"0\",\n \"step\": \"1\"\n },\n \"isUseShadow\": false,\n \"isNoRecord\": false\n },\n {\n \"identifier\": \"accy\",\n \"tag\": 1,\n \"name\": \"y加速度\",\n \"desc\": \"\",\n \"required\": false,\n \"extendConfig\": \"\",\n \"isCanSceneLinkage\": 1,\n \"isShareAuthPerm\": 0,\n \"funcGroup\": 1,\n \"controlMode\": 1,\n \"userPerm\": 3,\n \"isHistory\": 1,\n \"isPassword\": 2,\n \"order\": 0,\n \"mode\": \"rw\",\n \"define\": {\n \"type\": \"int\",\n \"min\": \"0\",\n \"max\": \"500\",\n \"start\": \"0\",\n \"step\": \"1\"\n },\n \"isUseShadow\": false,\n \"isNoRecord\": false\n },\n {\n \"identifier\": \"accz\",\n \"tag\": 1,\n \"name\": \"z加速度\",\n \"desc\": \"\",\n \"required\": false,\n \"extendConfig\": \"\",\n \"isCanSceneLinkage\": 1,\n \"isShareAuthPerm\": 0,\n \"funcGroup\": 1,\n \"controlMode\": 1,\n \"userPerm\": 3,\n \"isHistory\": 1,\n \"isPassword\": 2,\n \"order\": 0,\n \"mode\": \"rw\",\n \"define\": {\n \"type\": \"int\",\n \"min\": \"0\",\n \"max\": \"500\",\n \"start\": \"0\",\n \"step\": \"1\"\n },\n \"isUseShadow\": false,\n \"isNoRecord\": false\n },\n {\n \"identifier\": \"vx\",\n \"tag\": 1,\n \"name\": \"x速度\",\n \"desc\": \"\",\n \"required\": false,\n \"extendConfig\": \"\",\n \"isCanSceneLinkage\": 1,\n \"isShareAuthPerm\": 0,\n \"funcGroup\": 1,\n \"controlMode\": 1,\n \"userPerm\": 3,\n \"isHistory\": 1,\n \"isPassword\": 2,\n \"order\": 0,\n \"mode\": \"rw\",\n \"define\": {\n \"type\": \"int\",\n \"min\": \"0\",\n \"max\": \"500\",\n \"start\": \"0\",\n \"step\": \"1\"\n },\n \"isUseShadow\": false,\n \"isNoRecord\": false\n },\n {\n \"identifier\": \"vy\",\n \"tag\": 1,\n \"name\": \"y速度\",\n \"desc\": \"\",\n \"required\": false,\n \"extendConfig\": \"\",\n \"isCanSceneLinkage\": 1,\n \"isShareAuthPerm\": 0,\n \"funcGroup\": 1,\n \"controlMode\": 1,\n \"userPerm\": 3,\n \"isHistory\": 1,\n \"isPassword\": 2,\n \"order\": 0,\n \"mode\": \"rw\",\n \"define\": {\n \"type\": \"int\",\n \"min\": \"0\",\n \"max\": \"500\",\n \"start\": \"0\",\n \"step\": \"1\"\n },\n \"isUseShadow\": false,\n \"isNoRecord\": false\n },\n {\n \"identifier\": \"vz\",\n \"tag\": 1,\n \"name\": \"z速度\",\n \"desc\": \"\",\n \"required\": false,\n \"extendConfig\": \"\",\n \"isCanSceneLinkage\": 1,\n \"isShareAuthPerm\": 0,\n \"funcGroup\": 1,\n \"controlMode\": 1,\n \"userPerm\": 3,\n \"isHistory\": 1,\n \"isPassword\": 2,\n \"order\": 0,\n \"mode\": \"rw\",\n \"define\": {\n \"type\": \"int\",\n \"min\": \"0\",\n \"max\": \"500\",\n \"start\": \"0\",\n \"step\": \"1\"\n },\n \"isUseShadow\": false,\n \"isNoRecord\": false\n }\n ],\n \"profile\": {\n \"productID\": \"00x\"\n }\n}"
后续成功将数据上传到物联网平台,实现设备的振动监测,具体为:
|