RCB-4 Library Arduino版(V1.1)とPython版(V1.0.0B)の違いについて

Posted on 2019.02.26 in

 

同じRCB-4と通信するためのライブラリとして、Arduino版とPython版の違いをご紹介します。

ライブラリは下記の記事からダウンロードしてご利用ください。

『RCB-4 Library for Arduino ver.1.1』

『RCB-4 Library for Python ver.1.0.0B』

プログラミング言語の違い

Arduino版とPython版のライブラリは、使用している言語が異なります。

 

 Arduino版:C++ベースで書かれています。

マイコンを使う前提で内部は書かれています。

 

 Python版:Pythonベースで書かれています。

コンピュータを使う前提で書いていますので、メモリ等を気にせず使えるように設計をしています。

 

引数等は言語によって変わりますので、違うところはありますが、関数名、できることに関してはほぼ同じにしています。

 

機能(関数)の追加

Pythonのプログラムを作成するにあたり下記の便利な機能(関数)を追加しました。

この関数はArduino版 Ver.1.1にはまだ実装されていませんので、今後のアップデートで追加を予定しています。

下記のご案内は、RCB-4HV、RCB-4miniともに対応しています。

1.ミキシング機能のMIXソースと倍率を切り替える関数を追加

・関数:setServoRamAddrMixing(),setServoMixGain(),resetServoMixing()

主に二足歩行ロボットでジャイロによる歩行の自動補正を行うため、RCB-4にはミキシング機能が実装されています。

ミキシング機能とは、設定した値(AD値、変数など)に指定した倍率をかけ、サーボのポジションに加算するための機能です。

例えば、ジャイロセンサを搭載したロボットで、直立した状態から歩行したときの傾きに対して指定した倍率をかけ、それを足首のサーボのポジションに加算することで、踏ん張るような歩行補正を行うことができます。

このミキシング機能は、モーションの再生中、停止中に関係なくリアルタイムで実行されます。歩行補正はジャイロセンサによって行いますが、センサの値とは別にユーザ変数によってもミキシングすることが可能です。

今回のPythonのライブラリでは、ミキシングで使用するMIXソースと倍率を外部から切替できるように関数を追加しました。これにより、予め登録したMIXソースをセンサの値からユーザ変数に変更したり、倍率を変更してサーボの挙動を変えることができるようになります。

 

2.ユーザ変数を変更するための関数を追加

・関数:setUserParmeter(),getUserParmeter()

HeartToHeart4のユーザ変数は、一般的なプログラムの変数と同様にユーザが任意の値を入れることができます。外部からユーザ変数を変更することにより、指定したサーボに対してミキシングすることができますので、歩行しながら首のサーボをリアルタイムに動作させることができるようになります。この記事(リンクは後で)で紹介したロボットは、移動する目標に対してカメラを向けるためにこの機能を利用しています。

Pythonライブラリでは、外部からRCB-4のユーザ変数を変更できるように関数を追加しました。

Arduino版ライブラリ Ver.1.1には、ミキシング機能に対する関数はありませんでしたが、Pythonライブラリで新たに追加しました。

 

3.カウンタ値の編集

・関数:setUserCounter() ,getUserCounter()

ループで繰り返すような処理の場合、HeartToHeart4のカウンタ(SetCounterなど)を利用していますが、予めモーション内で設定した一定回数分しか繰り返せなかったため、外部からカウンタ値を変更できるように関数を用意しました。

 

4.再生中のモーション番号の取得

・関数:getMotionPlayNum()

現在どのモーションを再生しているのかがわかるように関数を追加しました。

また、モーション番号を指定して再生する「MotionPlay」を利用する場合、モーションの途中で次のモーションを再生してしまうと、ロボットがバランスを崩す可能性がありました。そのため、delayなどを入れて次のモーションまで処理を待っていましたが、モーションが終了しているかを取得できる関数を用意しましたので、余計に待つことなく連続してモーションを再生できるようになりました。

 

関連記事

 RCB-4 Library for Python ver.1.0.0B

 弊社USBアダプタをLinuxで使うには(2019版)

 RCB-4とRaspberryPiの接続方法

 RaspberryPiとRCB-4との連携について

 RCB-4の外部からモーションを再生させる方法について

 RCB-4でモーションとは別に個別にサーボを動かす方法

 RaspberryPi搭載用パーツ 3Dデータ(KXR用)

 

RCB-4HVボードのみの詳細をみる RCB-4miniの詳細をみる