ICS3.6と3.5の違いと新機能についての紹介
ICS3.6とICS3.5の違いについて
ICS3.6はICS3.5の上位互換です。
ICS3.5のコマンドをすべて使うことができますので、ICS3.5マネージャを用いてパラメータの調整やIDの変更も可能です。
ICS3.5との違いは、角度情報の取得のコマンドを追加したことです。
ICS3.5まではポジションコマンドの返値として角度情報を取得していました。
ですが、その方法では現在の角度が分からない場合や、サーボがフリーなのか
トルクがかかっているのかも判らないような状況では角度取得が困難でした。
ICS3.6では、角度情報を取得するコマンドを実装したことにより、サーボモータからどの状態でも角度を取得できるようになりましたので、3.5以前のようにポジションコマンドから強引に角度取得するために意図しない動きをさせなくてはいけない、ということがなくなりました。
ICS3.6の角度取得について
角度を取得する方法は、ストレッチやスピードを変える時と同じパラメータ読み出しコマンドを用います。その時指定するサブコマンドは0x05になります。
コマンドの詳細に関しましては、ICS3.5/3.6ソフトウェアマニュアルのP16及びP17をご覧ください。
ICS3.5/3.6ソフトウェアマニュアルはこちらからダウンロードできます。
1 | 2 | 3 | 4 | 5 | 6 | |
送信 | CMD | SC | ||||
#101xxxxxb 0xXX |
0x05 | |||||
受信 |
- |
- |
R_CMD | SC | THC_H | THC_L |
送信コマンドのループバック |
#001xxxxxb 0xXX |
0x05 | 0xXX | 0xXX |
CMDとR_CMDのxxxxx(2進表記)の部分にはIDが入ります。
たとえば、ID:10の場合は下記のようになります。
2進表記 | 16進表記 | |
CMD | #10101010b | 0xAA |
R_CMD | #00101010b | 0x2A |
TCH_HとTCH_Lはポジションで使用している値になります。
ICSのコマンドヘッダ以外は上位1bitを0にする制約があり、2byte受信した時、実質14bitのデータになります。
TCH_H=0x3A、TCH_L= 0x4Cを受信した時、7500の角度値になります。
下記はそれを示したイメージ図です。
0x3A | |||||||||||||||||
TCH_H | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | |||||||||
↓ | 0x4C | ||||||||||||||||
↓ | TCH_L | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | ||||||||
↓ | ↓ | ||||||||||||||||
0x1D | 0x4C | ||||||||||||||||
7500 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 |
弊社のサーボモータで7500という角度値は、ニュートラル(0度)を示すことになっています。
角度と角度値との関係は下記のようになります。
サーボモータ 角度値 |
3500 | ~~~ | 7500 | ~~~ | 11500 |
角度(deg) | -135 | ~~~ | 0 | ~~~ |
135 |
なお、パラメータ書き込みコマンドで角度取得用のサブコマンドを指定しても何も起きませんので注意してください。
角度取得コマンドを実際に使った例
下記は実際に角度取得コマンドを使用した例です。
今現在の情報を取得することができるため、指令してからの軌道を確認することもできます。
KRS-3301を使用し、5500からポジションコマンドで9500に角度指定をおこない、角度取得コマンドにて指定位置に到達するまでのデータを取得したログになります。
(なお、パラメータや個体差により動作速度は変化します。
コマンドとコマンドの間は約10msになります。(データが多いため途中を省略します)
コマンド | time(s) | ICSの送受信データ(青字は送信、赤字は受信データ) | 取得角度 | |||||
ポジションコマンド発行 |
0 |
0x80 | 0x4A | 0x1C | 0x80 | 0x2B | 0x2B | 5547 |
角度取得 | 0.01 | 0xA0 | 0x05 | 0x20 | 0x05 | 0x2B | 0x34 | 5556 |
角度取得 | 0.02 | 0xA0 | 0x05 | 0x20 | 0x05 | 0x2B | 0x73 | 5619 |
角度取得 | 0.03 | 0xA0 | 0x05 | 0x20 | 0x05 | 0x2C | 0x44 | 5700 |
↓ | ↓ | ↓ | ||||||
角度取得 | 0.50 | 0xA0 | 0x05 | 0x20 | 0x05 | 0x49 | 0x64 | 9444 |
角度取得 | 0.51 | 0xA0 | 0x05 | 0x20 | 0x05 | 0x49 | 0x64 | 9444 |
角度取得 | 0.52 | 0xA0 | 0x05 | 0x20 | 0x05 | 0x49 | 0x76 | 9462 |
角度取得 | 0.53 | 0xA0 | 0x05 | 0x20 | 0x05 | 0x49 | 0x7F | 9471 |
これをグラフにすると、下記のようになります。
これらのデータをエクセルにまとめましたので、こちらからダウンロードして参照してください。
まとめ
ICS3.6では角度データを取得するためのコマンドを追加しました。起動時に今のサーボモータの角度が何度であるか確認したり、角度を取得し続けて軌道を可視化等いろいろな用途に使えるようになりました。
KRS-2552R3HV ICSの詳細をみる KHR-3HV Ver.3 リフェバッテリー付きセットの詳細をみる KRS-3204R2 ICSの詳細をみる KRS-2572R2HV ICSの詳細をみる KRS-2552R2HV ICSの詳細をみる KRS-2542R2HV ICS の詳細をみる KRS-9004HV ICSの詳細をみる KRS-5054HV ICS H.Cの詳細をみる KRS-5053HV ICS H.Cの詳細をみる KRS-5034HV ICSの詳細をみる KRS-5033HV ICSの詳細をみる KRS-5032HV ICSの詳細をみる KRS-6104FHV ICSの詳細をみる KRS-3304R2 ICSの詳細をみる KRS-3302 ICSの詳細をみる KRS-6003R2HV ICSの詳細をみる KRS-3301 ICSの詳細をみる KXR-L2 ヒューマノイド型 Ver.2の詳細をみる KXR-L4T-R カメ型・ローバー型 Ver.2(アカデミックパック)の詳細をみる KXR-A5 アーム型 Ver.2の詳細をみる KXR アドバンスセットA Ver.2の詳細をみる KXR アドバンスセットB Ver.2の詳細をみる KMR-M6 Ver.3 リフェバッテリー付きセットの詳細をみる