部署与网络
网络要求
设备与调用方需处于同一交换机、同一网段,本版本不支持跨网段或经公网访问。
设备 192.168.123.103/24
调用方主机 192.168.123.x/24 任选,避开设备地址
SDK 只通过 TCP 直连设备上的一个端口,该端口必须放通:
| 端口 | 用途 |
|---|---|
| 7448 | 数据订阅、录制控制与状态查询(SDK 全部能力都走它) |
数据面(位姿/点云/IMU/图像/错误码)与命令面(录制控制、状态查询)都在同一会话内提供,SDK 直连即可拿到全部数据。SDK 不使用组播或任何自动发现机制,因此交换机或防火墙拦截组播不影响使用,但上述 TCP 端口若被拦则无法连接。
Device::open() 会实际访问一次设备作为连通性探测,返回成功即代表链路已通、设备端服务已就绪。同网段实测 open() 耗时约 10 毫秒。
连通性自检
连接失败时的排查顺序:
ping 192.168.123.103 # 网线与网段
nc -z 192.168.123.103 7448 # 设备端口,SDK 唯一需要的端口
交付内容与部署
include/xg/robot_sdk.h C++ 接口(推荐,header-only)
include/xg/robot_sdk_c.h C 接口
lib/x86_64/ lib/aarch64/ 动态库(按架构分目录,已内含全部第三方依赖)
bin/x86_64/ bin/aarch64/ 预编译示例程序(按架构分目录)
examples/ 示例源码(connection/record/subscribe/relocation_map/comprehensive)
ros2/ ROS2 Bridge 源码
- 头文件、示例源码、ROS2 桥接两架构通用;仅
lib/与bin/按架构分目录,按目标机架构选用。 liblixel_sdk.so已包含全部第三方依赖,除系统库外无需额外部署。- 系统库依赖只有 glibc 与 libstdc++,常见 Linux 发行版自带。可核对:
readelf -d lib/<arch>/liblixel_sdk.so | grep NEEDED
平台与 glibc
| 架构 | 动态库目录 | 运行要求 |
|---|---|---|
| x86_64 | lib/x86_64/ | glibc ≥ 2.34 |
| aarch64 | lib/aarch64/ | glibc ≥ 2.30 |
glibc 版本不足时程序启动即失败(提示找不到 GLIBC_2.xx)。部署前确认:
ldd --version | head -1
uname -m
安全须知
本版本不含身份认证,设备控制接口对同网段完全开放——同一交换机上的任何主机都能连接设备并控制录制。
因此:
- 设备不得接入不可信网络(公共网络、访客网络、直连互联网);
- 建议设备与调用方主机使用独立交换机或专用 VLAN,与办公网隔离。
符号隔离
动态库只导出 xg_ 前缀符号,第三方依赖已静态并入并隐藏。调用方工程即便自带同名库的其他版本也不会冲突。可核对:
nm -D --defined-only lib/<arch>/liblixel_sdk.so | grep -v ' xg_'
部署前检查清单
- 目标机架构与交付包匹配(
uname -m) - glibc 版本满足要求(
ldd --version) - 设备与主机同网段直连
- 设备端口 7448 可达(
nc -z) lib/<arch>/与可执行文件相对位置正确,或已设LD_LIBRARY_PATH- 设备处于隔离网络 / 专用 VLAN