自己紹介

Okawa Yusuke

Okawa Yusuke

(うどん | みかん) 人

愛媛大学3年。香川高専からの編入生で、高専時代は全国高専ロボコンに制御班として参加し、ロボットのファームウェアと UdonLibrary という部内ライブラリを書いていました。

クラス設計・ライブラリ設計・C++ テンプレートメタプログラミングが好きで、最近は CPU・OS・コンパイラまわりや Web 系にも手を伸ばしています。

経歴

  1. Arduino 向けライブラリ開発

    香川高専高松キャンパス · 2022年9月 – 2026年3月
    C++17 Arduino Teensy ESP32 RP2040 GitHub Actions Doxygen CMake

    UdonLibrary という Arduino 向けライブラリを作っていました。オブジェクト指向の原則に則って設計を行っており、ブロックを組み合わせるようにファームウエアを書ける設計にしています。2022から現在までの香川高専高松キャンパスの全チームで用いられています。

    設計思想・背景

    ロボコンでのソフトウエア開発を続ける中で、「物理部品の階層構造をインスタンス階層にそのまま写す」という設計思想に自然と辿り着きました。この設計思想は部内でも採用されており、本ライブラリはその最下層(モーター、エンコーダ、通信ドライバなど)を提供する位置付けにあります。

    後にドメインモデリングやDIなどを組み合わせた考え方であることを知りましたが、組み込み・ロボット制御でこの思想を基にしたライブラリは見当たらず、当ライブラリの特徴的な部分になっています。

    機能・特徴

    • アルゴリズム(PID / 移動平均 / 独立ステア最適化 他)
    • 通信(CAN / I2C / LoRa / UART / 自作シリアライザ 他)
    • ドライバ(モーター / ロボマスモーター / 9軸ジャイロ / 7セグLED 他)
    • ユーザー定義型(2次元ベクトル / クオータニオン / 疑似静的可変長配列 他)
    • CI(コンパイルチェック / 単体テスト / ドキュメント自動生成)
    • ドキュメント(APIリファレンス / サンプルコード / 開発ガイド 他)
  2. 全国高専ロボコン・関西春ロボコン

    香川高専高松キャンパス · 2021年4月 – 2026年3月
    C++ Arduino Teensy 920MHz CAN I2C OpenSiv3D

    制御班として参加しました。C++ でロボットのファームウエア、ロボットの操縦用デスクトップアプリの開発をしていました。

    参加大会

    • 2024 年度 全国高専ロボコン / ロボたちの帰還
      月面探査機をモデルとしたテーマで、ロボットを飛翔させ、目標の台に着陸、帰還させることが課題でした。

    • 2023 年度 全国高専ロボコン / もぎもぎ!フルーツGOラウンド
      障害物を超えながら高所にあるフルーツを摘み取り、ゴールに運ぶことが課題でした。障害物の乗り越えを自動化することで高速化を図りました。

    • 2023 年度 関西春ロボコン / Display Toys!
      ペットボトルや帽子を指定の個所に設置することが課題でした。ロボットの移動経路をアプリであらかじめ指定することで、高速化を図りました。

    • 2022 年度 全国高専ロボコン / ミラクル☆フライ ~空へ舞いあがれ!
      ロボットが飛行機を発射し、目標の台に着陸させることが課題でした。

    制御面の工夫

    920MHz の無線通信を用いることで大会会場の電波干渉に強くしています。オブジェクト指向に則ってコードを書くことで、ロボットの部品構成をプログラムに落とし込み、メンテナンス性を上げ突然の設計変更にも対応できるようにしています。

  3. チームラボ株式会社 インターンシップ

    teamLab Inc. · 2024年8月 – 2024年8月
    (NDA)

    2週間、組み込み開発の一部に携わらせていただきました。

  4. 三次元電界シミュレータ開発

    香川高専高松キャンパス · 2021年4月 – 2025年3月
    TypeScript Three.js GitHub Pages GitHub Actions

    三次元空間で電気力線のシミュレーションを行うウェブサイトを制作していました。電荷の移動、パラメーターの変更ができ、リアルタイムにシミュレーションを行えます。

    電磁気学の授業が難しく、シミュレータを作ることで理解を深めようと思い作りました。結果的に当学年の授業はよく理解できましたが、次年度で磁界にやられて落単しました。電磁気学の授業の資料として使って頂いてます。

    描画方法は原始的で「電界ベクトルを 1 ステップずつたどる数値積分」で生成しています。また点電荷・線電荷・球電荷など 7 種類の電荷を抽象クラスで統一することで、電荷の種類に依存しない電界ベクトル合成を行っています。

趣味

  • ものづくり全般 — プログラミング / 設計 / 木工
  • 散歩・サイクリング・旅行
  • 読書