重要安全须知
本章节介绍了安装和使用 OmniHand 专业款 灵巧手时必须遵守的安全要求,OmniHand 专业款 灵巧手是一款半成品机械,因此,在首次使用之前,必须仔细阅读本说明书,全面了解相关安全功能及潜在危险。相关人员在每次安装 OmniHand 专业款 灵巧手之前,必须进行风险评估,并在使用过程中严格遵守本说明书中所有说明和指导信息。
1.1 使用注意事项
严禁将 OmniHand 专业款 灵巧手置于高温、高湿的环境中。
请勿让 OmniHand 专业款 灵巧手承受过大的负载和冲击。
严禁在指尖施加过大的力。
严禁用力拉扯 OmniHand 专业款 灵巧手手指。
严禁将 OmniHand 专业款 灵巧手靠近火源。
严禁将 OmniHand 专业款 灵巧手置于易燃、易爆环境中。
严禁在强电磁场环境中使用,如高压电线附近、大功率机器附近等。
严禁用 OmniHand 专业款 灵巧手去抓取过重、过热、尖锐、表面粗糙、有腐蚀性的物体。
在没有保护的情况下,严禁让 OmniHand 专业款 灵巧手接触液体(酒、水、饮料等)和沙尘,如不慎接触,请立即关闭,并联系售后维修人员。
严禁私自拆解 OmniHand 专业款 灵巧手,否则将导致《售后服务承诺书》中保修相关条款失效。发生任何故障,请及时联系售后维修人员。
严禁用 OmniHand 专业款 灵巧手操作危险机械。由于此类行为导致的人身伤害及财产损失,我司不承担任何责任。
1.2 风险评估
潜在危害清单
机械危害:因接触 OmniHand 专业款 灵巧手或其夹持的尖锐物体而导致压伤、擦伤等。
电气危害:因接触带电零件而导致电烧伤或触电。
高温危害:因长时间接触 OmniHand 专业款 灵巧手的高温表面而导致皮肤烧伤等。
噪音危害:无。
振动危害:无。
辐射危害:无。
材料/物质危害:无。
人体工程学危害:无。
环境危害:无。
1.3 售后服务承诺书
OmniHand 专业款 灵巧手具有 6 个月有限保修期。若在投入使用后,出现因制造或材料不良所致的缺陷,公司提供必要的备用部件予以更换或维修。若设备缺陷是由处理不当或未遵循用户指南中所述的相关信息或私自拆卸产品所致,则本产品质量保证即告失效。在不违背本产品质量保证的原则下,若产品已经超出保修期,公司保留向客户收取更换或维修费用的权利。
在保修期外,如果设备呈现缺陷,公司不承担由此引起的任何损害或损失,包括但不仅限于生产损失或对其他生产设备造成的损坏。
1.4 免责声明
公司致力于不断提高产品可靠性和性能,并因此保留升级产品的权利,恕不另行通知。公司力求确保本手册内容的准确性和可靠性,但不对其中的任何错误或遗漏信息负责。以下情况导致的故障不在本保修范围内:
1)未按用户手册要求安装、接线、连接其他控制设备;
2)未经允许,私自拆装灵巧手;
3)使用时超出用户手册所示规格或标准;
4)由于运输不当导致的产品损坏;
5)事故或碰撞导致的损坏;
6)火灾、地震、海啸、雷击、大风和洪水等自然灾害。
本公司对于因客户违反本章节内的免责声明而造成的任何损失或伤害不承担任何责任。请客户在购买和使用本产品前,仔细阅读并同意本免责声明。
产品简介
2.1 产品概述
OmniHand 专业款 2025 是一款高集成度全能作业灵巧手,强感知,更有料。行业内最全面的高自由度商用灵巧手,兼具尺寸小、重量轻、高负载、高精度、开合快、多维触觉等特性, 强化「作业智能」属性。
| ![]() |
2.2 主要特性
拟人尺寸:19 自由度,仅重 820g,同配置灵巧手中最小、最轻、最拟人
全能作业:优化构型设计,轻松操作专业工具,单手指尖最大 20N 出力
超强感知:多模态感知(位置、法向力、切向力),最高 0.1N 级灵敏度,搭配智能算法
2.3 产品参数
Omnihand Pro 2025(专业款) | ||
本体参数 | 重量 | ≤820g |
尺寸 | 207*98*56mm | |
主动自由度 | 12 | |
总自由度 | 19 | |
最小开合时间(典型值) | 0.7s | |
指尖重复定位精度(典型值) | 0.4mm | |
负载能力 | 五指抓握力 ≥10kg | |
工作电压 | 8.3-35.6V | |
通讯接口 | CAN-FD | |
工作温度范围 | -20~50℃ | |
在线升级 | 支持 OTA 在线升级 | |
触觉传感器 | 力感知类型 | 指尖三维力 |
阵列分辨率 | 0.1N | |
感知范围 | 0~50N | |
最大接受力(不损坏) | 1000N | |
[1] 以上参数,在不同业务场景、不同型号参数配置等情况,在应用中有所差异,请以实际为准。
[2] 产品外观后续可能会有升级调整,请以届时实物为准。
2.4 关节角度范围
左手 | 右手 | ||||
手指 | 关节名称 | 最小值 (度) | 最大值 (度) | 最小值 (度) | 最大值 (度) |
大拇指 | thumb_roll_joint | 0 | 42 | -42 | 0 |
thumb_abad_joint | -54 | 0 | 0 | 54 | |
thumb_mcp_joint | -49 | 0 | -49 | 0 | |
thumb_pip_joint | -74 | 0 | -74 | 0 | |
thumb_dip_joint | NA / 耦合关节,耦合关系参考SDK | ||||
食指 | index_abad_joint | -15 | 15 | -15 | 15 |
index_mcp_joint | 0 | 76 | 0 | 76 | |
index_pip_joint | 0 | 85 | 0 | 85 | |
index_dip_joint | NA / 耦合关节,耦合关系参考SDK | ||||
中指 | middle_abad_joint | -15 | 15 | -15 | 15 |
middle_mcp_joint | 0 | 76 | 0 | 76 | |
middle_pip_joint | 0 | 98 | 0 | 98 | |
middle_dip_joint | NA / 耦合关节,耦合关系参考SDK | ||||
无名指 | ring_mcp_joint | 0 | 79 | 0 | 79 |
ring_pip_joint | NA / 耦合关节,耦合关系参考SDK | ||||
ring_dip_joint | NA / 耦合关节,耦合关系参考SDK | ||||
小指 | pinky_mcp_joint | 0 | 79 | 0 | 79 |
pinky_pip_joint | NA / 耦合关节,耦合关系参考SDK | ||||
pinky_dip_joint | NA / 耦合关节,耦合关系参考SDK | ||||
| ![]() | ![]() |
2.5 产品尺寸

产品安装说明
3.1 装箱清单
OmniHand 专业款 2025 × 1
USB 转 CAN-FD 通讯线 × 1
USB 转 CAN-FD 转接盒子
电源适配器 × 1
产品合格证 × 1
3.2 机械接口

3.3 安装说明
安装之前 需要自行准备4颗 M4*8 圆柱头螺钉 以及相应的内六角扳手
连接通讯线束(注意线束卡扣方向)
将机械臂末端法兰插入灵巧手的底部接口中, 然后用 4 颗 M4 的螺钉锁紧,建议锁紧扭矩M:1.1Nm<M<1.5Nm;灵巧手适配其他机器人本体的情况,请查看机械接口图示,设计转接法兰
锁紧螺钉建议涂螺纹胶
3.4 电气和通讯接口
工作电压电流:典型值24V,2A。峰值电流≤3.5A@24V(<30s)。
电压输入范围:12~28V,最大耐受电压45V(<1s),欠压(8V)过压(35V)保护关闭,关闭电流小于1mA。
电压报警设置:可配置欠压过压报警阈值,报警不动作。
通信接口:CANFD,有120欧姆终端电阻。
电源端子型号:插座:BM06B-ZESS-TBT,插头:ZER-06V-S。
端子信号顺序:1、2--24V;3--CANH;4--CANL;5、6--GND。
| ![]() |
3.5 整手不支持热插拔
整手在带电状态下,不支持电源及信号线热插拔功能,请使用者规范使用;如若未按要求进行热插拔出现故障,客户承担相应责任。
通讯协议说明
4.1 通讯接口
OmniHand Pro 2025 支持基于 CAN-FD 的二次开发, 开发文档请查阅 https://github.com/AgibotTech/OmniHand-Pro-2025
CAN-FD 接口,默认 1Mbps 80% + 5Mbps 80% 扩展标识符 (29bit) 数据帧格式。禁用标准标识符和远程帧格式;
控制命令采用一问一答的机制,部分状态信息可配为主动上报,应答超时时间 50ms;
发送标识符和应答标识符相同,返回读写数据;
扩展帧定义:
Bit0 ~ Bit6:设备ID;Bit7:读写标志位,0表示读寄存器操作,1表示写寄存器操作;Bit8 ~ Bit14:产品ID;Bit15:保留;Bit16 ~ Bit23:寄存器地址;Bit24 ~ Bit28:子寄存器地址;设备ID定义:
广播地址:
0x00;默认地址:
0x01;设备地址:
0x01 ~ 0x7F;产品ID定义:
根据产品定义,固定且不可修改;
数据定义:小端格式;
Byte3 | |||||||
|---|---|---|---|---|---|---|---|
bit31 | bit30 | bit29 | bit28 | bit27 | bit26 | bit25 | bit24 |
x | x | x | 子寄存器地址: | ||||
Byte2 | |||||||
bit23 | bit22 | bit21 | bit20 | bit19 | bit18 | bit17 | bit16 |
寄存器地址: | |||||||
Byte1 | |||||||
bit15 | bit14 | bit13 | bit12 | bit11 | bit10 | bit9 | bit8 |
保留 | 产品ID: | ||||||
Byte0 | |||||||
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
R/W | 设备ID: | ||||||
4.2 寄存器地址及其子地址定义
读寄存器将读写标志位
Bit7置0,写寄存器将读写标志位Bit7置1;配置信息寄存器写入会自动保存,重启之后生效;
读寄存器发送的长度不做限制,数据不做限制,默认数据长度为
0,不发送数据内容;写寄存器必须符合寄存器长度,数据必须合法,否则不会应答;
受限于子寄存器长度,最大支持一次性配置自由度为 32 自由度;
4.3 通用寄存器定义
编号 | 寄存器地址 | 寄存器名称 | 子寄存器 | 子寄存器名称 | 寄存器内容 | 寄存器长度 | 读写权限 |
|---|---|---|---|---|---|---|---|
Pn1 |
| 厂家信息 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 48Byte | 只读 |
| 产品型号 | ASCII字符串,剩余的长度补 示例: | 16Byte | 只读 | |||
| 产品序列号 | ASCII字符串,固定长度;
| 14Byte | 只读 | |||
| 硬件版本信息 | 硬件版本信息;
| 4Byte | 只读 | |||
| 软件版本信息 | 软件版本信息;
| 4Byte | 只读 | |||
| 供电电压 | 32位无符号整型数据;默认值 有效值 | 2Byte | 只读 | |||
| 主动自由度 | 示例: | 1Byte | 只读 | |||
Pn2 |
| 设备信息 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 5Byte | 读写 |
| 设备ID | 默认设备ID: 设备ID地址: | 1Byte | 读写 | |||
Pn3 |
| 电流阈值 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 读写 |
| #1关节电机电流阈值 | 16位无符号整型数据;默认值: 2Byte表示一个关节电机;有效值 | 2Byte | 读写 | |||
| #2关节电机电流阈值 | 2Byte | 读写 | ||||
... | ... ... | ... | 读写 | ||||
Pn4 |
| 温度阈值 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 读写 |
| #1关节电机回温启动阈值 | 回温启动阈值 - 8位无符号整型数据;默认值 1Byte表示一个关节电机;有效值【50, 过温保护阈值 - 5】 过温保护阈值 - 8位无符号整型数据;默认值 1Byte表示一个关节电机;有效值【回温启动阈值 + 5, 80】 | 2Byte | 读写 | |||
#1关节电机过温保护阈值 | |||||||
| #2关节电机回温启动阈值 | 2Byte | 读写 | ||||
#2关节电机过温保护阈值 | |||||||
... | ... ... | ... ... | ... | ||||
... ... | |||||||
Pn5 |
| 触觉传感器 |
| 大拇指指尖传感器 | 小端
法向力:垂直于手指表面的力 切向力:水平于手指表面的力 切向力角度:指尖位置为向上0°,顺时针旋转,范围:0°~359°。 | 48byte | 预留 |
| 食指指尖传感器 | ||||||
| 中指传感器 | ||||||
| 无名指指尖传感器 | ||||||
| 小拇指指尖传感器 | ||||||
... | ... | ... ... | ... ... | ||||
Pn15 |
| 预留 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 预留 |
Pn16 |
| 控制模式 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 读写 |
| #1关节电机控制模式 | 8位无符号整型数据;根据产品形态定义针对控制模式进行对应的扩展,默认值0; 低3bit有效 0 - 位置模式; 1 - 速度模式; | 1Byte | 读写 | |||
| #2关节电机控制模式 | 1Byte | 读写 | ||||
... | ... ... | ... ... | ... | ||||
Pn19 |
| 位置控制 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 读写 |
| #1关节电机目标位置 | 16位有符号整型数据;默认值 2Byte表示一个关节电机;有效值根据产品进行定义; 写寄存器,设置目标位置,返回当前的实际位置; 读寄存器,获取当前的实际位置; | 2Byte | 读写 | |||
| #2关节电机目标位置 | 2Byte | 读写 | ||||
... | ... ... | ... ... | ... | ||||
Pn23 |
| 预留 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 预留 |
... | ... | ... | ... | ... | ... ... | ... ... | ... |
Pn31 |
| 预留 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 预留 |
Pn32 |
| 错误上报 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 只读 |
| #1关节电机错误信息 | 在发生错误时主动上报当前电机的错误信息;16位无符号整型数据;错误信息定义如下:
对该寄存器写 | 2Byte | 读写 | |||
| #2关节电机错误信息 | 2Byte | 读写 | ||||
... | ... ... | ... ... | ... | ||||
Pn33 |
| 温度上报 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 只读 |
| #1关节电机温度信息 | 写该寄存器配置主动上报周期时间,单位:ms; 16位无符号整型数据;默认值: 示例:以1Hz频率主动上报关节温度,下发: 读该寄存器主动获取当前温度信息,单位:℃; 16位有符号整型数据; 示例:当前关节温度为50℃,上报:
| 2Byte | 读写 | |||
| #2关节电机温度信息 | 2Byte | 读写 | ||||
... | ... ... | ... ... | ... | ||||
Pn34 |
| 电流上报 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 只读 |
| #1关节电机温度信息 | 写该寄存器配置主动上报周期时间,单位:ms; 16位无符号整型数据;默认值: 示例:以1Hz频率主动上报关节电流,下发: 读该寄存器主动获取当前电流,单位:mA; 16位有符号整型数据; 示例:当前关节电流为1500mA,上报:
| 2Byte | 读写 | |||
| #2关节电机温度信息 | 2Byte | 读写 | ||||
... | ... ... | ... ... | ... | ||||
Pn35 |
| 预留 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 预留 |
... | ... | ... | ... | ... | ... ... | ... | ... |
Pn47 |
| 预留 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 预留 |
4.4 厂家配置寄存器定义
不同的产品特殊配置参数,如传感器校准标定,手指关节 SN 等等信息;
编号 | 寄存器地址 | 寄存器名称 | 子寄存器 | 子寄存器名称 | 寄存器内容 | 寄存器长度 | 读写权限 |
|---|---|---|---|---|---|---|---|
Pn48 |
| 预留 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 预留 |
... | ... | ... | ... | ... | ... ... | ... | ... |
Pn127 |
| 预留 |
| 子寄存器操作 | 读写该寄存器下所有的子寄存器; | 单个子寄存长度×主动自由度 | 预留 |
4.5 固件升级寄存器(预留)
Host: 上位机
Device:灵巧手
Byte | Byte | ||||||||||||||
bit31 | bit30 | bit29 | bit28 | bit27 | bit26 | bit25 | bit24 | bit23 | bit22 | bit21 | bit20 | bit19 | bit18 | bit17 | bit16 |
x | x | x | R/W | 子寄存器地址: | 寄存器地址: | ||||||||||
Byte | Byte | ||||||||||||||
bit15 | bit14 | bit13 | bit12 | bit11 | bit10 | bit9 | bit8 | bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
保留 | 产品ID: | 保留 | 设备ID: | ||||||||||||
参数编号 | 读写标志位 | 寄存器地址 | 寄存器名称 | 子寄存器 | 子寄存器名称 | 寄存器内容 | 寄存器长度 | 数据流 |
|---|---|---|---|---|---|---|---|---|
Pn1 | 1 |
| OTA数据包 |
| 数据包 | 数据包内容 | 64Byte | Host -> Device |
Pn2 | 1 |
| OTA相关请求命令 |
| N/C | 不响应 | ||
| OTA升级请求 |
注:固件长度需要发送2K对齐的固件长度;
| 16Byte | Host -> Device | ||||
| OTA数据传输请求 |
注:数据包长度默认2K,不足2K的分包使用 | 4Byte | Host -> Device | ||||
| OTA完成请求 | 无符号32位整型数据;预留默认为 | 4Byte | Host -> Device | ||||
| OTA重启请求 | 无符号32位整型数据;延迟x时间后重启, | 4Byte | Host -> Device | ||||
| OTA结果请求 | 无符号32位整型数据;预留默认为 | 4Byte | Host -> Device | ||||
| OTA退出请求 | 无符号32位整型数据; | 4Byte | Host -> Device | ||||
Pn3 | 0 |
| OTA相关应答命令 |
| N/C | 不响应 | ||
| OTA升级应答 | 无符号32位整型数据;
| 4Byte | Device -> Host | ||||
| OTA数据传输应答 | 无符号32位整型数据;
| 4Byte | Device -> Host | ||||
| OTA完成应答 | 无符号32位整型数据;
| 4Byte | Device -> Host | ||||
| OTA重启应答 | 无符号32位整型数据;
| 4Byte | Device -> Host | ||||
| OTA结果应答 | 无符号32位整型数据;
| 4Byte | Device -> Host | ||||
| OTA退出应答 | 无符号32位整型数据;
| 4Byte | Device -> Host |
升级流程

