ICS3.6と3.5の違いと新機能についての紹介

Posted on 2016.08.24 in

 

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-3301 ICSの詳細をみる