5.6 开发者模式

智元机器人X2 AimDK开发者模式 - 通过停用智元本身系统软件的能力,给用户让渡更多系统控制权限

开发者可以通过开启特定的开发者模式,停用智元原生软件,方便开发者进行自己的软件部署,接管部分系统能力。该模块遵循ROS2标准,支持C++和Python两种编程语言,为开发者提供统一的切换接口。

模式

取值

说明

使用场景

默认状态

Ready

机器人启动的默认状态

开发者完成自身的业务开发后,如果想要恢复启用原本的功能,需要重启,或者将机器人切换回该模式

交互开发模式(Linux)

Develop_Audio_Linux

停用智元hal_audio节点

解除对系统音频设备的占用,开发者可以自行打开/dev节点,处理原生音频流

交互开发模式(ROS)

Develop_Audio_ROS

停用智元agent节点

开发者可以通过订阅ros topic的方式获得原声音频流,进行交互开发

自主开发模式

Develop_Nav

停用智元全部的自主能力,包括:导航、建图、规划、感知

开发者可以自行开发机器人的导航、建图、规划、感知功能

运控开发模式

Develop_MC

停用智元原生运动控制

开发者可以直接给ethercat模块发送数据进行机器人全身控制

**注意: 完成开发后,务必将机器切换回Ready 状态,或者整机重启,确保脱离开发者模式。

5.6.1 查询系统状态

服务名称

数据类型

描述

/aimdk_5Fmsgs/srv/GetSystemState

aimdk_msgs/srv/GetSystemState

查询系统模式

  • GetSystemState ros2-srv @ sm/srv/GetSystemState.srv

    # 查询系统状态
    # 服务名称: /aimdk_5Fmsgs/srv/GetSystemState
    
      # 请求头
      CommonRequest header
      
      # ---------------------------------------------------- req
      ---
      # ---------------------------------------------------
      
      # ---------------------------------------------------- resp
      # 响应头
      CommonResponse header
      
      # -----------------------------------------------------
      # 当前系统状态名
      string cur_state
      
      # ----------------------------------------------------
      # 系统当前情况
      SystemStatus curr_status
    
    • SystemStatus ros2-msg @ sm/msg/SystemStatus.msg

          uint8 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 进入开发者模式

服务名称

数据类型

描述

/aimdk_5Fmsgs/srv/MigrateSystemState

aimdk_msgs/srv/MigrateSystemState

进入开发者模式

  • MigrateSystemState ros2-srv @ sm/srv/MigrateSystemState.srv

    # 进入开发者模式
    # 服务名称: /aimdk_5Fmsgs/srv/MigrateSystemState
    
      # ----------------------------------------------------
      # 请求头
      CommonRequest header
      
      #----------------------------------------------------
      # 请求切换的系统状态
      string state
      
      # ---------------------------------------------------- req
      ---
      # ---------------------------------------------------
      
      # ---------------------------------------------------- resp
      # 响应头
      CommonResponse header
    

5.6.3 编程示例

详细的编程示例和代码说明请参考:

5.6.4 安全注意事项

警告

  • 请勿使用本节未提及的系统模式

  • 模式切换需要确保机器人处于安全状态

  • 完成开发后务必切换回Ready或者进行整机重启