5.6 开发者模式
智元机器人X2 AimDK开发者模式 - 通过停用智元本身系统软件的能力,给用户让渡更多系统控制权限
开发者可以通过开启特定的开发者模式,停用智元原生软件,方便开发者进行自己的软件部署,接管部分系统能力。该模块遵循ROS2标准,支持C++和Python两种编程语言,为开发者提供统一的切换接口。
模式 |
取值 |
说明 |
使用场景 |
|---|---|---|---|
默认状态 |
|
机器人启动的默认状态 |
开发者完成自身的业务开发后,如果想要恢复启用原本的功能,需要重启,或者将机器人切换回该模式 |
交互开发模式(Linux) |
|
停用智元 |
解除对系统音频设备的占用,开发者可以自行打开 |
交互开发模式(ROS) |
|
停用智元 |
开发者可以通过订阅ros topic的方式获得原声音频流,进行交互开发 |
自主开发模式 |
|
停用智元全部的自主能力,包括:导航、建图、规划、感知 |
开发者可以自行开发机器人的导航、建图、规划、感知功能 |
运控开发模式 |
|
停用智元原生运动控制 |
开发者可以直接给 |
**注意: 完成开发后,务必将机器切换回Ready 状态,或者整机重启,确保脱离开发者模式。
5.6.1 查询系统状态
服务名称 |
数据类型 |
描述 |
|---|---|---|
|
|
查询系统模式 |
GetSystemStateros2-srv @ sm/srv/GetSystemState.srv# 查询系统状态 # 服务名称: /aimdk_5Fmsgs/srv/GetSystemState # 请求头 CommonRequest header # ---------------------------------------------------- req --- # --------------------------------------------------- # ---------------------------------------------------- resp # 响应头 CommonResponse header # ----------------------------------------------------- # 当前系统状态名 string cur_state # ---------------------------------------------------- # 系统当前情况 SystemStatus curr_status
SystemStatusros2-msg @ sm/msg/SystemStatus.msguint8 value uint8 IN_INITIAL = 0 # 起始态 uint8 IN_READY = 1 # 就绪态,可执行业务 uint8 IN_MOVE = 2 # 迁移态,不可执行业务,拒绝迁移请求 uint8 IN_ROLLBACK = 3 # 回滚态,不可执行业务,拒绝迁移请求 uint8 IN_FALLBACK = 4 # 异常态,接收迁移请求 uint8 IN_FALLBACK_MOVE = 5 # 异常迁移态,不可执行业务,拒绝迁移请求
5.6.2 进入开发者模式
服务名称 |
数据类型 |
描述 |
|---|---|---|
|
|
进入开发者模式 |
MigrateSystemStateros2-srv @ sm/srv/MigrateSystemState.srv# 进入开发者模式 # 服务名称: /aimdk_5Fmsgs/srv/MigrateSystemState # ---------------------------------------------------- # 请求头 CommonRequest header #---------------------------------------------------- # 请求切换的系统状态 string state # ---------------------------------------------------- req --- # --------------------------------------------------- # ---------------------------------------------------- resp # 响应头 CommonResponse header
5.6.3 编程示例
详细的编程示例和代码说明请参考:
5.6.4 安全注意事项
警告
请勿使用本节未提及的系统模式
模式切换需要确保机器人处于安全状态
完成开发后务必切换回
Ready或者进行整机重启