跳到主要内容

KUAVO 软件出厂文档

Banner Kuavo

概述​

文档用于描述 KUAVO 出厂时软件部分需要完成的工作。

型号支持​

型号支持情况
KUAVO 4.0支持
KUAVO 4.2 pro支持

硬件检查清单​

    1. NUC 镜像烧录完成
    1. 电机安装完成
    1. 末端执行器安装完成
    1. IMU 传感器安装完成
    1. H12PRO 遥控器对频完成(可选)
    1. QUEST 3 设备已经安装了 KUAVO_HAND_TRACK APP

详细操作步骤​

IMU 配置​

  1. 使用显示器连接 NUC 后,打开 MT manager 配置 IMU 传感器
cd ~/mtmanager/linux-x64/bin
sudo ./mtmanager
  1. 扫描 IMU 设备,如下图

scan_devices

  1. 配置 IMU,加速度为2000Hz,角速度为1600Hz,四元数为400Hz,如下图

imu_configure1

  1. 配置波特率为2M,如下图

imu_configure2

  1. 点击Apply

配置PIP CONFIG​

新建终端

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip config set global.trusted-host pypi.tuna.tsinghua.edu.cn
pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn

机器人程序准备​

  1. 拉取代码 新建终端
cd ~
git clone --depth=1 https://gitee.com/leju-robot/kuavo-ros-opensource.git --branch dev
cd kuavo-ros-opensource
git reset --hard 5698976c89af62e884eac8ad76ad6d38473a2060 #切到指定提交 2024-11-29

新建终端

cd ~ 
sudo rm -rf kuavo_opensource && git clone https://gitee.com/leju-robot/kuavo_opensource.git --branch master --depth=1
  1. 确认机器人版本号

新建终端

例如机器人版本号为 4.2pro

echo 'export ROBOT_VERSION=42' >> ~/.bashrc # 设置机器人版本号
sudo su
echo 'export ROBOT_VERSION=42' >> ~/.bashrc # 设置机器人版本号到root用户
  1. 设置机器人重量(如果机器人重量有修改,需要重新执行一次)

新建终端,分别两次复制执行

rm -rf ~/.config/lejuconfig/TotalMassV${ROBOT_VERSION} # 删除旧的重量文件
read -p "请输入机器人重量(kg): " robot_mass # 询问用户输入重量
echo $robot_mass > ~/.config/lejuconfig/TotalMassV${ROBOT_VERSION}  # 设置新的重量
echo "已将机器人重量设置为 ${robot_mass}kg"
  1. 设置机器人驱动板类型
  • 使用 VSCODE 连接机器人
  • 打开文件 ~/.config/lejuconfig/EcMasterType.ini (如果文件不存在,则新建)
  • 如果类型为 elmo,则设置为 elmo,如果类型为优达,则设置为 youda
  1. 编译 新建终端
cd ~/kuavo-ros-opensource
sudo su
catkin config -DCMAKE_ASM_COMPILER=/usr/bin/as -DCMAKE_BUILD_TYPE=Release
source installed/setup.bash
catkin build humanoid_controllers

配置手臂电机配置文件​

修改 ~/.config/lejuconfig/config.yaml 文件中的 negtive_address 参数,如下所示

negtive_address:
- [0x0D, 0x02, 0x04, 0x08, 0x0A, 0x0B, 0x09]

配置灵巧手​

新建终端

cd ~/kuavo_opensource/tools/check_tool
python3 Hardware_tool.py

输入 b 加回车 配置灵巧手 usb udev 规则

输入 c 加回车 测试灵巧手(如果没反应,需要重启 NUC 使得 udev 规则生效)

电机运动方向确认​

⚠️ 所有电机运动均符合右手定则(右手握住参考物体,大拇指指向参考轴正方向,四指弯曲的方向表示旋转或环绕方向。)

0秒开始时腿部电机正向运动示意

31秒开始手臂电机正向运动示意

58秒开始头部电机正向运动示意

kuaov关节正方向运动说明

检测手臂电机运动方向​

新建终端

cd ~/kuavo_opensource/tools/check_tool
python3 Hardware_tool.py

输入 e 加回车,瑞沃电机辨识方向

然后输入 1 到 14 选择手臂电机,观察电机运动方向是否符合kuaov_关节正方向运动, 如果符合,则输入 no 加回车, 如果不符合,则输入 yes 加回车

