はじめに
はじめまして、社会人有志チーム「TERAKATA Robotics」です!
私たちは、6人の若手エンジニア(ハード2名、ソフト4名)で結成された2025年創立のAI×ロボット開発チームです。
「面白いものをつくる」をモットーに、日々の仕事で培った技術を持ち寄り、知見を広げて技術を磨き、仕事に活かす、好循環を目指しています.
私たちは約半年かけて自律走行ロボット「TERABO(テラボ)」をゼロから開発しました。
本連載では、私たちが挑んだ2つの大きなフィールド、
- 中之島ロボットチャレンジ2025(大阪・中之島公園/ATC)
- つくばチャレンジ2025(つくば市役所周辺)
における開発記録と、そこで得られたROS 2システムの現場ノウハウを全5回にわたって公開します。
失敗(中之島でのリタイア)と成功(つくばでの500m完走 ※確認走行区間のみ)、その両面からリアルな知見をお届けできればと思います。
第1回は、私たちのシステムの土台となる「ハードウェア構成」について詳しく解説します。
開発コンセプト:2つの「目」を持つロボット
実環境で自律移動を行う上で、私たちが最も重視したのがセンシングの信頼性です。
公園の遊歩道や市街地の歩道は、実験室のきれいな床とは違います。段差、縁石、点字ブロック、そして行き交う人々。これらを確実に認識するために、TERABOは2つのLiDARを搭載するDual LiDAR構成を採用しました。
1. Main LiDAR: VLP-16 (Velodyne, 3D)
- 設置位置: ロボット最上部(地上高 約1 m)、水平設置。
-
主な役割:
- 3D SLAM (Simultaneous Localization and Mapping): 周囲360度の3次元点群を取得し、Scan Matchingによる自己位置推定を行います。
- 動的障害物検知: 遠方(〜50m)および左右から接近する歩行者や自転車を早期に発見・追跡します。
-
選定理由:
つくばのような開けた環境では、2D LiDARだけでは特徴点が不足し、自己位置を見失う(Kidnapping)リスクがあります。VLP-16ならば、建物の壁面だけでなく、街路樹の幹や看板など、高さ方向の特徴点も捉えられるため、堅牢なLocalizationが可能になります。
2. Sub LiDAR: UST-30LX (Hokuyo, 2D)
- 設置位置: ロボット下部(地上高 約20cm)、水平設置。
-
主な役割:
- 足元の障害物検知: 縁石、低木、パイロンなど、VLP-16の死角となるロボット足元の低い障害物を監視します。
-
技術的な狙い:
VLP-16は高い位置にあるため、どうしてもロボット直近の足元に死角が生まれます。「VLP-16を斜めに取り付けて足元を見る」という手法もありますが、そうすると遠方が見えなくなりSLAMの性能が落ちます。「SLAM用」と「近距離障害物用」でセンサーを物理的に分けることで、それぞれの性能を最大限に発揮させる設計としました。
システム構成図
TERABOの内部システムは、Ubuntu 22.04 LTS と ROS 2 Humble で統一されています。
Compute Unit: ノートパソコン
メインの計算機には、ノートパソコン(メモリ 16GB〜) を採用しました。
特別なスペックのPCではなく、市販のノートパソコンをそのまま使用しています。
- Dockerとの親和性: 詳しくは第2回で解説しますが、開発メンバーのPCで同じDockerイメージをそのまま動かせるため、環境構築の手間がありません。
その他のハードウェア
- 足回り: 独立二輪駆動。
- モータードライバ: Oriental Motor社製のBLVシリーズをそのまま採用し、Modbus対応のROS 2ドライバで制御しています。
- エンコーダ: Arduinoを用いてエンコーダパルスをカウントし、シリアル通信でPCへ送信する方式としました。
- IMU: 9軸センサーを使用し、オドメトリの回転成分のドリフトを補正します。
- バッテリー: 24V系のバッテリーを採用。安全性が高く、急速充電にも対応しています。
苦労話:ハードウェアの落とし穴
最初から順風満帆だったわけではありません。初期の試作機では以下のような失敗がありました。
-
IMUノイズによるオドメトリ不全:
安価なIMUを使用したところ、エンジンの振動や電気的ノイズの影響を強く受けてしまい、オドメトリ(自己位置推定)が機能しない事態に陥りました。
→ 教訓: 足回りの制御においてIMUの信頼性は命綱です。センサーの選定と取り付け位置、そしてフィルタリング処理の重要性を痛感しました。 -
死角による衝突事故:
開発当初はVLP-16(Main LiDAR)の1台構成でした。しかし、高い位置にあるLiDARでは足元の縁石や低い障害物が死角に入ってしまい、衝突しそうになることが何度もありました。
→ 対策: 足元監視用の2D LiDAR(UST-30LX)を追加し、現在のDual LiDAR構成へと進化しました。これにより、足元の安全性と遠方の自己位置推定を両立できるようになりました。
まとめ
TERABOは、「3D LiDARの目」と「2D LiDARの目」、そして「誰でも簡単に動かせるノートパソコンによる開発環境」を持つ自律走行ロボットです。
一見オーバースペックに見えるかもしれませんが、変化の激しい実環境で「確実に動く」ためには、これくらいの冗長性とスペックの余裕が必要でした。
次回は、このハードウェアの上で動くソフトウェア開発環境について。
「メンバ一6人のPC環境がバラバラでも大丈夫!」な、Dockerによる最強の開発環境をご紹介します。お楽しみに!
リンク
最新の活動状況や、今回紹介した技術のソースコードは以下で公開しています。
興味を持っていただけた方は、ぜひフォロー&スターをお願いします!
- Website: https://sites.google.com/view/terakata-robotics
- X (Twitter): https://x.com/terakata_robot
- Instagram: https://www.instagram.com/terakata_robotics/
- GitHub: https://github.com/TERAKATA-Robotics/terabo-navigation