跳到主要内容

AIUI 配置 FAQ

目录

一、添加个性化应答

二、添加客制案例

三、配置文件生效

四、可能遇到的问题和排查解决方法

添加个性化应答

  • 配置文件路径

    • /home/lemon/robot_ros_application/catkin_ws/src/ros_AIUI_node/config/VoiceControlConfig.json
  • 配置文件基本格式

    • 严格遵照 json 的格式进行修改
    • 配置文件基本格式
  • 代码调用配置的逻辑:

    • 技能名字:

      • 技能的标识, 和其他技能区分即可, 无固定格式
    • key_words:

      • 技能触发的关键词,可以在列表中填入多个
      • 当识别出的语句精确匹配该关键字,则会触发 FAQ 中关键字的内容
      • 如关键词是 "往左走",那么说出往左走可以控制机器人往左;
    • relpy:

      • 当识别出关键字,会根据 "reply" 中的应答回复
    • cmd_type:

      • 技能类型
      • "execute_func" 表示执行函数
      • "run_node" 代表执行案例
      • "stop_node" 代表停止案例
    • execute_func:

      • 当cmd_type为"execute_func"时才需要定义
      • 运行函数的名称,函数定义位于/home/lemon/robot_ros_application/catkin_ws/src/ros_AIUI_node/scripts/execute_funcs.py
    • path:

      • 当cmd_type为"run_node"时才需要定义
      • 案例执行的路径,可以在桌面软件自定义动作,下载到机器人里,下载的路径一般在 /home/lemon/robot_ros_application/catkin_ws/src/ros_actions_node/scripts/ 下,将文件路径添加到此项

添加客制案例

  • 当配置文件中技能的cmd_type为"run_node"时为执行案例, 如执行举手案例的配置:

    • 配置文件基本格式
    • 可以通过“举手”或者“举起你的手”触发举手案例。
  • 生成案例方法

    • 用 Roban 软件编辑动作下载到机器人中
  • Roban 软件动作设计步骤:

    • 新建工程文件,应该以每一个动作新建独立的工程文件,下载到机器人内会在指定目录生成以工程文件命名的 python 文件
      • 新建工程文件
    • 选择插入帧的位置,右键添加关键帧,选择全身即可
      • 插入关键帧
    • 点击软件界面右侧机器人模型,选择需要控制的机器人关节部位,选择需要控制的舵机,拖动时间轴或输入码盘数值,机器人相应位置舵机会发生转动
    • 再点击确认按钮,当前这一帧的动作便会插入到动作帧位置。需要注意的是,动作帧时间轴单位 1f = 10ms
      • 插入关键帧
    • 按同样的步骤,在开始帧和结束帧之间插入多个关键帧
    • 点击 "生成模块",会将动作帧内容以模块化形式进行封装
      • 生成自定义动作
    • 将生成的动作模块,放在开始程序内,点击 "下载"
      • 下载动作
  • 文件将被下载到 /home/lemon/robot_ros_application/catkin_ws/src/ros_actions_node/scripts/ 下,以工程文件命名的 python 文件

生效方式

  • 配置文件在程序运行时读取,所以修改配置文件后需要重新运行该程序

  • 重新运行:

    • 方式一:
      • 重新开机
    • 方式二:
      • 用 vscode 、mobaXterm 等远程软件 或 将机器人连接显示器,打开一个新的终端,运行以下命令:
        $ sudo killall roslaunch # 如需输入密码,输入 softdev
        $ cd & ./start.sh

可能遇到的问题和排查解决方法

  • 报错 ValueError: <string>:** Unexpected ** at column *

    • 通常是修改配置文件时格式出错,多余或者缺少标点符号,可以根据 Unexpected 前的数字代表行号,到配置文件中查看该行或该行的上下相邻几行是否有标点或字符的错误
  • 重新运行后唤醒无反应或运行异常

    • 如果是采用第二种生效方式,建议重新开机再试
    • 如果是采用第一种生效方式,需要连接显示器,查看 start.sh 的终端,启动的时候是否有报错,将报错信息反馈给工程师