零点校准​

  1. 请将工装插入机器人腿部, 如下图所示

cali_leg1

cali_leg2

  1. 请将机器人手臂摆好,如下图所示

cali_arm

  1. 启动机器人校准程序 新建终端
cd ~/kuavo-ros-opensource
sudo su
source devel/setup.bash
roslaunch humanoid_controllers load_kuavo_real.launch cali:=true cali_leg:=true cali_arm:=true

如果只需要校准手臂,则使用以下命令 新建终端

cd ~/kuavo-ros-opensource
sudo su
source devel/setup.bash
roslaunch humanoid_controllers load_kuavo_real.launch cali:=true cali_arm:=true
  1. 在使能完腿部电机后(打印出如下图的位置之后), 零点校准之前电机运动可能会超出限位(如果没超出限位, 则按 c 加回车,保存腿部当前位置作为零点)
0000003041: Slave 1 actual position 9.6946716,Encoder 63535.0000000
0000003051: Rated current 39.6000000
0000003061: Slave 2 actual position 3.9207458,Encoder 14275.0000000
0000003071: Rated current 11.7900000
0000003081: Slave 3 actual position 12.5216674,Encoder 45590.0000000
0000003091: Rated current 42.4300000
0000003101: Slave 4 actual position -37.2605896,Encoder -244191.0000000
0000003111: Rated current 42.4300000
0000003121: Slave 5 actual position 15.8138275,Encoder 207275.0000000
0000003131: Rated current 8.4900000
0000003142: Slave 6 actual position -2.7354431,Encoder -35854.0000000
0000003151: Rated current 8.4900000
0000003161: Slave 7 actual position 5.8642578,Encoder 38432.0000000
0000003171: Rated current 39.6000000
0000003183: Slave 8 actual position -16.8491821,Encoder -61346.0000000
0000003192: Rated current 11.7900000
0000003201: Slave 9 actual position -18.9975585,Encoder -69168.0000000
0000003211: Rated current 42.4300000
0000003221: Slave 10 actual position -64.5283508,Encoder -422893.0000000
0000003231: Rated current 42.4300000
0000003241: Slave 11 actual position -31.0607147,Encoder -407119.0000000
0000003251: Rated current 8.4900000
0000003261: Slave 12 actual position 49.7427368,Encoder 651988.0000000
0000003272: Rated current 8.4900000
0000003281: Slave 13 actual position 26.8544311,Encoder 97774.0000000
0000003291: Rated current 14.9900000
0000003301: Slave 14 actual position -19.9171142,Encoder -72516.0000000
0000003311: Rated current 14.9900000
  1. 将所有的 Slave xx actual position 后的数字值记录到 ~/.config/lejuconfig/offset.csv 文件中

⚠️ 注意:

  • 如果机器人行走偏左,增大 offset.csv 文件中 1 号的值,每次修改幅度为0.5
  • 如果机器人行走偏右,减少 offset.csv 文件中 7 号的值,每次修改幅度为0.5
  • 如果机器人行走重心很低,请重新确认机器人质量后,重新执行设置机器人质量步骤

行走测试​

  1. 启动机器人程序 新建终端
cd ~/kuavo-ros-opensource
sudo su
source devel/setup.bash
roslaunch humanoid_controllers load_kuavo_real.launch

joy_controller

步态切换(字母键) | 按键 | 功能 | | ---- | ---- | | A | 站立模式 (STANCE) | | Y | 行走模式 (WALK) |

运动控制(摇杆)

  • 左摇杆:控制移动方向
    • 上下:前进/后退
    • 左右:平移
  • 右摇杆:
    • 左右:原地转向
    • 上下:调整机器人高度

功能按键

  • START:从悬挂状态切换到站立状态
  • BACK:安全退出程序

H12PRO 遥控器程序准备(如果需要)​

请确认 H12PRO 遥控器已经对频完成

  1. 安装 H12PRO 遥控器程序

新建终端

cd ~/kuavo-ros-opensource/src/humanoid-control/h12pro_controller_node/scripts
sudo su
./deploy_autostart.sh

执行中最后会提示三个问题, 分别是:

  • 是否开启开机自启动 h12pro 遥控器控制机器人程序
  • 是否开启 h12pro 遥控器控制机器人程序
  • 是否重启机器人 NUC 使得配置生效

根据需求选择 y 或 n。

  1. 检查遥控器数据

新建终端

