跳到主要内容

通用案例

⚠️ 注意: 本章节收录的案例旨在提供机器人使用的参考和启发,在实际场景进行应用需要用户根据实际情况调整优化

1. H12遥控器使用开发案例

H12遥控器使用开发案例概述

该案例介绍了如何使用H12遥控器来控制机器人,涵盖了从部署到操作的各个方面。主要内容包括:

  • 部署流程:概述了如何初始化和管理遥控器控制程序。
  • 状态机概述:描述了机器人在不同控制状态下的转换和操作逻辑。
  • 遥控器配置:提供了按键和摇杆的使用指南,以及紧急停止的操作说明。

跳转案例

2. 单步控制案例(落足点规划)

单步控制案例概述

该案例介绍了如何通过ROS实现机器人的单步控制,重点在于落足点规划以控制机器人的步态。主要内容包括:

  • 示例代码:提供了用于生成和发布步态信息的代码示例。
  • 函数说明:详细描述了代码中的关键函数及其作用,包括步态消息生成、脚位置计算等。
  • 主程序逻辑:概述了如何设置和发布步态信息的整体流程。
  • 执行效果:通过视频展示了单步控制的实际效果。

跳转案例

3. 二维码检测使用案例

二维码检测使用案例概述

该案例介绍了如何使用AprilTag二维码进行检测和信息获取,主要内容包括:

二维码

  • 二维码类型:使用AprilTag类型,具体为36h11。
  • 二维码下载:提供了二维码下载网站的链接。

使用流程

  • 配置文件调整:需要在配置文件中设置要识别的二维码ID和尺寸。
  • 启动程序:通过ROS启动上位机主程序,并使用rqt工具观察识别效果。

获取检测结果

  • 结果获取:通过ROS话题获取二维码在相机坐标系和机器人基坐标系中的位姿信息。
  • 示例程序:提供了用于获取二维码信息的示例程序。

跳转案例

4. 灵巧手手势使用案例

灵巧手手势使用案例概述

该案例介绍了如何使用灵巧手进行预设手势的检测和执行,主要内容包括:

预设手势

  • 手势列表:提供了灵巧手支持的各种预设手势,包括其名称、别名和描述。例如,单指点、两指夹、握拳等手势,适用于不同的操作场景,如触动按钮、夹持物体、表示数字等。

执行与查询

  • 执行预设手势:通过特定的接口执行灵巧手的预设手势。
  • 查询手势状态:检查当前是否有预设手势正在执行。

示例代码

  • 提供了示例代码,展示如何调用接口来执行和查询手势。

跳转案例

5. 路径轨迹规划案例

路径轨迹规划案例概述

该案例介绍了如何使用MPC控制器来跟踪预设的路径轨迹,主要内容包括:

功能包

  • 名称trace_path
  • 位置:下位机代码仓库

描述

  • 轨迹类型
    • 直线:从机器人当前位置生成指定长度的直线路径。
    • 正方形:从机器人当前位置逆时针生成指定边长的正方形路径。
    • 圆形:从机器人当前位置逆时针生成指定半径的圆形路径。
    • "S"曲线:从机器人当前位置生成正弦曲线路径。

目录结构

  • 包含文档、头文件、启动文件、路径生成器、控制器和测试入口等。

参数设置

  • 公共参数:速度和时间间隔。
  • 路径特定参数
    • 直线:长度
    • 正方形:边长
    • 圆形:半径
    • "S"曲线:总长度的一半和振幅

控制器

  • MPC:可设置最大线性速度和最大角速度。

编译与启动

  • 编译:修改路径参数和控制器参数后进行编译。
  • 启动
    • 在仿真或实物环境中启动机器人程序。
    • 生成并跟踪轨迹,支持正方形、圆形和"S"曲线轨迹。

跳转案例

6. 数据采集案例

数据采集案例概述

该案例介绍了如何使用ROS的rosbag工具进行数据采集,主要内容包括:

