AbudoriLab.

自律ロボットで誰でも遊べるよう試行錯誤するブログです。

ロボット製作のソフトウェア&ハードウェアまとめ

AbudoriLab.です。

 

本ブログの目次となります。このページから興味ある記事に飛んでもらえるとうれしいです。 

はじめに

ロボットを製作するにはソフトウェア・ハードウェア両方の知識とスキルが必要になります。ロボットといっても種類は様々で、身近なお掃除ロボットから工場で働く産業用ロボットまで幅広く存在します。AbudoriLab.では屋内で動く三輪のロボットを手始めに製作しました。理由はシンプルで、費用も比較的安く手軽にロボットを作れる上で、基礎的なノウハウを習得できるからになります。技術としてはとても基礎的なものになりますが、より高度なロボットを自作するにおいても、有用な情報になると考えております。そのため、ロボット製作が初めての方から高度なロボットを作り始める方でも楽しんでもらえる記事を発信できると確信しています。

AbudoriLabのブログで掲載する記事

”はじめに”ではソフトウェア・ハードウェア両方のノウハウがロボット製作には必要だとお話しました。

ハードウェアの項目では”電子回路を設計してから基板として入手するまで”や”ロボットを設計してから組み上げるまで"について紹介します。

ソフトウェアの項目では"シミュレーション上で設計したロボットを走らせて遊ぶ","ロボットを制御してコントローラーを用いて操作する","ロボットを動かし地図を作る"などについてご紹介します。

以下に各工程での概要をまとめ、投稿するタイトルを記載します。

ハードウェア

ロボットの設計

ロボット本体を設計しましす。AbudoriLab.の初回作のLapinは基本的にAmazonでぽちると完成するロボットを目指しています。製作に必要な部品を選定し、3DCADにて各部品をモデリングして完成品予想図を作成します。ここで部品同士がぶつからないか、大きさや長さは正しいか確認します。決めた値でロボット全体のモデルを作成するとのちに、現実のロボットと同じ形状をシミュレーション上で再現することができます。

  • 選定部品
  • Fusion360
  • 部品(板)の加工
  • 組み立て、動作確認
電子回路設計

Lapinを制御するための基板を作成します。自律移動するコードを組んだとしても、最終的にはモータを回さないことにはロボットは進みません。そこで使用したい機能を実現する回路を設計します。Lapinで使用したい機能を実現する回路「Gekko」は別途公開するのでお楽しみに!

  • 回路の設計
  • KiCAD
  • 基板の発注

ソフトウェア

シミュレーション

モデリングしたLapinをgazebo上でシミュレートします。機能の追加やアップグレードを実施したときに動作確認が必要にないます。その度に、lapinを動かすとなると検証回数に比例して煩わしさや時間がかかります。そこで実環境で実験する前に、簡易的なシミュレーション実験でエラーを見つけます。

  • lapinのモデルをgazeboへインポート
  • 自律移動をシミュレート
モータ制御

ロボットが走行するためには、モータを適切な速度で回せるように制御しなくてはなりません。カンタンな制御理論からモータを制御します。また、ROSでの自己位置推定で使用するオドメトリ の計算 と専用基板の"Gekko"との通信について説明いたします。

地図作成

目的地までのルートを計算するに必要な地図を作成します。Lapinは地図ありで自律移動する設計となり地図が必要になります。SLAMについて概要をご紹介したROS2とLidarを使って地図を作成する方法をご紹介します。

  • SLAMの概要説明
  • lidarで地図作成
  • 地図の保存

難しく数式などは使用せずに、SLAMの「自己位置の推定」と「地図の作成」について簡単な例を用いて紹介しています。

www.abudorilab.com自己位置と地図作成が相互依存する理由について紹介してます。

www.abudorilab.com SLAMの高精度化に重要なテクニックについて紹介してます。

www.abudorilab.com

ROS2やcartgrapherなどのオープンソフトウェアを利用して、シュミレータでロボットの自律移動を体験する方法をご紹介してます。

www.abudorilab.com実機のLidar(RPLidar)とcartographerを使用して、実際に地図を作成する方法をご紹介しています。

www.abudorilab.com

行動計画

行動計画法について紹介します。行動計画で目的地までの経路を計算し、それに沿ってLapinを移動させることができます。途中で予期せぬ障害物が現れた際は回避などの動作が必要となります。

  • Navigation2の行動計画の概要説明
  • global planningの説明
  • local planningの説明
自己位置推定

Lapinに自身の現在地を認識させます。自己位置が認識できると"行動計画"で計算した経路に対して逸脱がないかを判断できたり、目的地に到着したかを認識できるようになります。SLAMの概要については地図作成の項目に上げるため、ここでは自己位置に特化した記事をご紹介します。

  • Navigation2 mobe_baseの説明
  • Navigaation2 amclの説明

その他

本筋とは少し逸れますが、ロボット製作中のお試しや遊びを通して得た情報もご紹介します。

性能を検証するため購入したJetson Nanoを例に開発にオススメする周辺部品一覧をまとめました。

www.abudorilab.comさいごに

まだリンクに貼れる記事は多くありませんが少しずつ記事を増やしていきます。書き手が書きたいことを優先にアップしていくため順番は順不同になることもあります。なるべく早く充実させていきます。書いてほしいことやコメントなどお待ちしてます。