实时仿真之数据传输

背景介绍

当前具有各种传感器,能获取外界环境的状态变化;如何搭建物理传感器与虚拟模型之间的关联,能够将传感器采集的数据实时传递给仿真模型,进而实现动态更新显得极为关键。经过几年的探索,我们与合作伙伴实现了实时仿真领域的物联网平台,后续搭建在腾讯云CVM服务器,具体可以参考:
http://82.157.56.208:7777/

附:在过去很多年,尽管共享单车、共享充电宝等领域并没有取得商业上的成功,但是我一直觉得类似项目还挺有意思,实现了大规模数据的管理,给人和物搭建了数据传递的链路。

应用实例

我们以人形机器人状态感知为例,展示数据传输的实施过程。实际使用过程中,我们使用陀螺仪传感器获取机器狗的宏观状态,后续通过MQTT协议上传到物联网平台,最终转发到实时仿真网关进行可视化,具体为:

采用边缘网关获取陀螺仪传感器信号,并通过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))
        }
    }

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

在线客服
联远智维
我们将24小时内回复。
2026-01-23 22:21:30
您好,有任何疑问请与我们联系!
您的工单我们已经收到,我们将会尽快跟您联系!
[注意事项]
208300320
取消

选择聊天工具:

滚动至顶部