数据采集方式

  • 工具:使用rosbag包录制机器人相关信息的话题。
  • 目标:采集相机图像、手臂位置轨迹等数据。

ROSBAG 工具使用

  • 脚本路径4功能案例/通用案例/scripts/rosbag_tool.py
  • 录制话题:通过脚本配置录制的ROS话题,涵盖了手臂轨迹、手部位置、头部运动数据,以及多种相机数据(如深度图像、RGB图像、相机内参等)。

配置文件

  • 话题配置:录制的话题列表存储在scripts/record_topics.json文件中,可以根据需求进行修改。

跳转案例

7. YOLOv8目标检测案例

YOLOv8目标检测案例概述

该案例介绍了如何使用YOLOv8模型进行箱子识别,主要内容包括:

功能包

  • 名称yolo_box_object_detection
  • 位置:上位机代码仓库
  • 用途:用于箱子识别的YOLO ROS功能包

模型路径及说明

  • 模型格式.pt
  • 模型路径:存放在指定的模型目录中
  • 测试程序:包括实时检测和图片检测的示例程序

ROS话题订阅

  • 提供多个话题用于获取识别结果和绘制结果,支持基于相机和机器人基坐标系的3D位置。

启动

  • 通过ROS命令启动箱子识别功能,支持在工作目录下执行。

跳转案例

8. 手臂逆运动学案例

手臂逆运动学案例概述

该案例介绍了如何在ROS中实现手臂的逆运动学(IK)和正运动学(FK)求解,主要内容包括:

编译与启动

  • 编译:使用catkin build命令编译motion_capture_ik节点。
  • 启动参数:支持可视化、机器人版本、控制手臂选择等多种参数配置。
  • 启动示例:提供不同配置下的启动命令示例。

ROS 接口

  • 订阅话题/ik/two_arm_hand_pose_cmd用于接收手臂IK求解请求。
  • 发布话题/ik/result发布IK求解结果,/ik/debug/time_cost输出求解耗时。
  • 服务/ik/two_arm_hand_pose_cmd_srv提供IK逆解服务,/ik/fk_srv提供FK正解服务。

使用示例

  • IK求解服务:展示如何调用IK服务并打印结果。
  • IK求解话题:展示如何通过话题使用IK功能。
  • FK求解服务:展示如何调用FK服务并打印结果。

跳转案例

9. 机器人手臂示教案例

机器人手臂示教案例概述

该案例介绍如何通过0-torque模式下手动拖动机器人手臂进行示教,支持rosbag和关键帧两种录制方式,并可重放录制动作。

描述

  • 支持0-torque拖动示教,录制关节数据
  • 支持rosbag与关键帧两种录制方式
  • 可重放录制动作,便于动作复现与调试

程序逻辑

  • 启动机器人与零点标定
  • 选择录制模式(rosbag/关键帧)
  • 录制与保存动作数据
  • 播放前需关闭其他程序并让机器人站立
  • 播放录制动作

使用说明

  • rosbag录制适合完整动作采集,关键帧适合离散动作采集
  • 播放前请确保机器人处于安全站立状态

跳转案例

10. 手臂轨迹规划案例

手臂轨迹规划案例概述

该案例介绍了如何规划人形机器人的手臂关节状态轨迹,主要内容包括:

功能包

  • 名称humanoid_plan_arm_trajectory
  • 位置<kuavo-ros-opensource>/src/demo/examples_code/hand_plan_arm_trajectory

描述

提供两种插值方法用于实现手臂关节状态轨迹规划:

  • 三次样条插值器
  • 贝塞尔曲线插值器

编译与启动

  • 编译:使用 catkin build 命令编译hand_plan_arm_trajectory功能包。
  • 参数设置:支持关节状态话题名称、角度单位和启动方式等配置
  • 启动示例:提供了两种插值方法的启动命令和示例代码

跳转案例

11. 键盘控制案例

键盘控制案例概述

该案例介绍了如何用键盘控制手臂移动或机器人运动,主要内容包括:

