You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过FIROS将ROS系统中的传感器数据发送至CrateDB

ROS传感器数据通过FIROS写入CrateDB实现流程

前置准备

  • 先确认你的ROS环境运行正常,所有需要转发的传感器topic可以正常发布:用rostopic list确认目标topic存在,rostopic echo <topic名称>验证topic输出的数值符合预期
  • 完成FIROS安装:根据你使用的ROS版本选择对应版本的FIROS,源码编译或者二进制安装后,执行rosdep install firos补全所有依赖
  • 部署CrateDB实例:目标CrateDB实例需要开放4200(HTTP访问端口)和5432(PostgreSQL兼容端口),确保车辆端运行FIROS的设备可以正常访问这两个端口

FIROS核心配置

进入FIROS的配置目录,编辑config.json文件,完成三个核心模块的配置:

  • rosbridge模块:填写你的ROS Master的IP和端口,本地运行的话默认值为"rosbridge_url": "http://localhost:11311"
  • topics模块:列出所有需要转发的传感器topic,指定每个topic对应的ROS消息类型,比如GPS的sensor_msgs/NavSatFix、IMU的sensor_msgs/Imu,同时配置每个topic对应的FIWARE NGSI实体的实体类型和属性映射规则
  • QuantumLeap对接配置:指定FIROS输出的NGSI v2消息推送地址为QuantumLeap的服务地址,QuantumLeap作为中间件负责承接FIWARE时序数据写入CrateDB

QuantumLeap配置

修改QuantumLeap的启动环境变量:

  • CRATE_HOST设置为你的CrateDB实例的IP地址
  • CRATE_PORT默认值为4200
  • 可选配置QL_DEFAULT_DB指定存储数据的默认库名,不配置默认使用mtopeniot

自定义消息适配(可选)

如果你使用的ROS传感器消息是自定义类型,需要在FIROS的types目录下添加自定义消息的结构映射,把ROS消息字段对应到NGSI属性的对应类型,数值类字段对应Number,地理位置对应geo:json,字符串对应Text即可。

全链路启动与验证

  1. 先启动ROS核心和所有传感器发布节点
  2. 启动FIROS节点,执行rosrun firos firos
  3. 启动QuantumLeap服务
  4. 验证数据写入:进入CrateDB的Web管理界面(默认访问地址为http://<CrateDB IP>:4200,查看是否自动生成了对应NGSI实体类型的数据表,执行SQL查询SELECT * FROM "mtopeniot"."et<你的实体类型名称>"即可看到实时写入的传感器时序数据。

常见问题排查

  • 数据未写入CrateDB:先查FIROS运行日志确认是否正常订阅到传感器topic数据,再查QuantumLeap日志确认是否正常收到NGSI消息,最后验证CrateDB的访问权限和端口是否正常开放
  • 字段缺失或数值错误:检查FIROS的topics配置中的消息字段名是否和ROS消息的字段完全一致,类型映射是否正确

内容的提问来源于stack exchange,提问作者snkly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 22:51:01