Skip to content

仮想トラッカーの制御ソフトウェア「だみとら2」の、外部接続機器を制作する際の技術資料と、サンプルのソースコードのリポジトリです。

License

Notifications You must be signed in to change notification settings

dreamdrive/damitora_external_connection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

damitora_external_connection

仮想トラッカーの制御ソフトウェア「だみとら2」の、外部接続機器を制作する際の技術資料と、サンプルのソースコードのリポジトリです。

「だみとら2」はこちらで公開しております。
https://ddrive.booth.pm/items/3821909

ROS版だみとら2は、こちらで公開しております。
https://github.com/dreamdrive/ros_damitora

だみとらの外部接続

現在、だみとら2の外部接続は、2種類があります。

  1. Dynamixel Input
  2. Arduino Input

その他、BLEによる接続と、UDP/IPを使ったMeridianプロトコルでの外部接続を検討中です。

Dynamixel Input (だみとら物理コントローラー)について

ROBOTIS社のDynamixel Xシリーズを入力デバイスとして使用するモードです。
13個のDynamixelの通信レートを1Mbpsに設定し、IDを2~14に設定します。
U2D2もしくは、OpenRB-150を経由して、PCを接続します。U2D2の場合は、Dynamixelに電源を供給する回路を作る必要があります。
OpenRB-150とXL330の組み合わせの場合は、USBのバスパワーでも動作出来て便利です。ただし、あくまでも入力用で、個数が多いので「だみとら」以外の用途で積極的に動かすのは推奨しません。

Dynamixel ID 関節 だみとら2 スライダ
2 首 仮想ジョイント ロール軸 該当なし ※1
3 首 仮想ジョイント ピッチ軸 該当なし ※1
4 首 仮想ジョイント ヨー軸 該当なし ※1
5 右脚ヨー軸 4番スライダ
6 右脚ロール軸 5番スライダ
7 右脚ピッチ軸 6番スライダ
8 右膝ピッチ軸 7番スライダ
9 左脚ヨー軸 9番スライダ
10 左脚ロール軸 10番スライダ
11 左脚ピッチ軸 11番スライダ
12 左膝ピッチ軸 12番スライダ
13 右足首ピッチ軸 ※2 8番スライダ
14 左足首ピッチ軸 ※2 13番スライダ

※1 "だみとら2"と物理コントローラーの間で、首のみ軸配置(軸の接続順)が違うため、だみとら物理コントローラーの軸配置にしたがって、だみとら側の首軸(ヨー・ロール・ピッチ)は、オイラー角を再計算して、動作します。

※2 足首軸は後から追加したため(VRCのIK2.0導入時)、IDが変則的になっています。

これを使った作例として、だみとら物理コントローラーがあります。(下記画像)

picture 1

こちら、3Dプリント部品の3D形状データをMITライセンスで公開します。3Dデータはこちら

また、寸法に関しては、下記の通りです。
コントローラーの頭と股関節の位置関係は、アプリケーション上の3Dモデルと一致するように配置されています。

picture 2

その他必要なアルミフレームや、組み立てに関しては、近日中に資料を整備します。

Arduino Input について (UARTでの接続)

シリアル通信のプロトコルについて

シリアル通信は、下記の設定になります。

設定項目 パラメータ
ボーレート 115,200bps
データ 8ビット
パリティ・ビット なし
ストップ・ビット 1

送信内容は、下記の通りで、バイナリではなく文字列をそのまま送っております。

 [数値1,数値2,数値3,数値4,数値5,数値6,数値7,数値8,数値9,数値10,数値11,数値12,数値13]
  1. 数値は、角度 -180.0~180.0degを、10倍した符号付きの整数、-1800~1800になります。
  2. 先頭に"["、最後に"]"が付きます、数値はカンマ区切りです。
  3. "]"の後には、改行コードが入ります。
  4. 送信する周期は、特に決まりがありません。だみとらが60FPSなので、16ms周期よりはゆっくり送ってください。(サンプルスケッチでは50ms+α周期くらいで送っています。)

Arduinoのサンプルスケッチ1 (Sample 1)

概要

Arduino Megaに、13個のポテンショメーターを使用して だみとら2 の入力装置を自作するサンプルスケッチ

サンプルスケッチ01

Sample01のスケッチはこちら

接続図

picture 3

Arduino PIN だみとら2 スライダ
A0 首 ヨー軸 1番スライダ
A1 首 ロール軸 2番スライダ
A2 首 ピッチ軸 3番スライダ
A3 右脚ヨー軸 4番スライダ
A4 右脚ロール軸 5番スライダ
A5 右脚ピッチ軸 6番スライダ
A6 右膝ピッチ軸 7番スライダ
A7 右足首ピッチ軸 8番スライダ
A8 左脚ヨー軸 9番スライダ
A9 左脚ロール軸 10番スライダ
A10 左脚ピッチ軸 11番スライダ
A11 左膝ピッチ軸 12番スライダ
A12 左足首ピッチ軸 13番スライダ

Arduinoのサンプルスケッチ02

概要

M5Stack 8Angle Potentiometer Unit を使用して だみとら2 の入力装置を自作するサンプルスケッチ

サンプルスケッチ

Sample02のスケッチはこちら

接続図

picture 3

Arduinoで、だみとら物理コントローラーを作る場合の注意事項 (軸の順番について)

Dynamixel版のだみとら物理コントローラーは、アプリのリリース前にアプリと同時に作り始めた経緯があり、途中でアプリケーションでの使いやすさを優先して仕様が変わったため、スライダーの順番とコントローラーの軸配置が一致しておりません。 それを補正するため、上の説明でも振れた通り、Dynamixel版にはアプリ上で軸の順番を入れ替える計算が入っています。
Arduino版の方は、送信するデータの順番とスライダーの順番が一致しております。
そのまま同じ見た目のものをポテンショメータで作ると、ヨー軸周りが一致しなくなるため、Arduinoで自作する際には、下図の通り、軸の順番にお気をつけください。
.

picture 4

一方で、この軸配置が最適解がどうか、というとそれも自信はありません。
ただ、クオタニオンにしてしまうと、アプリでスライダーのみで使用する人にとって使いにくい物になってしまうため、オイラー角での表現は崩したくないというのもあります。
もし「こんな軸の順番で作りたい入力装置がある」というお話があれば、ご相談ください。

履歴

  • 2023/02/05 : とりあえず公開
  • 2023/02/11 : README.md に軸配置の補足と、寸法についての補足を追記

Author

License

This is under MIT LICENSE.

About

仮想トラッカーの制御ソフトウェア「だみとら2」の、外部接続機器を制作する際の技術資料と、サンプルのソースコードのリポジトリです。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages