通用案例
- 通用案例
- 拓展案例
1. H12遥控器使用开发案例
H12遥控器使用开发案例概述
该案例介绍了如何使用H12遥控器来控制机器人,涵盖了从部署到操作的各个方面。主要内容包括:
- 部署流程:概述了如何初始化和管理遥控器控制程序。
- 状态机概述:描述了机器人在不同控制状态下的转换和操作逻辑。
- 遥控器配置:提供了按键和摇杆的使用指南,以及紧急停止的操作说明。
跳转案例
2. VR使用开发案例
VR使用开发案例概述
VR使用开发案例概述
该案例介绍了如何使用Quest3 VR设备进行机器人控制,重点在于通过VR手柄实现对机器人手臂、灵巧手的远程操作,以及机器人的基本运动控制。主要内容包括:
- 设备与手柄:使用Quest3作为VR设备,通过手柄实现对机器人的控制,适用于具身智能的数据采集。
- Quest3相关使用:涵盖了设备管理、系统更新、程序启动、视频导出和空间限制的处理。
- VR控制准备与使用:确保设备和网络准备就绪,通过VR手柄实现对机器人的多种控制模式,包括手势识别。
跳转案例
3. 单步控制案例(落足点规划)
单步控制案例概述
该案例介绍了如何通过ROS实现机器人的单步控制,重点在于落足点规划以控制机器人的步态。主要内容包括:
- 示例代码:提供了用于生成和发布步态信息的代码示例。
- 函数说明:详细描述了代码中的关键函数及其作用,包括步态消息生成、脚位置计算等。
- 主程序逻辑:概述了如何设置和发布步态信息的整体流程。
- 执行效果:通过视频展示了单步控制的实际效果。
跳转案例
4. 二维码检测使用案例
二维码检测使用案例概述
该案例介绍了如何使用AprilTag二维码进行检测和信息获取,主要内容包括:
二维码
- 二维码类型:使用AprilTag类型,具体为36h11。
- 二维码下载:提供了二维码下载网站的链接。
使用流程
- 配置文件调整:需要在配置文件中设置要识别的二维码ID和尺寸。
- 启动程序:通过ROS启动上位机主程序,并使用rqt工具观察识别效果。
获取检测结果
- 结果获取:通过ROS话题获取二维码在相机坐标系和机器人基坐标系中的位姿信息。
- 示例程序:提供了用于获取二维码信息的示例程序。
跳转案例
5. 灵巧手手势使用案例
灵巧手手势使用案例概述
该案例介绍了如何使用灵巧手进行预设手势的检测和执行,主要内容包括:
预设手势
- 手势列表:提供了灵巧手支持的各种预设手势,包括其名称、别名和描述。例如,单指点、两指夹、握拳等手势,适用于不同的操作场景,如触动按钮、夹持物体、表示数字等。
执行与查询
- 执行预设手势:通过特定的接口执行灵巧手的预设手势。
- 查询手势状态:检查当前是否有预设手势正在执行。
示例代码
- 提供了示例代码,展示如何调用接口来执行和查询手势。
跳转案例
6. 路径轨迹规划案例
路径轨迹规划案例概述
该案例介绍了如何使用MPC控制器来跟踪预设的路径轨迹,主要内容包括:
功能包
- 名称:
trace_path
- 位置:下位机代码仓库
描述
- 轨迹类型:
- 直线:从机器人当前位置生成指定长度的直线路径。
- 正方形:从机器人当前位置逆时针生成指定边长的正方形路径。
- 圆形:从机器人当前位置逆时针生成指定半径的圆形路径。
- "S"曲线:从机器人当前位置生成正弦曲线路径。
目录结构
- 包含文档、头文件、启动文件、路径生成器、控制器和测试入口等。
参数设置
- 公共参数:速度和时间间隔。
- 路径特定参数:
- 直线:长度
- 正方形:边长
- 圆形:半径
- "S"曲线:总长度的一半和振幅
控制器
- MPC:可设置最大线性速度和最大角速度。
编译与启动
- 编译:修改路径参数和控制器参数后进行编译。
- 启动:
- 在仿真或实物环境中启动机器人程序。
- 生成并跟踪轨迹,支持正方形、圆形和"S"曲线轨迹。
跳转案例
7. 数据采集案例
数据采集案例概述
该案例介绍了如何使用ROS的rosbag工具进行数据采集,主要内容包括:
数据采集方式
- 工具:使用rosbag包录制机器人相关信息的话题。
- 目标:采集相机图像、手臂位置轨迹等数据。
ROSBAG 工具使用
- 脚本路径:
4功能案例/通用案例/scripts/rosbag_tool.py
- 录制话题:通过脚本配置录制的ROS话题,涵盖了手臂轨迹、手部位置、头部运动数据,以及多种相机数据(如深度图像、RGB图像、相机内参等)。
配置文件
- 话题配置:录制的话题列表存储在
scripts/record_topics.json
文件中,可以根据需求进行修改。
跳转案例
8. YOLOv8目标检测案例
YOLOv8目标检测案例概述
该案例介绍了如何使用YOLOv8模型进行箱子识别,主要内容包括:
功能包
- 名称:
yolo_box_object_detection
- 位置:上位机代码仓库
- 用途:用于箱子识别的YOLO ROS功能包
模型路径及说明
- 模型格式:
.pt
- 模型路径:存放在指定的模型目录中
- 测试程序:包括实时检测和图片检测的示例程序
ROS话题订阅
- 提供多个话题用于获取识别结果和绘制结果,支持基于相机和机器人基坐标系的3D位置。
启动
- 通过ROS命令启动箱子识别功能,支持在工作目录下执行。
跳转案例
9. 手臂逆运动学案例
手臂逆运动学案例概述
该案例介绍了如何在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服务并打印结果。
跳转案例
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
程序逻辑
程序初始化
键盘输入处理
信号发布
程序退出
参数说明
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-control>/src/kuavo_sdk/scripts/keyboard_control/robot_keyboard_control.py
程序逻辑
导入模块及定义全局变量
定义 chat 函数, deepseek_chat 函数, Client 类。
主函数
调用 chat 录音
使用 Client 类将录音发送到RTASR服务。
调用 deepseek_chat 进行对话并播放回复。
说明
该案例所使用的语音,文字转换模型为: https://www.xfyun.cn/
该案例所使用的对话大模型为深度求索(deepseek)推出的deepseek-chat: https://www.deepseek.com/
- 获取DeepSeek API Key:
- https://platform.deepseek.com/usage
- 充值,获取API Key
- 将程序第101行的api-key替换成获取到的即可
- 获取DeepSeek API Key:
跳转案例
14.二维码抓取水瓶案例
二维码抓取水瓶案例概述
机器人通过头部摄像头识别二维码,解算二维码的坐标信息,并通过ik逆解计算手臂关节角度进行抓取。
描述
- 代码路径:
<kuavo-ros-opensource>/src/demo/arm_capture_apriltag
程序逻辑
通过识别AprilTag标签,得到抓取目标在坐标系中的位置
自主判断左右手,并计算手臂末端期望位置与姿态
通过ik逆解服务,得到手臂各关节的目标角度
实现抓水、递水流程,过程流畅
跳转案例
15. 动作语音快速上手案例
动作语音快速上手案例概述
该案例介绍了如何快速配置乐聚机器人的动作和语音文件,支持多种机器人型号。
机器人配置工具
- 支持型号:4代标准、4pro短手、4pro长手
- 功能:自动匹配动作文件和语音文件,并将它们复制到上位机或下位机的相应目录中
- 文件命名规范:动作文件和语音文件需按特定格式命名,以便系统自动匹配
配置指南
- 准备工作:添加执行权限、运行配置脚本
- H12遥控器自启动:包括下位机和上位机的部署步骤
- 配置文件说明:介绍了自定义动作和对应语音文件的配置方法
注意事项
- 支持的动作数量:最多支持8个自定义动作
- 语音格式:支持mp3、wav格式
- 文件放置:语音文件和动作文件需放在指定目录中
跳转案例
拓展案例
1. 机器人导航案例
机器人导航案例概述
该案例介绍了如何使用Kuavo上位机进行机器人导航,涵盖从程序编译到导航功能的完整流程,导航功能需额外选配,主要内容包括:
程序编译
- 获取代码:通过Git克隆导航程序代码库。
- 导航功能包编译:使用
catkin_make
编译导航功能包。 - 添加source环境变量:配置环境变量以便于程序运行。
GUI界面使用
- 程序启动:启动导航和GUI程序。
- GUI界面简介:介绍导航GUI界面的布局和功能模块。
- 地图管理模块:提供建图、地图切换和删除等功能。
- 任务管理模块:管理任务执行和显示当前任务状态。
建图与导航
- 建图步骤:通过GUI和RVIZ进行地图创建和保存。
- 路径与路径点设置:编辑路径和路径点以定义机器人可行驶区域。
- 任务点设置:设置任务点以便机器人执行特定任务。
导航接口说明
- 地图功能:管理和显示地图信息。
- 定位功能:初始化和显示机器人定位状态。
- 路径编辑:编辑节点和道路属性。
- 任务点编辑和测试:编辑和管理任务点。
- 导航功能:输出规划路径和控制指令。