固件数据包CRC16校验示例
class ModbusCRC16 {
public:
static uint16_t Calculate(const std::vector<uint8_t> &buffer) {
uint16_t crc = 0xFFFF;
for (auto data : buffer) {
crc = (crc >> 8) ^ CRC_TABLE[(crc ^ data) & 0xFF];
}
return crc;
}
private:
static constexpr uint16_t CRC_TABLE[256] = {
0x0000, 0xC0C1, 0xC181, 0x0140, 0xC301, 0x03C0, 0x0280, 0xC241,
0xC601, 0x06C0, 0x0780, 0xC741, 0x0500, 0xC5C1, 0xC481, 0x0440,
0xCC01, 0x0CC0, 0x0D80, 0xCD41, 0x0F00, 0xCFC1, 0xCE81, 0x0E40,
0x0A00, 0xCAC1, 0xCB81, 0x0B40, 0xC901, 0x09C0, 0x0880, 0xC841,
0xD801, 0x18C0, 0x1980, 0xD941, 0x1B00, 0xDBC1, 0xDA81, 0x1A40,
0x1E00, 0xDEC1, 0xDF81, 0x1F40, 0xDD01, 0x1DC0, 0x1C80, 0xDC41,
0x1400, 0xD4C1, 0xD581, 0x1540, 0xD701, 0x17C0, 0x1680, 0xD641,
0xD201, 0x12C0, 0x1380, 0xD341, 0x1100, 0xD1C1, 0xD081, 0x1040,
0xF001, 0x30C0, 0x3180, 0xF141, 0x3300, 0xF3C1, 0xF281, 0x3240,
0x3600, 0xF6C1, 0xF781, 0x3740, 0xF501, 0x35C0, 0x3480, 0xF441,
0x3C00, 0xFCC1, 0xFD81, 0x3D40, 0xFF01, 0x3FC0, 0x3E80, 0xFE41,
0xFA01, 0x3AC0, 0x3B80, 0xFB41, 0x3900, 0xF9C1, 0xF881, 0x3840,
0x2800, 0xE8C1, 0xE981, 0x2940, 0xEB01, 0x2BC0, 0x2A80, 0xEA41,
0xEE01, 0x2EC0, 0x2F80, 0xEF41, 0x2D00, 0xEDC1, 0xEC81, 0x2C40,
0xE401, 0x24C0, 0x2580, 0xE541, 0x2700, 0xE7C1, 0xE681, 0x2640,
0x2200, 0xE2C1, 0xE381, 0x2340, 0xE101, 0x21C0, 0x2080, 0xE041,
0xA001, 0x60C0, 0x6180, 0xA141, 0x6300, 0xA3C1, 0xA281, 0x6240,
0x6600, 0xA6C1, 0xA781, 0x6740, 0xA501, 0x65C0, 0x6480, 0xA441,
0x6C00, 0xACC1, 0xAD81, 0x6D40, 0xAF01, 0x6FC0, 0x6E80, 0xAE41,
0xAA01, 0x6AC0, 0x6B80, 0xAB41, 0x6900, 0xA9C1, 0xA881, 0x6840,
0x7800, 0xB8C1, 0xB981, 0x7940, 0xBB01, 0x7BC0, 0x7A80, 0xBA41,
0xBE01, 0x7EC0, 0x7F80, 0xBF41, 0x7D00, 0xBDC1, 0xBC81, 0x7C40,
0xB401, 0x74C0, 0x7580, 0xB541, 0x7700, 0xB7C1, 0xB681, 0x7640,
0x7200, 0xB2C1, 0xB381, 0x7340, 0xB101, 0x71C0, 0x7080, 0xB041,
0x5000, 0x90C1, 0x9181, 0x5140, 0x9301, 0x53C0, 0x5280, 0x9241,
0x9601, 0x56C0, 0x5780, 0x9741, 0x5500, 0x95C1, 0x9481, 0x5440,
0x9C01, 0x5CC0, 0x5D80, 0x9D41, 0x5F00, 0x9FC1, 0x9E81, 0x5E40,
0x5A00, 0x9AC1, 0x9B81, 0x5B40, 0x9901, 0x59C0, 0x5880, 0x9841,
0x8801, 0x48C0, 0x4980, 0x8941, 0x4B00, 0x8BC1, 0x8A81, 0x4A40,
0x4E00, 0x8EC1, 0x8F81, 0x4F40, 0x8D01, 0x4DC0, 0x4C80, 0x8C41,
0x4400, 0x84C1, 0x8581, 0x4540, 0x8701, 0x47C0, 0x4680, 0x8641,
0x8201, 0x42C0, 0x4380, 0x8341, 0x4100, 0x81C1, 0x8081, 0x4040
};
};4.6 通用控制示例
混合控制示例1:
灵巧手设备 ID 为 0x01,12个自由度,控制模式为位置力控模式,一次性可以下发 12 个关节的目标信息;
请求的每一个关节的bag组成为:关节ID + 控制模式 + 目标位置 + 目标力距共 5Byte;
应答的每一个关节的bag组成为:关节ID + 控制模式 + 实际位置 + 实际力距共 5Byte;
请求当前所有的关节控制模式为位置力控模式,目标位置为
1000,目标力距为1000;应答当前所有的关节控制模式为位置力控模式,实际位置为
500,实际力距为500;
CANFD ID | Length | Data(HEX) | |
|---|---|---|---|
请求 |
| 64Byte(60Byte有效) |
|
应答 |
| 64Byte(60Byte有效) |
|
混合控制示例2:
灵巧手设备ID为 0x01,12个自由度,控制模式为速度力控模式,一次性可以下发 12 个关节的目标信息;
请求的每一个关节的 bag 组成为:关节ID + 控制模式 + 目标速度 + 目标力距共 5Byte;
应答的每一个关节的 bag 组成为:关节ID + 控制模式 + 实际速度 + 实际力距共 5Byte;
请求当前所有的关节控制模式为速度力控模式,目标速度
1000,目标力距1000;应答当前所有的关节控制模式为速度力控模式,实际速度
1000,实际力距500;
CANFD ID | Length | Data | |
|---|---|---|---|
请求 |
| 64Byte(60Byte有效) |
|
应答 |
| 64Byte(60Byte有效) |
|
混合控制示例3:
灵巧手设备ID为 0x01,12个自由度,控制模式为位置速度力控模式,最多一次性可以下发 8 个关节的目标信息;
请求的每一个关节的 bag 组成为:关节ID + 控制模式 + 目标位置 + 目标速度 + 目标力距共 7Byte;
应答的每一个关节的 bag 组成为:关节ID + 控制模式 + 实际位置 + 实际速度 + 实际力距共 7Byte;
请求当前所有的关节控制模式为位置速度力控模式,目标位置
1000,目标速度1000,目标力距1000;应答当前所有的关节控制模式为位置速度力控模式,实际位置
500,实际速度1000,实际力距500;
CANFD ID | Length | Data | |
|---|---|---|---|
请求 |
| 64Byte(56Byte有效) |
|
应答 |
| 64Byte(56Byte有效) |
|
手势控制动作编排示例:
灵巧手设备ID为0x01,12自由度,设定用户自定义手势1的动作为所有的关节都运动到 1000 位置;
CANFD ID | Length | Data(HEX) | |
|---|---|---|---|
请求 |
| 24Byte |
|
应答 |
| 24Byte |
|
手势控制动作执行示例:
灵巧手设备ID为 0x01,12自由度,执行用户自定义手势1预设动作;
CANFD ID | Length | Data(HEX) | |
|---|---|---|---|
请求 |
| 0Byte | |
应答 |
| 24Byte |
|
循环控制序列编排示例 :
灵巧手设备ID为 0x01,设定用户自定义手势序列为执行数字1->延迟1s->执行数字2->延迟1s->执行数字3->延迟1s;
CANFD ID | Length | Data(HEX) | |
|---|---|---|---|
请求 |
| 6Byte |
|
应答 |
| 6Byte |
|
循环控制序列执行示例:
灵巧手设备ID为 0x01,执行用户自定义手势序列;
CANFD ID | Length | Data(HEX) | |
|---|---|---|---|
请求 |
| 0Byte | |
应答 |
| 6Byte |
|
灵巧手设备ID为 0x01,设定用户自定义手势序列为 执行数字1->延迟1s->执行数字2->延迟1s->执行数字3->延迟1s;
CANFD ID | Length | Data(HEX) | |
|---|---|---|---|
请求 |
| 6Byte |
|
应答 |
| 6Byte |
|
循环控制序列执行示例:
灵巧手设备ID为 0x01,执行用户自定义手势序列;
CANFD ID | Length | Data(HEX) | |
|---|---|---|---|
请求 |
| 0Byte | |
应答 |
| 6Byte |
|
上位机使用说明
5.1 上位机连接
所需电脑系统为 Windows 10 及以上

