SuperAPI AI 工具集

ros2-web-integration

编程与开发

查看项目

更新于 10-15 19:57

技能介绍

用途:把运行 ROS2 的机器人接入 Web 技术,构建浏览器端的监控与控制界面,包括 REST API、WebSocket 桥接和网页机器人界面。

主要能力与模式:

  1. rosbridge_suite:安装命令 sudo apt install ros-${ROS_DISTRO}-rosbridge-suite,启动 ros2 launch rosbridge_server rosbridge_websocket_launch.xml(默认端口 9090,可配 port、ssl、certfile、keyfile、authenticate)。前端用 roslibjs 连接 WebSocket,订阅话题(如 /camera/image/compressed)、调用服务、发布 /cmd_vel 遥控指令。适合快速原型、foxglove/webviz 等工具。限制:JSON 序列化开销大(二进制 base64 后约增大 30%)、默认暴露全部话题与服务、单线程 Tornado 事件循环、无内置限流、鉴权仅 rosauth,不适合生产。
  2. 自定义 FastAPI 桥接:项目含 ros_node.py、web_app.py、main.py、auth.py、rate_limiter.py 等。ROS2 节点用 MultiThreadedExecutor 在后台线程 spin,uvicorn 在主线程运行,通过信号协调关闭(生产环境不要用 reload)。提供 WebSocket 相机流(支持 max_fps 限流)、REST 端点(状态查询、cmd_vel、参数读写、急停服务调用),可加 JWT/OAuth2、CORS、令牌桶限流,只暴露指定话题,适合生产 API 与高性能流。
  3. Flask 桥接:适合简单内部工具与遗留系统,同步、受 GIL 限制,吞吐较低。

适用场景:网页仪表盘监控/控制机器人、相机流(MJPEG、WebRTC、压缩 WebSocket)、把服务与动作暴露为 REST、浏览器摇杆发布 cmd_vel、参数配置页与诊断面板。

限制:资料未提供具体性能基准之外的部署细节、收费信息或平台支持范围;自定义桥接需自行管理两个事件循环与线程安全。