忍者ブログ

白黒サイクル

ロボットとジャグリングのブログ。

Futabaコマンドサーボの角度取得

だいぶ期間が開きましたが、最近はコマンドサーボ(RS301)でアーム作ったりして遊んでます。




先輩から頂いたArduinoのサンプルコードをいじって、mbedでサーボの角度を取得するプログラムがやっと動きました。

コマンドサーボ配線図: http://futaba.co.jp/robot/systems
※プログラムと配線図でピンが違う&送信後の待ち時間が足りないので要注意です。


私が引っ掛かったのは
・device.readable()の使い方 →ネットで調べました
・リターン要求送信後の待ち時間 → オシロで波形を表示して測定しました。
といった感じです。

リターン要求送信後の待ち時間については、私の条件では700usくらいがちょうどいいみたいです。
REDE変数で送信と受信を入れ替えているので
待ち時間が短い→送信送信が途中で切れる
待ち時間が長い→受信信号の頭が切れる
となります。

コード載せておくので、ご参考までに。
あと、送信待ち時間の上手い設定方法がわかれば教えてもらえると嬉しいです。



ID1のサーボの角度を読み取り、ID20 を動かすプログラムです。
(+ID20の角度を読み、ID1を動かせばマスタ・スレーブっぽい動きになる)

※コピペしたらインデントが消滅しました・・・。
以下、コード
PR

かわロボ秋シーズン

かわロボ学際シーズンです。

本大会後に実装したヨー軸の角速度補正が思ったよりうまくいき、
操作しやすくなったためか予想以上に好成績です。
2015年のほぼ全敗とは大違いw


2016年成績
本大会・・・決勝トーナメント初戦敗退、デザイン賞
KHK杯・・・ベスト12位
ヤガボット・・・4位



ヨー軸の角速度補正の内容としては

1.GY521(MPU6050)のDMPからヨー角取得※
2.10ms前のデータと比較して、角速度を計算
3.プロポの入力(旋回)-角速度×定数 を計算
  (スティックが傾いていない場合は定数を0にする)
4.Vテールに近い演算で左右の脚の出力を計算

※ピッチ角の角度出力が欲しかったので角度出力ですが、角速度出力でもよいと思います。

としました。この方法だとMAX旋回速度は落ちるはずなので、3で全体に定数をかける等すればさらに良いと思います。
からっ風はもともとプロポで旋回しづらい設定にしているので気になりませんでした。

ピッチ角補正はアームの角度を重力方向から一定になるようサーボ角度を補正していますが、
こちらは特に操作感覚が変わった感覚はありませんでした。


こんな感じで走ります。



小さな凹凸に引っかかって急に旋回することが減りました。
旋回後の停止も少し鋭くなっています。
直進性も上がっているので、操縦が楽になっています。

アームがプルプルしているのは、サーボの出力に付けているバネの効果です・・・。
衝撃を吸収してサーボを守る&丘を超えやすくする働きはあるのですが、減衰が遅いのは要修正ですね。

プロポの信号周期

かわロボの信号を処理するのに10ms周期以下だと都合がよいので
早いらしいFASSTest12CHモードを試してみました。

14SGの通信規格はいくつかありますが、双方向通信のFASSTestは二種類です。


FASSTest14CHモード・・・PWMは15ms周期

FASSTest12CHモード・・・PWMは6.3ms周期

※時間はmbedのピン変化割り込みで測定しています。
 測定精度は確認していません。

ちなみに12CHモードはいくつか制約があります。
・アナログサーボは使用できない
・テレメトリは受信機と外部電圧1chのみ
・他メーカーのシステムは対応していないものがあるかも

詳しくは14SGの取扱説明書で。

9msくらい変わるので、わかる人にはわかるのかな?

ラジコン用受信機の信号タイミング

ラジコン用受信機の信号のタイミングって時間が各チャンネル重ならないようになっていると思っていたのですが、物によってはそうでもないようです。


双葉R7008SB(T14SG付属受信機)の1chと4chの波形(電圧方向にずらしてます)


マイコンで読み込む際、ピン変化で時間計測しようとすると、割り込みのタイミング重なることがあるようです。

私の場合、各ピンごとに立ち上がりと立下りで割り込みかけて計測していたので、
タイミングが重なると誤差が大きくなる傾向がありました。

サーボがちょっと動いたり、ESCが微妙に反応したりする程度ですが、人が入力していないのに反応するのは嫌だなあと。

というわけで計測開始の割り込みを1つのピン変化に統一して、立下りはプロポのニュートラル位置をずらし、ニュートラル位置で重ならないようにしました。

動くと瞬間的に重なりますが、動いている分にはいいかなと。
ずらした量はこんな感じで1~4chは重ならないようにしています。5~8chは使用頻度少ないからそのまま。



知らなかったので手こずりましたが、タイマーの少ないマイコンでは読みやすそうですね。

遊星ギヤボックスの利用について

遊星ギヤボックス

大会で何人かの方に聞かれたので、まとめてみました。

からっ風シリーズでは毎回アームの減速に遊星ギヤヘッドを使用しています。
無印、QuadraEdge・・・電ドリ
Fomalhaut、Jagt、Pussyfoot・・・旧KU 24:1
BEEK,Gimlet・・・新KU 24:1

アームの多段減速機を自作すると精度の問題等あり難しいので、
遊星を使えばちょっと簡単に作れる・・かもしれません。

注意点・・・出力軸付近の剛性が弱いと遊星歯車の歯面で支えることになるため歯欠けが起きやすくなります。改造して使用する場合は出力軸を両持ちにしたほうが良いです。


ツカサ電工 KUギヤヘッド
ツカサ電工のギヤドモータ付属のギヤヘッド
単品での購入は不可なので、モータとセットで買う必要あり
ピニオンを抜く等の加工が必要

入力トルクは経験的にRS380PH,13.2Vのストールトルクの10倍程度までは壊れにくい(24:1の場合)。
コスト的にはTG-05シリーズかTG-85シリーズの標準品を買うと安い。
モータのシャフトはφ3mmなので、別の用途に使いやすい。

ツカサ電工直販:https://www.tsukasa-d.co.jp/motor/robo.html

  
KUギヤヘッド(の中身)と使用例


電ドリギヤヘッド
540サイズ以上の電動ドリルのギヤヘッド。構成はKUに近い。
クラッチ入りのギヤヘッドとしても使用可能。
クラッチを使わない場合は歯車だけ使うとよい。
出力軸はねじが切ってあるため、使いやすいサイズに加工する必要がある。
コストは安い(最近は3000円越え?)

 
電ドリギヤヘッドの中身


朱雀技研 IGシリーズ
ギヤボックス単体やピニオン単体で入手することができ、入手性は良好
フルメタルなギヤ構成も選択できるため、強度も高い
内歯車とフレームが一体のため、重量は重いが強度がある
IG22,IG32,IG36,IG42があり、数字は直径となっている。
380モータ等を一緒に購入すれば組み付けてもらえるサービスがある。

変な改造をするよりは、そのまま使用したほうがメリットが大きいと思う。

朱雀技研ストア:http://store.shopping.yahoo.co.jp/suzakulab/4a25aaeae55.html


IG32とIG36Pの中身


以上