点击连接按钮,连接状态栏显示初始化 CAN设备成功。

点击断开连接,连接状态栏显示关闭 CAN设备成功。
5.2 上位机滑动条控制
关节控制

连接灵巧手后,可以通过滑动条控制对应关节。
单电机控制

勾选单电机模式,可以改成单控个别电机。
5.3 表格控制
关节控制


表格的每一列对应一个关节,将一行的第一个到第十二个单元格填写上数值,则构成一个完整的手部动作。数值可填写区间为 0~2000 。第十三个单元格和第十四个单元格显示的是动作运行的开始和结束时间,第十五个单元格用于设置延时时间,不填写情况下默认1000毫秒。
鼠标左键选中要填写的单元格,点击鼠标右键,在出现的菜单中,选择获取当前位置值,即可将该列对应的关节滑动条显示的当前位置值输入到该单元格中。点击运行编辑动作按钮,即可执行选中行的动作。

勾选序列运动,点击运行编辑动作按钮,可以执行第一行到最后一行的所有动作。
勾选循环,并在次数输入栏输入大于0 的数字,点击运行编辑动作按钮,可以按输入次数,循环执行第一行到最后一行的所有动作。
单电机控制

勾选单电机模式,表格切换到对应的电机标题。
首先勾选要控制电机的勾选框,比如 1号电机。在表格对应的1号电机列输入要控制的 0~2000 的位置值,选中要运动的位置行,点击运行编辑动作按钮,对应电机运动到输入目标位置。比如鼠标左键选择第一行,点击运行编辑动作按钮,一号电机运行到 2000 位置。

