Arduino (C++) ライブラリ
アルゴリズム、通信、ユーザー定義型、シリアライザ、ドライバ等の機能を提供しています。香川県といえばうどんということで、UdonLibrary と名付けました。
Okawa Yusuke
出身
岡山県岡山市
在籍
香川高等専門学校高松キャンパス
趣味
ロボット、プログラミングが好きです。最近は読書も始めました!高専ロボコンに参加しており、主に言語仕様、通信系に興味があります。
SNS
GitHub @CaseyNelson314
高専ロボコン
概要
毎年開催される NHK 全国高専ロボコン、関西春ロボコンに参加しています。制御班を担当しており、ロボットのファームウエア、基板を制作しています。
2022 年度 全国高専ロボコン / ミラクル☆フライ~空へ舞いあがれ!~
ロボットが飛行機を発射し、目標の台に着陸させることが課題でした。 ロボットを操縦するアプリケーションを制作し、全国大会に出場しました。
2023 年度 関西春ロボコン / Display Toys!
ペットボトルや帽子を指定の個所に設置することが課題でした。ロボットの移動経路をアプリであらかじめ指定することで、高速化を図りました。
2023 年度 全国高専ロボコン / もぎもぎ!フルーツGOラウンド
障害物を超えながら高所にあるフルーツを摘み取り、ゴールに運ぶことが課題でした。障害物の乗り越えを自動化することで、高速化を図りました。フルーツの回収は後輩作の操縦アプリで行いました。
2024 年度 全国高専ロボコン / ロボたちの帰還
月面探査機をモデルとしたテーマで、ロボットを飛翔させ、目標の台に着陸、帰還させることが課題です。現在、開発中です。
制御面の工夫
920MHz の無線通信を用いることで大会会場の電波干渉に強くしています。 オブジェクト指向に則ってコードを書くことで、ロボットの部品構成をプログラムに落とし込み、メンテナンス性を上げ突然の設計変更にも対応できるようにしています。 また制御対象ごとに基板を分割し、部品の再利用性を高めています。
使用技術
Autodesk Fusion360 / GitHub / Arduino / OpenSiv3D
概要
Arduino (C++) ライブラリ
アルゴリズム、通信、ユーザー定義型、シリアライザ、ドライバ等の機能を提供しています。香川県といえばうどんということで、UdonLibrary と名付けました。
開発経緯
開発時間の短縮、品質向上、再利用性の向上のために制作しました。
ライブラリ設計
オブジェクト指向の原則に則って設計を行っており、使用者が直感的に使用できるように設計しています。 モーター等のデバイスはクラスとして部品化され、部品を組み合わせることでロボットのプログラムを簡単に作成できます。
通信系の工夫
ROS に倣い、型を用いて通信を行っています。これによりバイト列を直接扱うことなく通信を行えます。 API を統一し、通信の種類によらず似たコードで通信を行えるようにしています。
CI/CD
GitHub Actions を用いて CI/CD を行っています。 GoogleTest、ArduinoCli を使用して、ユニットテスト、構文テストを行い品質を保証しています。 Doxygen を使用してソースコードからドキュメントを自動生成しています。
使用技術
C++ / Arduino / Doxygen / GitHub Actions / GitHub Pages