Environment

开发环境

开发机 Ubuntu 24.04 / ROS2 Jazzy / x86_64。所有比赛内容统一在 ~/competition-ws/ 下管理。

软件栈

系统
Ubuntu 24.04
ROS
ROS2 Jazzy
架构
x86_64

工作空间结构(~/competition-ws/

competition-ws/
├── task1.md                # 任务描述
├── docs/                   # 现场发现汇总(本看板内容的来源)
├── DEV_ENV.md              # 开发环境速查
├── scripts/                # 工具脚本(含 vendor 补丁)
├── ros2_ws/                # 合并的 colcon 工作空间(7 个包,已编译)
│   └── src/  lbot_* + OrbbecSDK_ROS2
├── orbbec_env/             # Python venv(pyorbbecsdk2 2.1.1)
└── pyorbbecsdk/            # Orbbec Python SDK 源码

系统架构

开发机 · x86 · Ubuntu 24.04 · ROS2 Jazzy 树莓派 · 下位机 Gemini2 相机 RGB-D · IMU lbot_driver → /robot1/{l,r}_arm/joint_states · pose_states · move_* orbbec_camera → /camera/color · depth · depth/points 视觉 / 抓取(待开发) lbot 控制器 UDP :8888 状态/命令(握手 SERVER_ACK) :8080 调试网页(非控制) ROS2 图 + rosbridge ws :9090 · /left /right movec · 示教 · 限位 …(路径B) 机械臂 ×2 + Linkerhand O6 USB3 lbot API · RJ45(路径A) UDP 8888 · 50Hz 状态 rosbridge ws:9090(路径B) 驱动 当前数据流(路径A) rosbridge(路径B) 待开发
系统数据流:相机经 USB 接开发机本地驱动;机械臂经 lbot API(UDP 8888 / RJ45)由开发机控制(路径A); Pi 原生 ROS 图经 rosbridge:9090 提供更丰富的服务(路径B)。

网络拓扑

开发机 (x86, Ubuntu 24.04 / ROS2 Jazzy)            树莓派(下位机)
  enp4s0  192.168.10.100/24  ──── RJ45 直连 ────►  192.168.10.21
  NM 连接 "robot"(静态, never-default, 自动连接)   (lbot 控制器 + ROS2 + rosbridge)
本机有 mihomo 代理/TUN。已确认劫持 192.168.10.0/24(直连 enp4s0)。 若以后 ping 不通机器人,优先排查 mihomo

树莓派端口(实测)

端口协议用途控制链路
22TCPSSH运维
5000HTTPOTA 固件升级(Flask)无关
8000HTTP「灵心巧手机器人控制平台」网页网页控制台
8080TCP调试网页(非控制口)无关
8888UDPlbot API 状态/握手核心
9090WSrosbridge(暴露 Pi 的 ROS2 图)路径 B

两条机械臂控制路径

路径 A(当前在用)

本地 lbot_driver 经厂商闭源 lbot API(UDP 8888:发 API_CLIENT_CONNECT → 回 SERVER_ACK + 50Hz 状态)连接 Pi,转成本地 ROS 话题/服务。

命名空间 robot1,如 /robot1/left_arm/joint_states

路径 B(更丰富)

Pi 原生 ROS2 图,经 rosbridge (9090) 访问(DDS 跨不过链路)。命名空间 /left /right

多出 movec、工件坐标系、拖动示教、在线程序、手势、关节限位等。

常用启动命令

# 机械臂驱动(路径 A,本地)
ros2 launch lbot_driver lbot_start_driver.launch.py

# 相机(Gemini2,插开发机 USB3)
ros2 launch orbbec_camera gemini2.launch.py

# 验证(注意 robot1 命名空间)
ros2 topic hz /robot1/left_arm/pose_states        # 应 ~50Hz
ros2 topic hz /camera/depth/points                # 应 ~30Hz