制御班とは
制御班はロボコンに必要な制御技術の開発、実装を行うチームです。一口に制御といってもその幅は広く、単に駆動制御を行っているだけではありません。画像認識や自己位置(ロボットのフィールド上の位置)の検出、物体射出の物理演算など多岐に渡ります。これらはROSと呼ばれるオペレーティングシステムを中心に構築するため、Linuxなどのスキルも得ることができます。
#ソフトウェア #コーディング #機械学習 #画像認識 #アプリ開発 #シミュレーション #Linux #Git(Github) #アルゴリズム開発 #通信 #ROS2
新入生の皆さんには聞きなれないと思われるワード、あるいは私たちが皆さんに伝えたいワードについて解説します。
ソフトウェア
ここでのソフトウェアとは、ロボコンでロボットを動かすソフトウェア全般を指します。世の中に公開されているオープンソースのライブラリなどもこれに含まれますが、それらを統合して私たちのロボットに搭載できるプログラムが最終的なソフトウェアとなります。ロボティクスの分野においてはハードウェアも含めた垂直統合がカギになるため、機構班や回路班とも相談しながらより最適化されたソフトウェアの開発を目指します。
コーディング
コーディングとはエディタを使ってコードを書いていくことを指します。私たちが開発するロボットのプログラムはC、Python、C++をメイン言語として扱います。担当する技術領域によってどの言語が専門になるかは異なりますが、おおよそどれか一つを習得すれば他の言語も扱いやすくなる傾向にあります。金沢工業大学では全学部でC、Pythonの授業が行われているため、制御班に所属すればあっという間に授業の範囲を終えてスキルを身に着けることができます。
機械学習
機械学習とは、大量の画像やデータから特徴量を判別し、判定対象のデータが元のデータセットに対しどれだけ一致しているかを判断するときに使います。ロボコンではオブジェクトの認識やフィールドの認識で使われており、検出速度が速いYoloなどの機械学習モデルがよく使われています。
画像認識
画像認識はカメラなどの入力装置を使い、機械学習などのモデルに通すことでロボットの目の前にあるオブジェクトの種類などを判別します。入力装置のカメラには一般的なRGBカメラが主流ですが、IntelのRGBD(=Depth=深度)カメラなども使われます。RGB情報に加え深度情報を付加することで、より正確に画像認識を行います。ロボコンでは照明環境や会場の映り込みなどが激しく、正確な画像認識を行うことは難しい領域ですが、データセットの強化などにより、チームメンバーはより厳しい環境で画像認識のエンジニアリングを行っています。
アプリ開発
ロボコンでのアプリはピンと来ないかもしれませんが、操縦用コントローラーの開発などに一役買っています。近年のロボコンでは競技ルールが複雑なうえ、ロボット自身のステータスを監視する必要性があることから、独自のアプリを搭載したスマートフォンをコントローラーに使う大学が増えてきています。私たちの大学では2023年からスマートフォンを使ったコントローラーの開発に取り組んでおり、毎年競技ルールに合わせてアプリの開発を行っています。
シミュレーション
シミュレーションとは、実機のロボットを動かす前に、仮想空間上でロボットの動作や制御を検証する手法です。実機での試験は機体の破損リスクや準備コストが伴うため、アルゴリズムの初期検証や極端な条件下での挙動確認にシミュレーションを活用することで、開発効率を大幅に向上させることができます。ROS2と連携できるGazeboなどのシミュレータが広く使われており、センサの挙動や物理演算も含めた高精度な検証が可能です。シミュレーションと実機の差異(Sim-to-Realギャップ)をいかに埋めるかが実践的な課題であり、私たちのチームでもその調整に継続的に取り組んでいます。

Linux
Linux(リナックス)はPC用OSの一部で、MacやWindowsのようなオペレーティングシステムを指します。オープンソースのOSであり、ターミナルから操作することを前提としたOSです。ロボティクス分野ではソフトウェアの開発がLinuxで行われていることが多く、Windowsユーザの学生はPCにデュアルブートすることで開発環境を整えています。
Git(Github)
作成したプログラムを分散型バージョン管理システムとして管理することを指します。主に有名なGithubを利用しており、チーム開発における標準的な環境は完全に整っています。特にGitとGithubの概念はロボティクス分野において非常に重要ですが、(ロボティクスや機械工などの)大学の授業では学ぶ機会がありません。これらを正確に扱え、実際に開発する経験は大変大きなスキルになります。
アルゴリズム
アルゴリズムとは、ロボットがある目的を達成するための処理の手順・論理を指します。単純にモーターを動かすだけでなく、「どのルートで移動するか」「センサの値をどう判断するか」といった意思決定の部分がアルゴリズムに当たります。ロボコンでは自律動作の精度が勝敗を左右するため、経路計画や状態遷移の設計といったアルゴリズムの品質が非常に重要です。私たちのチームでは競技フィールドの構造に合わせた独自のアルゴリズムを設計・実装しており、理論と実機検証を繰り返しながら改善を続けています。
通信
ここでの通信とは、ロボットと操縦者の間、あるいはロボット内部の各コンピュータ間でデータをやり取りする仕組みを指します。ロボコンでは有線・無線を問わず安定した通信が必要で、コマンドの遅延やパケットロスは直接的に操作性の低下につながります。私たちのチームではWi-Fiを介した無線通信を採用しており、競技会場のような電波が混雑した環境でも安定して動作するよう、チャンネル設計やネットワーク構成の最適化に取り組んでいます。また、コントローラーアプリとロボット間の独自通信プロトコルを設計・実装することで、低遅延かつ信頼性の高いデータ転送を実現しています。
ROS2
ROS2(Robot Operating System 2)とは、ロボットソフトウェア開発のための標準的なフレームワーク(枠組み)です。センサやアクチュエータ(動力装置)、制御プログラムを「ノード」と呼ばれる単位に分割し、それらをトピックと呼ばれるメッセージの流れで連携させることができます。大学の授業で触れる機会はほとんどありませんが、産業用ロボットや研究分野では事実上の標準となっており、習得することで即戦力となるスキルが身に付きます。私たちのチームでは複数のコンピュータにまたがってROS2を動作させる構成を採用しており、DDSと呼ばれる通信規格を通じてノード間の安定した連携を実現しています。
機構班
Mechanics
CADを用いた3Dモデリングから、NCフライス・3Dプリンタを駆使した部品加工まで。アイデアを物理的な「ロボット」へと具現化するプロセスを担います。
Explore Team
回路班
Circuit & Electronics
無数のセンサーとアクチュエーターを繋ぐ神経網。独自のマイコンボードからモータードライバまで、ロボットの安定動作に関わる技術の開発をします。
Explore Team