ユニバーシティ・プログラムを用いて開発を行いました!
STマイクロエレクトロニクス株式会社様の「ユニバーシティ・プログラム」を活用させていただき、STM32デバイスやNucleoをご提供していただきました!
記事執筆が遅くなってしまいましたが、NHK学生ロボコンに向けて以下の開発を行いました。
- CAN通信によるオドメトリボード
- ロボコンで利用しやすいようNucleoを拡張したボード
- Ethernet UDP通信の導入に向け、micro-ROSによる通信テスト
まずCAN通信によるオドメトリボードについてです。
この基板は、BNO055 (IMU) と通信して機体の姿勢角の取得と、ホイールをインクリメンタルエンコーダに接続してフィールド床面に接地させるように機体に搭載する「接地エンコーダ」を読んで機体の移動速度の取得を行い、それらを基にオドメトリ計算を行うために作製しました。マイコンはSTM32F303K8T6を使用しており、他デバイスとの通信をCAN通信により行い、得られたフィードバック値の送信及び制御コマンドの受信を行います。以前までは、ノイズ耐性の低いIMUとのI2C通信を、基板間の長い配線により行っていたところを、基板内での通信に留めて通信の安定化を図るために、さらに、繰り返し再利用されるオドメトリ計算を回路基板ごとパッケージ化し、開発速度の向上と分散制御の促進を図るために設計しました。
次にNucleoを拡張したボードについてです。

この基板ではNucleoを装着することで、CANやUARTなどの各種通信規格に加えて、PWM制御やエンコーダの読み取り機能など、Nucleoに搭載されている様々な機能をEHコネクタ経由で利用できるよう設計されてます。通常、新しくマイコン搭載基板を作製する際、必要な機能も選定や周辺回路の設計、通信規格への対応など、電子回路の知識が多く必要になります。そのため、基板の設計に加え、関連技術の習得にも多くの時間と労力がかかってしまいます。一方この基板はNucleoを使用するため、開発の大部分を行わずとも、多くの機能を網羅的に使用することが出来ます。これにより、機体の制御を1枚の基板で実現でき、開発期間と設計コストを下げることが可能です。また、回路基板や通信規格の知識が少ない新入生でも、簡単に機体の制御システムを構築することができるようになっています。
最後にUDP通信の導入についてです。

KURTではこれまで、NUCLEO-F446RE+拡張基板をメインボードとして用いるほか、PCからのアクチュエータ制御やセンサー値の取得を行うサブボードとしても運用してきました。しかし、サブボードとして運用する際、PCと基板間の通信にCANを用いると、USB-CANアダプタの挙動が不安定になる問題や、STM32のCANバス1系統がPCとの通信に占有されてしまう問題がありました。
当チームでは近年、Robomaster C610やC620といったCAN通信駆動のアクチュエータを利用しています。CANバスを2系統搭載するNUCLEO-F446REでは、実質1系統しか制御に使用できず、大量のアクチュエータを用いる学ロボ本番ではNUCLEOが2枚必要でした。
しかし、今回ご提供いただいたNUCLEO-F767ZIを導入し、PCとの通信をUDP化することで、CANバスをPCとの通信に割く必要がなくなります。搭載されている3系統のCANバスをすべてアクチュエータ制御に利用できるため、より多くのアクチュエータを制御可能になります。さらに、CANバス1系統あたりのアクチュエータ接続数を分散・削減できるため、通信安定性の向上や、基板スペースおよび配線量の削減につながると期待しています。
現時点ではNUCLEO-F767ZI用の拡張基板が作製前のため、実機でのCANを用いたテストは実施できていませんが、まずはROS 2との親和性が高いmicro-ROSによるネットワーク通信の安定性を評価しました。2枚のボードをスイッチングハブを介して接続し、ボタン入力やカウンター値をトピック通信で送受信するテストを実施したところ、長時間動作させてもデータの取りこぼしはなく、極めて良好で安定した結果を確認できました。
今後はこの結果をもとに拡張基板の製作を進め、実際のロボットへの実装・実戦投入を目指します。
最後になりますが、今回ご支援をいただいたSTマイクロエレクトロニクス様に、心より感謝申し上げます。ご提供いただいた機材を活用し、次回の大会ではより高度で安定した機体制御を実現できるよう、チーム一同開発に励んでまいります。