描述

  • 代码路径:<kuavo-ros-control>/src/kuavo_sdk/scripts/keyboard_control/robot_keyboard_control.py

程序逻辑

  1. 程序初始化

  2. 键盘输入处理

  3. 信号发布

  4. 程序退出

参数说明

  • joystick_sensitivity:灵敏度,无单位.

  • 修改路径:<kuavo-ros-control>/src/humanoid-control/humanoid_controllers/launch/joy/joy_control_sim.launch

执行

  • 启动:在仿真或实物环境中启动机器人程序.
  • 操作说明:如何使用键盘控制手臂移动或机器人运动.

跳转案例

12. 强化学习案例

强化学习案例概述

该本案例简单介绍如何使用乐聚开源的强化学习运动控制仓库kuavo-rl-opensource实现对乐聚夸父机器人的训练和部署,主要内容包括:

部署

  • H12遥控器启动及控制说明

  • 电机控制说明

    1.控制指令输出方式:

    • 信息结构各字段
    • 发布逻辑

    2.控制模式选择:可选力矩控制、位置控制等

    3.混合控制实现:可根据策略输出选择力矩或位置指令

    4.底层硬件交互:使用驱动器控制电机

  • PD控制实现分析

    1.参数配置模块

    2.RL控制器关节力矩计算

  • 程序参阅

    • 路径:<kuavo-rl-opensource>/src/humanoid-control/humanoid_controllers/src/humanoidController.cpp

训练

  • 安装

  • Training and Playing

跳转案例

13.接入deepseek大模型语音交互案例

接入deepseek大模型语音交互案例概述

该案例接入deepseek大模型,实现了一个语音交互系统,主要功能如下:

描述

  • 该案例实现了一个语音交互系统,包括录音、语音转写、对话生成和语音播放功能。

  • 代码路径:<kuavo_ros_application>/src/kuavo_large_model/kuavo_deepseek_model/rtasr_python3_demo.py

程序逻辑

  1. 导入模块及定义全局变量

  2. 定义 chat 函数, deepseek_chat 函数, Client 类。

  3. 主函数

  • 调用 chat 录音

  • 使用 Client 类将录音发送到RTASR服务。

  • 调用 deepseek_chat 进行对话并播放回复。

说明

跳转案例

14.大模型联网搜索与视觉推理案例

大模型联网搜索与视觉推理案例概述

该案例接入moonshot大模型,实现了一个语音交互系统,主要功能如下:

描述

  • 该案例实现了一个语音交互系统,包括录音、语音转写、视觉推理、联网搜索、对话生成和语音播放功能。

  • 代码路径:<kuavo_ros_application>/src/kuavo_large_model/kuavo_kimi_model/kimi_python3_demo.py

程序逻辑

  1. 导入模块及定义全局变量

  2. 定义 recorder 函数, kimi_vision_chat 函数, kimi_network_chat 函数,Client 类。

  3. 主函数

  • 初始化视频捕获对象。

  • 调用 recorder 录音。

  • 使用 Client 类将录音发送到RTASR服务。

  • 调用 kimi_network_chat 和 kimi_vision_chat 进行对话并播放回复。

说明

  • 该案例所使用的语音,文字转换模型为: https://www.xfyun.cn/

  • 该案例所使用的大模型为北京月之暗面(moonshot)推出的 moonshot-v1-8k-vision-preview 视觉模型和 moonshot-v1-128k 语言模型: https://platform.moonshot.cn/

    • 获取Kimi API Key:
      • 进入 https://platform.moonshot.cn/ ,点击用户中心
      • 充值,创建获取API Key
      • 将程序第113,159行的api-key替换成获取到的即可

跳转案例

15.二维码抓取水瓶案例

二维码抓取水瓶案例概述

机器人通过头部摄像头识别二维码,解算二维码的坐标信息,并通过ik逆解计算手臂关节角度进行抓取。