序列运动,循环同表格关节控制。
动作记录

点击保存动作按钮,可以将表格里的位置数据保存到 .txt 文件里。
点击读取动作按钮,可以将保存的动作文件在表格里显示并运行。
紧急停止

循环过程中,可以点击紧急停止按钮停止循环。恢复初始位置按钮会让手张开,故障复位会发送故障复位命令,并解除紧急停止的停止锁。
5.4 预设动作

点击运行手势按钮,可以运行预设的某一个手势。
勾选循环,输入次数,点击运行手势按钮,会循环所有预设手势。点击停止按钮可以停止循环。
5.5 标零

勾选左下角的开始标定,鼠标右键点击获取标定目标位置和实际位置,在输入标定值行输入对应电机的标定值,并勾选对应的电机勾选框。
点击张开标零,设置张开零点。
点击握拳标零,设置握拳零点。
5.6 信息读取和故障上报

点击 读取机械手信息,可以在厂家信息栏和设备信息栏显示具体信息。
motor1显示栏 至 motor12显示栏 用于显示上位机主动上报的故障码。
5.7 监控概览

点击开始按钮,开始显示力和电流值。
点击读取数据按钮,可以在表格显示对应的数据。
点击开始记录日志按钮,可以记录温度,电流,错误码,力矩的值,点击保存日志文件将保存记录的数据,如果不点击保存日志文件按钮,每 5 分钟,会自动保存一次,保存的文件会放置在上位机程序文件夹内。
5.8 监控详情

勾选要查看的信息类型,然后勾选对应的手指或电机,点击开始,显示曲线。
5.9 升级

点击选择文件按钮,选择要传输的bin文件。
点击开始按钮,会弹出软件和硬件信息。点击 Yes 按钮,开始传输固件。点击 No 按钮,取消升级。

停止升级和恢复出厂都能在升级过程中,和断电重连的情况下点击。
停止升级的作用是可以在中断升级过程,运行上一个应用程序。
恢复出厂固件是恢复出厂的固件。