cd ~/kuavo-ros-opensource
source devel/setup.bash
rostopic echo /h12pro_channel

拨动摇杆或者按下按键,查看数据有变化

⚠️ 此步需要启动 h12pro 遥控器控制机器人程序

  1. 开关 H12PRO 遥控器

开启服务:

sudo systemctl start ocs2_h12pro_monitor.service

关闭服务:

sudo systemctl stop ocs2_h12pro_monitor.service

开机自启动:

sudo systemctl enable ocs2_h12pro_monitor.service

关闭开机自启动:

sudo systemctl disable ocs2_h12pro_monitor.service

查看服务日志:

sudo journalctl -u ocs2_h12pro_monitor.service -f
  1. 测试 H12PRO 遥控器

基本使用:

操作按键说明
开机E左 + F右 + C

注意:D 按键不再支持在 initial 状态触发手臂校准。如需校准手臂,请使用命令行 --cali_arm 参数。

缩腿到站立:

操作按键说明
缩腿到站立E左 + F右 + C

站立阶段:

操作按键说明
原地踏步E中 + F中 + A
回到站立E中 + F中 + D

左摇杆:

操作按键说明
垂直方向X轴移动
水平方向Y轴移动

右摇杆:

操作按键说明
垂直方向躯干高度控制
水平方向旋转控制

结束程序:长按 C + D(假如在站立状态下触发停止,机器人会先下蹲再停止)

北通手柄按键映射修改方式​

鲲鹏20 M1 和 M2 的默认映射为 A 和 B,需要对映射进行修改。

新按键映射:M1->LS M2->RS

北通游戏厅官网: https://www.betop-cn.com/support

进入北通游戏厅----外设助手----按键----拓展按键----选择拓展按键,进行按键映射修改。

bt_map

VR 遥操作测试​

请确保 QUEST 3 设备与机器人在同一个局域网下,并且已经安装了 KUAVO_HAND_TRACK APP

  1. 安装依赖(只需执行一次) 新建终端
cd ~/kuavo-ros-opensource
pip3 install -r src/manipulation_nodes/noitom_hi5_hand_udp_python/requirements.txt
sudo su
pip3 install -r src/manipulation_nodes/noitom_hi5_hand_udp_python/requirements.txt
  1. 启动程序

新建终端

cd ~/kuavo-ros-opensource
sudo su
source devel/setup.bash
roslaunch humanoid_controllers load_kuavo_real_with_vr.launch

⚠️ 启动注意事项:

  • 等待机器人腿部缩起
  • 将机器人放至离地 2cm 处
  • 需一人扶住机器人背部
  • 等待 10 秒让程序完全启动
  1. 打开 QUEST 3 中的 KUAVO_HAND_TRACK 应用

  2. 用户位置标定:

    • 站立,双手握住手柄,放在双腿两侧(模仿机器人站立姿态)
    • 长按右手柄 meta 按钮,等待圆圈转完
  3. 机器人站立

    • 如果机器人双腿已经缩起
    • 长按右手柄 A 键约 0.35 秒,(需用力扶住机器人背部)
  4. 控制方式

基础控制:

  • 右手柄 A 键:站立状态
  • 右手柄 B 键:返回行走状态(原地踏步)
  • 机器人头部:自动跟随您的头部运动
  • 扳机控制手指开合,Y键用于锁定或解锁手指控制

移动控制:

  • 左摇杆:前后移动、左右平移
  • 右摇杆:调整高度、左右转向

手臂控制:

  • 长按双手柄扳机:进入手臂外部控制
  • 移动手柄即可控制机器人手臂运动
  • 左 X + 右 A:切换自动摆手/手臂外部控制
  • 左 X + 右 B:保持当前姿态

结束控制:

  • 同时按下双手柄 XY 键(建议先使用右手柄降低机器人高度后结束)

导出机器人 LOG​

  1. 导出终端日志
  • 使用 VSCODE 连接机器人
  • 连接后打开文件夹 ~/.ros/stdout, 如下图 stdout
  • 选择对应的日期目录,下载日志,如下图 download_stdout
  1. 导出 ROSBAG 日志
  • 使用 VSCODE 连接机器人
  • 连接后打开文件夹 ~/.ros, 如下图 ros_logs
  • 选择对应的日期 ROSBAG 文件,下载日志(文件结尾以 .bag 或者 .bag.active 结尾),如下图 download_ros_logs