Petoi Doc Center
🇨🇳中文版
🇨🇳中文版
  • 欢迎查阅派拓艺文档中心
  • 快速上手指南
  • Petoi 机器人关节序号
  • 蓝牙连接
  • 上传固件
  • 关节校准
  • 红外遥控
    • 遥控器
  • 手机应用
    • 总览
    • 关节校准
    • 控制面板
  • 桌面应用
    • 总览
    • 固件上载
    • 关节校准
    • 技能创作坊
    • 调试器
  • 图形化编程
    • Petoi 编程积木
    • Mind+中的Python代码模式
    • Arduino UNO 编程积木
  • Arduino IDE
    • 为NyBoard上传程序
    • 为BiBoard上传程序
    • 使用Arduino IDE校准舵机
    • 串口监视器
  • API
    • 🖇️串口协议
    • 🐍Python serialMaster使用指南
    • 🐛MicroPython控制器
      • MicroPython上手玩
      • 配置WebREPL
      • 使用ESP-NOW协议
    • 🍓通过树莓派控制机器人
    • 🤖ROS
  • NYBOARD
    • 总述
    • NyBoard V1_0
    • NyBoard V1_1 & NyBoard V1_2
  • BiBoard
    • BiBoard V0 快速上手指南
    • 例程介绍
      • 1. GPIO例程
      • 2. 串口
      • 3. 模拟-数字转换器
      • 4. 数字-模拟转换器
      • 5. EEPROM(电擦除存储器)
      • 6. 陀螺仪IMU(MPU6050)
      • 7. 红外遥控
      • 8. PWM
      • 9. 舵机(施工)
      • 10. 经典蓝牙串口SPP
      • 11. 蓝牙低功耗(BLE)串口透传
      • 12. 文件系统SPIFFS
      • 13. Arduino IDE增加硬件分区配置选项
      • 14. 播放MP3
      • 15. WiFi和OTA的使用
    • BiBoard V1 用户指南
  • 通信模块
    • 通信模块概要说明
    • USB上载模块(CH340C)
    • 双模蓝牙模块
    • WiFi模块(ESP8266)
      • 使用ESP8266 + Python 脚本实现无线群控
  • 扩展模块
    • 扩展模块概要说明
    • MU摄像头模块
    • 超声波传感器
    • 光强传感器
    • 触摸传感器
    • 手势传感器
    • 人体移动探测器
    • 语音指令模块
    • Petoi AI Vision摄像头模块
    • 深度开发应用AI视觉模块
      • 🏋️模型训练
      • ⚖️模型量化
      • 🏌️模型部署
      • COCO数据集DIY训练
    • 机械臂
      • 升级旧款 Bittle/Bittle X
    • Micro:bit 游戏手柄
  • 应用实例
    • 技能创作
    • 姿势模仿教程
    • 可编程木偶角色
  • 历史文档
    • 为NyBoard上传1.0版本程序
  • 技术支持
    • 🛠️配套应用软件
    • 🙋‍♂️常见问题 (FAQ)
    • 烧录Bootloader
  • 资源链接 🕸
    • 🔭Official Site of Petoi
    • 💿GitHub of OpenCat
    • 📀GitHub of OpenCatEsp32
    • 🎪PetoiCamp (Forum)
Powered by GitBook
On this page
  • * 校准舵机流程背后的逻辑:
  • 1. 进入校准模式
  • 2. 安装舵机关联部件
  • 2.1 坐标系
  • 2.2 离散的角度间隔
  • 3 使用串口监视器对机器人进行精细校准
  • 3.1 关节控制命令
  • 3.2 “L”形关节校准器
  • 3.3 验证校准效果
  • 3.4 调节重心

Was this helpful?

Export as PDF
  1. Arduino IDE

使用Arduino IDE校准舵机

Previous为BiBoard上传程序Next串口监视器

Last updated 2 years ago

Was this helpful?

校准舵机对于机器人的正常运行至关重要。

预组装版本的机器人应该已经正确安装了腿,但没有进行微调校准。

校准舵机前请确保您已经上传了OpenCat 。