描述

  • 代码路径:<kuavo-ros-opensource>/src/demo/arm_capture_apriltag

程序逻辑

  1. 通过识别AprilTag标签,得到抓取目标在坐标系中的位置

  2. 自主判断左右手,并计算手臂末端期望位置与姿态

  3. 通过ik逆解服务,得到手臂各关节的目标角度

  4. 实现抓水、递水流程,过程流畅

跳转案例

16. VR使用开发案例

VR使用开发案例概述

VR使用开发案例概述

该案例介绍了如何使用Quest3 VR设备进行机器人控制,重点在于通过VR手柄实现对机器人手臂、灵巧手的远程操作,以及机器人的基本运动控制。主要内容包括:

  • 设备与手柄:使用Quest3作为VR设备,通过手柄实现对机器人的控制,适用于具身智能的数据采集。
  • Quest3相关使用:涵盖了设备管理、系统更新、程序启动、视频导出和空间限制的处理。
  • VR控制准备与使用:确保设备和网络准备就绪,通过VR手柄实现对机器人的多种控制模式,包括手势识别。

跳转案例

17.基于人脸识别的简易语音交互案例

基于人脸识别的简易语音交互案例概述

该案例实现了一个基于人脸识别的语音交互系统,主要功能如下:

描述

  • 实现了一个基于人脸识别的语音交互系统,包括语音识别、人脸检测和语音播报功能。
  • 当用户说出的话中包含"是谁"时,系统会进行人脸识别并播报识别结果。
  • 代码路径:<kuavo_ros_application>/src/kuavo_large_model/kuavo_re_face_model/asr_re_tts.py

程序逻辑

  1. 导入模块及定义全局变量

    • 作用:导入所需的Python标准库和第三方库并定义录音和音频处理的全局参数。
  2. Ws_Param 类

    • 作用:处理讯飞语音合成服务的参数配置。
    • 关键逻辑:
      • 初始化APPID、APIKey、APISecret等参数
      • 生成WebSocket连接所需的URL和认证信息
  3. tts_xunfei 函数

    • 作用:调用讯飞语音合成服务将文本转换为语音。
    • 关键逻辑:
      • 创建WebSocket连接
      • 发送文本数据
      • 接收并保存合成的语音文件
  4. ASRClient 类

    • 作用:实现语音识别和人脸识别的核心功能。
    • 关键逻辑:
      • 初始化语音识别和人脸检测器
      • 实现录音功能
      • 处理语音识别结果
      • 进行人脸识别和语音播报
  5. 主程序

    • 作用:主程序逻辑,循环执行语音识别和人脸识别。
    • 关键逻辑:
      • 初始化ASRClient
      • 循环执行录音和识别
      • 根据识别结果进行相应处理

说明

⚠️ 注意: 该案例使用了科大讯飞的RTASR和TTS模型,这两个模型均为收费模型,需要自行创建账号充值获取API Key并将获取到的API Key复制到程序对应地方

跳转案例

18.全身打太极动作案例

全身打太极动作案例概述

该案例介绍了如何规划人形机器人全身运动轨迹,实现全身打太极动作,主要内容包括:

描述

  • 代码路径:<kuavo-ros-opensource>/src/demo/taiji/action_player.py

程序逻辑

  1. 加载JSON动作文件。

  2. 初始化ROS节点,创建发布者和订阅者。

  3. 设置手臂为外部控制模式(通过服务调用)。

  4. 生成足部轨迹并发布到/humanoid_mpc_foot_pose_target_trajectories

  5. 等待接收到步态开始时间。

  6. 生成手臂轨迹并发布到/kuavo_arm_target_poses(时间基于步态开始时间)。

  7. 等待动作执行完成。

参数说明

  • 动作文件为JSON格式,包含两个主要部分:step_control(步态控制)和arm_motion(手臂动作)。

  • 修改路径:<kuavo-ros-opensource>/src/demo/taiji/taiji.json

