Corporate Blog

自律走行機能のソフトウエア開発

2022.7.8

  • ICTシステム開発
  • 人工知能(AI)
  • 研究開発
当社ではロボット向けソフトウエア技術の研究・開発に取り組んでいます。
ロボット向けソフトウエアは、さまざまな要素で構成されます。ミドルウエアであるROS、リアルタイム処理、3D CG、VR、ARなどです。また、ロボットを制御するためのモーター制御、センサー制御の技術や、アルゴリズムを実装する技術の知識と経験も必要です。
今回は、自律走行機能のソフトウエアの開発について紹介します。

自律走行機能のソフトウエア開発

市販の移動ロボットを用いた自律走行機能のソフトウエア開発の様子をご紹介します。

TurtleBot3という市販の移動ロボットを使ってソフトウエアを開発します。
TurtleBot3はLiDARを搭載したオープンソースの移動ロボットプラットフォームです。

ミドルウエアにはROS(ROS2)を利用し、SLAMをベースに自律走行のための「ナビゲーション機能」を実装します。

ROS(Robot Operating System)

ROSは、ロボットの種類を問わず、ロボットの開発を行うための共通ライブラリとツール群を提供するオープンソースのフレームワークです。
ロボットの研究開発で用いられるソースコードの再利用性を最大化することを目指して開発されました。
名称に「OS」とついていますが、正確にはOSではなくミドルウエアになります。OSであるWindowsやUbuntuなどの上にROSを載せます。

SLAM(Simultaneous Localization and Mapping)

SLAMは、自己位置推定(Localization)と地図生成(Mapping)を同時に行う技術です。

自己位置推定(Localization)

既知の地図上で、自己のロボット位置(姿勢)を推定します。
初期位置からの自己位置の変化を局所的に推定するPost Trackingと、地図全体から大域的に自己位置を推定するGlobal Localizationに大別されます。

地図生成(Mapping)

自己の周囲をセンサーで観測して、地図を生成します。
周知と自己の位置関係を割り出すことで、局所的な地図が生成できます。大域的な地図を作成するためには、Scan Matchingなどを用いて局所的な地図をバックエンドでつなぎ合わせます。
自己位置推定(Localization)と地図生成(Mapping)を同時に行うとSLAMとなります。
これによりリアルタイムで大域的な地図が作成できます。

移動ロボットによる動作確認

ナビゲーション機能のソフトウエアはPython言語やC++言語で開発します。SLAMによるナビゲーション機能のプログラムをPython言語で作成しました。ROS2のライブラリをインポートして使用します。

ソフトウエア内の地図情報の様子

ソフトウエア内の地図情報の様子

移動ロボットで動作確認している様子

移動ロボットで動作確認している様子
自律走行機能のソフトウエア開発の様子をご紹介しました。
当社ではスマート農業に向けた「自動収穫ロボット」の開発を行っており、農園の状態にあった自律走行機能の開発に向け日々研究を続けています。
私たちと一緒に開発に携わるエンジニアを募集しています。
 

関連コンテンツ

ICT(IoT/Web/組み込み)システム開発
ICT(IoT/Web/組み込み)システム開発
組み込みソフトウェア/電気回路/FPGAのスキルを生かした通信システム、動作環境に依存しないセキュアで便利なWebベースのシステム、データ収集から見える化・モノの制御までを一貫して行うIoTシステムなど、さまざまな技術を活用したICTシステムを提案・開発します。
人工知能(AI)
人工知能(AI)
学習データ(教師データ)の作成からアルゴリズム開発、デバイスの実装など、幅広いソリューションを提供します。
研究開発
研究開発
刻々と変化する時流を読み解き、お客様のビジネスにイノベーティブな価値を提供する。 「人工知能の設計」「新規技術の開拓」「設計の効率化」を軸に、独自の研究開発を行っています。