熊本は梅雨も明け、今年も地獄の暑さが続いております。
庭では芝生も雑草もすくすく育っており、何とか楽して芝生を刈りたいという理由でモチベーションも高まり、芝刈りロボットの製作を進めています。
(でも完成する頃には涼しくなっていそうだなぁ。来シーズンには役に立つのか?)
という事で、今回は芝刈りの前段階としてArdupilotを試作ローバーに載せて制御するテストを進めます。
全体の回路はこんな感じ。

フライトコントローラーであるPixHawkを中心に、GPS受信機、モーター、ESC、DroneBridgeを載せているのはこれまでの投稿に書いた通りです。
そこにRC受信機、安全スイッチを載せ、電源は3セルリポおよび以前製作したMP1584のDCDCコンバーターを載せています。
バッテリーは3セルなので定格11.1V。これをモーター電源(定格12V)とし、更にDCDCコンバーターで5Vに落としてPixHawkに供給します。
バッテリー容量は今の所600mAhですが、芝刈りモーターを回す段階になったらもっと容量の大きなものに変更する予定です。
車体(試作版)を作る
塗装合板を適当なサイズに切ったものをベースにして各部品を載せていき・・・

前輪(駆動輪)は合板を丸く切った板に3Dプリントしたハブをねじ止めしてモーターに取り付けます。合板だけだとスリップしたので(当たり前ですよね)初期の頃3Dプリンターで使っていたタイミングベルト(5mmピッチ)をボンドG17で貼り付けました。

後輪はキャスターです。もうちょい径が大きい方が良さそうですが、まずはお手軽なヤツで。。。

電気的なパーツはテープでベタベタ貼って搭載。
モーターの影響か、PixHawkの磁気コンパスが異常値を出したので段ボール等で高さを稼いでいます。またGPSアンテナも低いとRTKがFIXし難かったので角材の上に載せました。

走行テスト。
何度か走らせたところ、駆動輪にタイミングベルトを貼り付けた事でスリップは減ってはいるのですが、それでも時々滑って進めなくなります。
そこでクローラー(キャタピラ)の使用を考えたのですが手ごろな価格で入手できるものが見当たらないんですよね。 何とか自作できないか(蝶番をつないだりとか)考えましたがいい方法が思い浮かびません。
という事で駆動輪の径を大きくし、幅も30mmに広げた車輪を3Dプリントして幅広のタイミングベルトを貼り付けて試します。

これでかなり走破性は上がりましたね!!
なんか赤色のホイールがイイ感じでもあります。電装回りはまだテープだらけですが。

MissionPlannerでウェイポイントを設定して自動で走らせる
庭にウェイポイントを設定して走らせたところ、初期設定のままだと結構大回りになってしまいました。
そこでMissionPlannerのシミュレーションモードで走らせたところ、これでも大回りをします。
シミュレーションの段階で思った動作をしなけりゃ実車でもまず無理ですよね。

という事でここからはシミュレーションモードで確かめながらArdupilotのパラメーターを色々と変更していきます。
パラメータ調整
結果ですが、Ardupilotのパラメーターの内、関係しそうな下記を変更しました。
WP_RADIUS
これはウェイポイントにどこまで近づけば到達したと判断するかというパラメーターなので、デフォルトの3mだと芝刈り目的では遠すぎます。
折角RTKで測位しているので、ここは0.1mに変更しました。
WP_PIVOT_ANGLE
進行方向と目標方向の差が指定した角度を超えていたら車体をその場旋回させる設定らしいです。車体の構造が左右の回転差で向きを変えるskid式なのですが、これがデフォルトの0だとその場旋回してくれないそうです(少しはやっているように見えるのが謎ですが)。
5度より大きな値をセットしないと無効という事なので6度に設定。
WP_SPEED
ウェイポイントに向かう時の速度設定。
0.5m/Sに設定しました。もう少し遅くても良いかもしません。
(実はこれは前の段階で設定していた)
CRUISE_SPEED、CRUISE_THROTTLE
目標の速度とその速度を出すのに必要なスロットルの初期値。
ローバーはCROUISE_SPEEDの巡行速度を目指してまずスロットルをCRUISE_THROTTLEの値に設定し、その後CROUISE_SPEEDに合う様に微調整するそうです。
0.5m/S、50%としました。
なおウェイポイントを巡回する時はWP_SPEEDの設定値が優先だそうです。その場合のスロットルはどうやって決めるのかという疑問があるので、まずはWP_SPEEDとCRUISE_SPEEDを同じ値にしておきました。
ATC_DECEL_MAX
減速の制限値。デフォルトの0にしておけば加速の制限値と同じになるそうですが、シミュレーターでは何故か行き過ぎる現象が出たので2m/SSに変更しました(実車では改めて試す必要がありそう)。
PSC_POS_P
経路外れ時の補正強度。(多分PはPIDのP)
シミュレーター上ではかなり大きめの値にしないと最短ラインから外れ気味だったのでデフォルト0.2に対し1.0に変更しました。これも実車では再調整が必要そうですね。
他にも調整すべき箇所がありそうですが、これでだいぶマシになりました。

芝刈り機構検討
実車でのパラメーターはまだ調整中ですが、並行して芝刈り機構の搭載を検討しています。
当初はリサイクルショップで電動芝刈り機を買ってくる事を考えていましたが中々手頃なものが見つかりません。
そして行き着いたのがこれ。アルミスの「草かるぞう」という名前の小型電動刈払機です。
(最初「アルテミス」かと思ったら「アルミス」でした)
これ近所のホームセンター「ニシムタ」のセールで3999円で売ってた物です。
Amazonとかで見るよりかなり格安で、この値段ならヘタに中古の電動芝刈り機を買ったりパーツを揃えて自作するよりも安くつきそうです。

という事で、新品の「草かるぞう」を買ってきました。バラす前に少し草を刈ってみたところ結構便利です。
このまま使いたくもなりましたが結局バラしてしまいました。

中身はDCモーターが入っていて、電気的にはバッテリーとの間にスイッチがあるだけです。
次回はこれを車体に取り付けていこうと思っています。



















