Servo86 函式庫

Servo86 函式庫

86Duino IDE 從 Coding 209 開始就增加了這個函式庫。除了完全向後兼容 Arduino/86Duino 現有的 Servo 函式庫外,還增加了許多新功能,使玩家更容易操作基於 RC 伺服的機器人(如玩家型雙足機器人和六足機器人獸)。使用這個 Servo86 函式庫,使用者可以:

  1. 指定單個舵機的角度和速度,設置多個舵機同時運行。
  2. 機器人的所有伺服角度都可以保存為一個動作幀(frame),您可以自由決定動作幀回放的時間間隔,以再現或記錄機器人的動作。

Servo86 庫還改善了 Arduino Servo 函式庫的 PWM 抖動,如本文中所述。

借助 Servo86 函式庫,我們創建了一個機器人運動編輯器:86ME (86Duino Motion Editor) ,它允許使用者編輯機器人運動框架,並自動生成草稿代碼以調用 Servo86 函式庫。

Servo86 類別

Servo 類

這個類別提供了 Arduino/86Duino 的舊 Servo 函式庫的所有功能,並增加了更多高級功能來控制伺服運動流和旋轉速度。

多伺服同步動作功能

以下功能是伺服機的批處理功能,可以控制任何指定數量的伺服機同時運行。

ServoFrame 類

許多市面上的機器人運動編輯軟件都採用計算機動畫領域的 Key frame 的概念來表示機器人運動,而機器人的姿勢,也就是機器人上舵機的位置列表,被稱為 Frame。Servo86 函式庫提供了 ServoFrame 類別來支持用運動幀控制機器人運動的概念,這個類別還可以加載和生成 Servo86 函式庫專用的機器人運動幀文件。

使用者不僅可以使用 ServoFrame 的 save() 函數直接生成動作幀文件,還可以使用 86ME 機器人動作編輯器來編輯和生成動作幀文件。之後,你可以通過使用 ServoFrame 的 load() 函數將動作幀文件加載到程序中。

ServoFramePololu 類

這是 ServoFrame 的衍生類別,它支持讀取由 Pololu 的運動編輯器 Maestro 控制中心生成的機器人運動文件,以便與 Servo86 函式庫一起使用。

ServoFrameKondo 類

這是 ServoFrame 的衍生類別,它支持讀取由 KONOD 的運動編輯器 HeartToHeart3 生成的機器人運動幀,可以被 Servo86 函式庫使用;此外,它還提供了一個特殊功能,實時捕捉 KONDO 伺服的當前位置。

ServoFrameInno 類

這是 ServoFrame 的衍生類別,它支持讀取由 Innovati motion editor 生成的機器人運動文件,以便在 Servo86 函式庫中使用。

ServoFrameVstone 類

這是 ServoFrame 的衍生類別,它支持讀取由 Vstone 的動作編輯器 RobovieMaker2 生成的機器人動作幀,以便與 Servo86 函式庫一起使用 (這個類別由 86Duino Coding 300 支援)。

多運動幀運動平滑功能

從 86Duino Coding 300 開始,Servo86 函式庫支持 Cubic Spline運動路徑插值方法,它可以使連續幀之間的運動平移更加平滑,減少關節機構的振動。以下函數可以為連續運動幀啟用這種平滑插值功能。

ServoOffset 類

Servo86 函式庫支持微調伺服中心偏移量,以補償這種誤差,從而使每個伺服都能精確對準。這個類別可以用來定義、保存和加載 Servo86 函式庫中的伺服中心偏移微調值(Offset)。

ServoOffsetKondo 類

作為 ServoOffset 的衍生類別,它支持從 KONOD 的運動編輯器 HeartToHeart3 生成的機器人運動文件中讀取偏移微調值,並將其提供給 Servo86 函式庫以補償伺服中心位置誤差。

ServoOffsetInno 類

作為 ServoOffset的衍生類別,支持讀取由 Innovatimotion editor 生成的偏移量微調值文件,並將其提供給 Servo86 函式庫以補償伺服中心位置誤差。

ServoOffsetVstone 類

作為 ServoOffset 的衍生類別,支持從 Vstone 的運動編輯器 RobovieMaker2 生成的運動配置文件中讀取偏移微調值,並將其提供給 Servo86 函式庫以補償伺服中心位置誤差。 (這個類別是由86Duino Coding 300 開始支持)。


使用限制

TimerOne 函式庫 Servo 函式庫也使用定時器。因此,為了避免含式庫之間的衝突,在同一時間只能使用這三個含式庫中的其中一個。


86ME 運動編輯器

86ME(86Duino 運動編輯器)是一個開源的機器人運動編輯器,可以編輯機器人運動如動畫,支持生成可被 ServoFrame 加載的機器人運動幀文件,並可自動生成可直接刻錄到 86Duino 的機器人運動程序。詳情請參考 86ME用戶手冊


演示影片


函式庫參考主頁面

86Duino 參考的文本是根據 Creative Commons Attribution-ShareAlike 3.0 License,部分文本是從 the Arduino reference 修改的。 參考中的代碼示例已發佈到公共領域。

發表評論

上部へスクロール