おおたfabさんでは、「素人でもロボットをつくりたい」という勉強会を定期的に行っています。前回はLiDARを使って地図の作成を行いましたが、今回はNavigation(自律走行)にチャレンジします。
写真に写っていますが、現在LiDARやRaspberry Piやバッテリーを固定するためのベースプレートもおおたfabさんのレーザーカッターで製作中です。
今回参考にした記事
- hector_slamと2D Navigationを組み合わせてRoombaを自律移動させる (ゼロから始めるロボットプログラミング入門講座 Daiki Maekawaさん)
前回から変更した点
- gmapping-slamからhector-slamに変更しました。
参考記事からgmapping-slamはルンバに不向きとのことなので、hector_slamを試したところ、なかなか良い感じです。 - ルンバに接続するRaspberry Pi 3B+(1GB RAM)をRaspberry Pi 4(4GB RAM)に変更しました。
前回やや動きが悪くなる時があったのでCPUとメモリに余裕があるようにしました。
実機で動かし方
手順はGithubを参照してください。あちこちのスクリプトを調整しています。
ナビゲーションの様子
おおたfabさんのオフィスで実験をしました。狭い通路を行先に指定してそこまで自律移動をしてみます。
RvizでのNavigationの様子です。
ルンバ実機の動画です。途中で少し止まりますが、何かを考えているようです。
rqt_graphの結果
このようにRvizで指定した場所に移動することができました。
これを応用してウェイポイントナビゲーションを試してみようと思います。