执行

  • 启动:在仿真或实物环境中启动机器人程序.
  • 运行动作播放器节点.

跳转案例

拓展案例

1. 模仿学习使用案例

案例概述

描述

KUAVO人形机器人训练场(科研版) 是一款专为科研机构与高校实验室设计的综合解决方案,集成了具身智能本体 (KUAVO-4PRO & KUAVO-LB)数据采集工具链以及模型训练与部署套件。通过本方案,用户可轻松实现从数据采集到模型训练到模型部署的全链条闭环,助力人形机器人具身智能科研与应用开发。

跳转案例

数据采集

描述

数据采集是采集基于ROS录制某一时间段机器人行为生成的RosBag包,可将其视为原始数据。但提供给模型训练的数据是经过转化的数据,因此,本数据采集系统除提供最基础的数据采集功能外,还提供了数据处理功能。同时,鉴于机器人末端不同、资源存储路径存在差异等原因,本数据采集系统提供了灵活的参数配置

功能

  • 参数配置

  • 数据采集

  • 数据处理

跳转案例

数据存储

描述

通过本地数据采集平台采集的数据可以上传到云数据管理平台管理,云数据管理平台也提供数据的实时可视化。

功能

  • 本地采集的数据存储管理

  • 机器人数据可视化

跳转案例

模型训练

描述

通过数据采集、数据转化获得待训练的数据。使用lerobot框架进行模型的训练

跳转案例

模型部署

描述

将训练好的模型在实机上 进行部署

跳转案例

常见问题

描述

数据采集、数据存储、模型训练、模型部署过程中遇到的常见问题的解决

跳转案例

2. 机器人开源导航案例

机器人开源导航案例概述

基于KUAVO导航解决方案,支持自动建图、定位、自主导航、地图编辑等功能,适合开箱即用和二次开发。

系统概述

  • 系统架构
  • 功能模块

环境准备

  • 硬件要求
  • 软件要求
  • 网络要求

硬件连接

  • 机器人连接
  • 传感器连接

建图操作

  • 启动建图程序
  • 创建地图
  • 保存地图

地图编辑

  • 打开地图编辑器
  • 编辑地图
  • 保存编辑后的地图

定位导航

  • 启动导航程序
  • 设置目标点
  • 自主导航

常见问题

  • 问题1:解决方案
  • 问题2:解决方案

跳转案例

3. 手腕相机抓取放置案例

手腕相机抓取放置案例概述

  • 机器人通过手眼标定,获得末端执行器(手)和视觉传感器(眼)之间的变换关系
  • 机器人获取手眼标定的结果,分别使用手腕相机和头部相机进行物品的抓取和放置

程序逻辑

  • hand_eye_calibration功能包

    • 进行手眼标定,获取标定结果

    • 对标定结果进行评估

  • pick_and_place功能包

    • 实现基于视觉引导的物体抓取和放置

跳转案例

4. 百度EdgeBoard接入机器人案例

百度EdgeBoard接入机器人案例概述

  • 百度EdgeBoard(DK-1A)部署yolov3模型用于目标检测任务
  • 百度EdgeBoard启动ros服务器,监听请求
  • 机器上位机向百度EdgeBoard发送检测请求,并对返回结果进行语音播报

程序逻辑

  • edgeboard_service/scripts/upper_client.py

    1. 初始化机器人上位机客户端,通过语音触发, 发送请求
    2. 收到处理结果,分析结果,调用科大讯飞模型进行语音播报
  • edgeboard_service/yolov3-python/tools/edgeboard_server.py

    1. 初始化百度EdgeBoard服务端,监听请求
    2. 收到请求后,订阅图像话题,进行处理,将处理结果通过服务通信返回
    3. 上位机可以在rqt_image_view中订阅/image_view/image_raw话题,查看图像处理结果
    4. 取消订阅图像话题,恢复监听状态,等待下一次请求
    • 特点:仅在收到请求后进行一次图像处理,可以减少百度板的功耗,节省网络占用等

跳转案例