* 校准舵机流程背后的逻辑:

  1. 在校准之前,通电前我们不知道舵机将指向哪里。 所以如果躯干连接上腿部部件,腿会旋转到随机角度,并可能与机器人的身体或其他腿碰撞并被堵转。 如果一个舵机堵转了很长时间,它可能会损坏。

  2. 进入(注释掉OpenCat.ino 中的 #define MAIN_SKETCH 并上传)后,您需要在出现提示时输入“Y”或“n”。 之后,所有的技能数据都会保存到控制器的静态内存中。 其中包括一个“校准”技能,这是一个所有关节都处在零位置的姿势。

  3. 上传(启用OpenCat.ino 中的#define MAIN_SKETCH 并上传)后,您可以在中输入“c”来校准关节。 该程序将读取“校准”姿势并将舵机旋转到已知位置。 所有舵机都应该从休息姿势旋转到校准位置。 然后你可以一个关节一个关节地连接腿部部件,连接时尽量垂直于周围的身体框架。

Nybble 和 Bittle 的校准原理相同。

进入校准模式需要做好以下准备:

‌1. 全部舵机线路与主板连接好

2. 电池电量充足

3. 连接好

如果您使用未组装的套件构建机器人,请在校准之前不要安装头,腿组件。 您还需要安装电池并长按电池上的按钮为机器人供电。

校准分为三个步骤:

  1. 进入校准模式,使舵机自由转动到中位;

  2. 安装各个肢体到校准位;

  3. 通过串口监视器微调关节修正量。

1. 进入校准模式

检查所有舵机接头插入的位置和方向,您必须把舵机和外接电池都插上NyBoard后才可以正确校准。 在我们安装腿部组件之前,舵机的输出轴应该处于零状态(转到中位然后停下)。

在串口监视器输入c来进入校准模式,舵机应该迅速地依次转到中位然后停下,同时齿轮箱会发出一些声响。由于舵机的起始位置各不相同,有些舵机的转角会大一些。在串口监视器会打印出一列表:

第一行是关节序号,第二行是它们的修正量,第三行是刚刚输入的校准指令。

Index

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

Offset

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

初始的关节修正量是 “-1” 或 “0”,需要测定后修改。

模型舵机用电位器作为位置环反馈的传感器。在保持某目标角度时,可能会有轻微抖动。舵机厂可以通过调整PID参数来抑制这种抖动,但随着电位器触点的磨损,这种“帕金森”症状会加重,但主要影响静态姿势的保持,在动态中并不明显。高端舵机可能会用贵上10倍的成本来解决这个问题,对我们而言,更换老化的舵机是更加经济的方案。

2. 安装舵机关联部件

2.1 坐标系

输入‘c’指令后,所有舵机都转到了中位,就可以安装之前组装好的舵机关联部件了。它们基本上按照相互垂直的角度互相连接,校准姿势如下图所示:

如果您使用未组装的套件搭建机器人,请按照上方图片安装舵机相关部件,并尽量保证它们相互垂直(大腿垂直于躯干, 小腿垂直于大腿)。 详细请参考用户手册中的相关章节:

  • Nybble

  • Bittle

把舵机关联部件直插到舵机输出轴上,这过程中不要转动舵机输出轴。

关节角使用本体极坐标系,以逆时针转动为正。从机身左侧看,关节逆时针转动定义为正方向。

对于Nybble头的俯仰关节例外,因为我们习惯说“抬头”,直觉上是正方向,但从左侧看是顺时针转动。

但从机身右侧看,转动方向的正负性刚好相反。

2.2 离散的角度间隔

如果我们仔细观察舵机输出轴,可以发现它上面有一定数量的齿,这些齿可以防止输出轴在转动时相对摇臂滑动。在我们的舵机上,输出轴的圆周被分隔成25个齿,每个齿间隔14.4度(偏移 -7.2~7.2 度)。这意味着我们安装关节时不可能绝对垂直,只能尽可能地接近垂直。

3 使用串口监视器对机器人进行精细校准

3.1 关节控制命令

比如:

c8 6表示给8号舵机+6度的修正量。对于每个舵机都需要进行这样的校准以使各部位转动到校准位。

c0 -4 表示给0号舵机-4度的修正量。

修正量的分辨率是1度,不要使小数。

如果您发现需要的修正量的绝对值大于9度,那说明您在安装肢体时不够靠近校准位,这会导致该关节的有效行程不对称,在某一侧的可到达角度范围变小。把这个肢体取下来,转一个齿的角度重新安装,就可以得到一个方向相反,但是绝对值更小的修正量。

比如,如果您必须使用 -9 作为校准值,请将肢体取下,旋转一颗牙齿,然后再装回去。 新的校准值应该在 5 左右,即它们的绝对值总和为 14。在重新安装时,避免旋转舵机的输出轴。

找到可以使肢体达到零状态的最佳偏移量。 这是一个反复试验的过程。

校准后,记得要输入s来保存修正量,否则程序重启后它们就失效了。您甚至可以每校准一个舵机就保存一次。

3.2 “L”形关节校准器

实际测量时,我们的观测会由于透视关系而产生偏差,这也是为什么我们在读直尺的刻度时要尽量在尺的上方平视。

在校准机器人的关节时,保持平视也特别重要,所以我提供了“L”形的关节校准器辅助参考。按先调4个肩关节(8~11)后调4个膝关节(12~15)的顺序依次校准,目标是使校准器的三个尖角同时对准舵机螺丝或脚尖孔洞的圆心。在校准每个关节时,要从圆心-尖角的延长线上平视观察,校准器的三角窗口边应该和小腿上的三角窗口边平行。

Nybble

Bittle

3.3 验证校准效果

校准后,可在串口监视器输入d或kbalance验证效果。机器人会在对应的休息和站立姿势间切换,它的四肢应该是前后、左右对称的。

您可能需要进行几轮校准才能达到最佳状态。

3.4 调节重心

试着了解机器从如何在步行过程中保持平衡。如果要向机器人身体上添加新部件,请尽最大努力在脊柱周围对称分布其重量。也可以前后滑动电池座,以找到最佳的平衡位置。由于电池的前半部分较重,必要时您也可以反向插入电池,以使重心更多地向后移动。

如果重心发生变化,您可能需要重新校准。

请不要强行为机器人增加过重的物品,可能导致舵机扫齿或卡住。

校准的指令格式(参考)是cIndex Offset,Index是舵机编号, Offset是校准修正量。注意Index和Offset之间有空格。 机器人舵机编号如下图所示:

串口协议
主程序固件
主板配置模式
清除校准数据
标准功能程序
串口监视器
USB适配器并能正常通信
Nybble校准姿势
Bittle校准姿势
Nybble
Bittle