2026年11月3日火曜日

中部地区大会

 中部地区大会に参加。走行速度自体は北信越と大差ないが、上位勢のトラブルもあり2位だった。疲れてロボットを会場に置き忘れかけてしまった…中部支部の皆様ありがとうございました

前回の北信越のログから、大会の木の路面では速度を出そうとするとタイヤが空転することが分かっていたので、吸引周りについていくつか策を試した なお、タイヤ荷重は1kg (車重除く)程度まで改善したが、相変わらず上位陣の最低パラメータ以下の速度域でタイヤの空転が発生している

明確に有効だった施策:

  • モータを1020サイズの強力なモータに変更
  • タイヤを硬くして、吸引がタイヤの変形で打ち消されないようにする
    • タイヤにかかる荷重増加という意味では明確に効果あり。ただし、タイヤ自体の特性も変わるためグリップ性能がどう変化するのかは不明

    大会本番で使ったが、(モータサイズを大きくしてから比較実験していないため)効果があるのかは不明な施策:

    • 機体の剛性を強化して、吸引がシャーシの変形で打ち消されないようにする
    • 吸引口にシュラウドを付けて、逆流を防ぐ
    不採用とした施策:
    • ファン厚を2mm→1mmに薄型化
      • 回転数の高速化はできる一方、空気の掃き出し量が下がり、自分のロボットの吸引スカートだと吸引状態に遷移しない問題があったため、見送り。ファン底部とマウント面の距離が離れすぎたのがいけないのかも。(他の人の事例を見る感じだと)ファンとファンマウントの間のクリアランスやスカートの設計次第では効果があるのかも 

    また、大会前日に悪あがきしようとして吸引スカートを剥がし、結局あきらめて戻したところ、なぜか吸引力が200g程度上がった。原因が分かれば今後に活かせるが、今のところ謎。あと、吸引力が上がった一方で吸引状態に遷移しないケースの発生頻度が上がってしまっている。

    2026年9月27日日曜日

    北陸信越地区大会2026

     北陸信越地区大会に初参加。最近はロボトレースしか触っていないためロボトレースのみエントリー。

    走行自体はロボトレースの速度インフレについていけていない感じでしたが、色々会話させていただき、取り組むべき課題が明確になりました。

    2025年11月3日月曜日

    中部地区大会2025

     (関西地区大会とreRo杯のこと書くの忘れてた… 関西は昨年と同様大盛況だった。reRo杯は別競技が同時開催されているなど、楽しい大会です。)

    2022年以来、3年ぶりに中部地区大会に参加。いつものマイクロマウス・ロボトレーサに加えて、カメラとJetsonを搭載したロボトレーサもエントリー。ロボトレースで2位に入り、マウスとカメラトレーサも特別賞をいただいた。

    それぞれ課題点が判明したので、(すぐはちょっと難しいが)対応したい。

    カメラ搭載ロボトレーサ JetRT

    前回のreRo杯では1.4kgの文鎮になってしまっていたが、今回は何とかライントレース、マーカー検出等ロボトレース完走に必要な最低限を実装したうえで臨んだ。R10直後にコーナーマーカー、ゴールマーカーが10cm間隔で連続するところが難しく(誤ってクロスとして検出してしまう)、ひやひやしたが、何とか完走できた。Jetsonを活用しようとするチャレンジ精神を評価いただき、特別賞をいただいた。

    ロボトレーサ L1S

    吸引力を4.2V相当でセーブしていたのを6Vまで引き上げた。ただ結局完走できる速度設定の限界は変わっていない。色々あって本当にただ上げただけになってしまったので余裕ができたらいろいろ調べたい。2位。

    マイクロマウス β2

    ターン連続の後の斜めで引っ掛かり、かなり速度を落としたパラメータのみで完走。かなり速度を落としたパラメータでも結構怪しかった。要検証。非中部支部員の中で(3番目に)良い成績だったということで特別賞をいただいた。

    大会を運営してくださった皆様、ありがとうございました。

    2025年11月2日日曜日

    Jetson Orin Nano (Super) 開発者キット セットアップメモ

    JetPack のインストール

     https://www.jetson-ai-lab.com/initial_setup_jon.html に従う。micro SDカードは128GBのものを使用 

    ArduCam用のライブラリのインストール

    https://docs.arducam.com/Nvidia-Jetson-Camera/Jetvariety-Camera/Quick-Start-Guide/ に従う。 


    OpenCV 4.11 等を使う場合、サンプルコードそのままだとuint8型の配列として結果が返ってくるので、後処理でuint16配列に変換。

    if frame.dtype == np.uint8 and frame.size == int(w) * int(h) * 2:
        frame = np.frombuffer(frame, dtype=np.uint8)
        frame = frame.view(np.uint16).reshape((int(h), int(w)))

    大会会場でラップトップPC→JetsonのSSH接続

    自宅で使用しているルーターを持ち運び、自宅と同様の無線LAN環境を構築することで対応。インターネット接続が必要な作業はスマホのテザリングで対応。 

    Docker

    2025年6月時点の最新のjetpack だと iptable 関係のエラーが出るので、docker をダウングレードして対処。 https://forums.developer.nvidia.com/t/error-with-nvidia-container-runtime-with-docker-integration-on-agx-orin-with-jp6-2/324558/16 

    sudo apt-get install -y docker-ce=5:27.5.1-1~ubuntu.22.04~jammy --allow-downgrades sudo apt-get install -y docker-ce-cli=5:27.5.1-1~ubuntu.22.04~jammy --allow-downgrades sudo apt-mark hold docker-ce=5:27.5.1-1~ubuntu.22.04~jammy sudo apt-mark hold docker-ce-cli=5:27.5.1-1~ubuntu.22.04~jammy

    dusty-nv/jetson-containers: Machine Learning Containers for NVIDIA Jetson and JetPack-L4T を使用し以下のオプションでイメージをビルドすることで、ROS2-jazzy や OpenCV (CUDAあり) が使用可能なイメージを作成 (numbaやpytorch、gsplat はただの個人の趣味で、今のところロボットとしての動作には使っていない)。
    LSB_RELEASE=24.04 jetson-containers build --name=my_ros2 pytorch numba opencv gsplat ros:jazzy-desktop


    GPIOの権限については、ホスト側でgpio グループのGID を201000 (自動設定されるGIDと被らない)に設定したうえで、コンテナ側のユーザーubuntu (1000:1000)を2010000のグループに設定することにより、 Docker 内の一般ユーザーubuntuからGPIOを叩くことが可能になる。

    ハードウェア仕様


    PWMの有効化

    sudo /opt/nvidia/jetson-io/jetson-io.py で設定できる。
    カメラドライバとの共存が難しかったため、以下のGPIO Output と同様にレジスタを直接操作することで設定。REVD0 を GP に、 PUPD を PD に、 GPIO_SF_SEL を SFIO に設定すればいい。

    変調周波数がかなり離散的にしか設定できず、ステッピングモータの駆動(パルス信号生成)に使うのは厳しかったため、最終的にモータ駆動用にESP32を外付けした。今回の用途には合わなかったが、DCモータの駆動や回転速度を気にしないステッピングモータ駆動であれば十分使えると思う。


    GPIO Output の有効化


    リファレンスマニュアルを見てGPIO Output を有効にしたいレジスタのアドレスを特定し、busybox devmem でレジスタの値を直接書き換える。
    1. Carrier Board Specification と Pinmux Config Template のConsumer Usage を押すと出てくる一覧を確認し、設定したいピンのTechnical Reference Manual (TRM) での名称 (Pin 31 の場合、SOC_GPIO33)を特定
    2. TRM 内で検索し、GPIO設定用レジスタのオフセット (Pin 31の場合 0x70) を特定



    2025年3月1日土曜日

    全日本大会2024

    今年度の全日本大会が終了。マイクロマウスは3位、ロボトレースは4位でした。楽しい大会を開催していただき、ありがとうございました。また、試走会・reRo杯という形で調整・交流の機会を設けてくださった大阪電通大 自由工房、千葉工大 reRoの皆様にもお礼申し上げます。これらなしには今回の結果を残すことはできませんでした。

    マイクロマウス

    3・5走目の走行パラメータは以下の通り。上位2名以外にも走行性能が高いマウスは複数いたため、順位については運がよかった側面が強いですが、大会本番で完走できたことはうれしく思います。

    Parameter NameValue
    Acceleration [m/s^2] (Straight)35.00
    Acceleration [m/s^2] (Diagonal)30.00
    Max speed [m/s] (Straight)6.00
    Max speed [m/s] (Diagonal)5.50
    45 deg turn [m/s] (to diag.)1.55
    45 deg turn [m/s] (from diag.)1.48
    90 deg turn [m/s]1.74
    90 deg turn [m/s] (diag. to diag.)1.38
    135 deg turn [m/s] (to diag.)1.51
    135 deg turn [m/s] (from diag.)1.53
    180 deg turn [m/s]1.60

    良かった点

    • 位置ずれに関するフィードバックのかけ方を素直な方法に変更したことにより、目標経路への追従性能が向上した。具体的には Fantom3rd の公開パラメータより少し遅いターン速度(V90を除く)であれば迷路の難易度によらず安定して完走できるようになった。

    要改善点

    • 未清掃状態の自宅迷路で調整を行うなどホコリ対策をした上で大会に臨んだが、本番のホコリに耐えられず、探索完了までに3回エラー停止してしまった。
      • 実際にこけているシーンを確認すると、制御が破綻しているのではなくターン後の前壁判定でエラーを起こしている。前壁の判定方法を改良することで対策できるのではないか。
      • エラー停止には至らなかったものの、制御が発散しかけている箇所があった。非吸引時は過度なトルクによる滑りを防止するためにモータの出力を制限しているが、これに加えてアンチワインドアップを導入すると制御を安定化できるのではないか。
      • 横滑り検知か時間経過に応じて走行速度を下げるべきではないか
    • 駆動モータの出力を100パーセント使い切れていない。
      • ターン速をさらに上げようとすると軌道がふくらむ=吸引力が不足しているのではないか。吸引用モータを駆動用と同じ高出力なものにすれば改善するのではないか。
      • そもそも今走っているターン速での挙動も今使っているコーナリングフォースのモデル(スリップ角に比例)とかなりずれている。高速域での挙動のモデル化が真に重要な問題なのではないか。
    • 他の上位のマウスと異なりレーンチェンジではなく外周の長い直線を選んでいたが、あれは本当に速いのか
    • 探索時の、最速経路になりえない部分の枝刈りの強化

    ロボトレース

    前年度と変わり映えのしない機体・走りではあったが、東日本前に修正した経路生成プログラムにより無理のないショートカット経路が生成できるようになった。ただ、DCX10L 4.5V版と後付けの吸引機構では根本的にパワーが足りない。以下の表において横Gが6Gとなっているが、実際にはトルク不足がボトルネックになっておりほとんどのターンで6Gに全く届いていない。

    Parameter NameValue
    Shortcut margin [cm]6.5
    Acceleration [m/s^2]16.0
    Max speed [m/s]7.0
    Lateral g Force [G]6.0


    2024年12月23日月曜日

    東日本地区大会2024

    東日本地区大会に参加。かなりタイトな日程ではあったが全日本大会出場に必要なポイントを稼ぐためにトライしてみた(大会前:RT0pt、MM1pt)。


    ロボトレースは当日1回目の試走で吸引ファンが故障。また、その修理のためにはんだごてをあてていた際に足回りのギヤを溶かしてしまった。今回は何より完走することが大事だったため、それ以上ハードに手を加えることは諦め、急遽そよ風吸引(実質無吸引)・2輪で出ることにした。1.0m/sで一走目を無事走り切り、1pt確保。試走時の故障のリスクを極力避けるためにショートカット走行については(前日に行った変更点の確認も含め)一切試走・調整は行わず、テキトーに速度を落とした設定を入れるだけ入れて臨んだが、実質無吸引ショートカット走行でも完走。最終的に5位だったらしい。2pt。速いわけではなかったが、ショートカット機が2台しかいなかった(もう一台は某チャンピオン)ということで他の競技者がショートカット走行に取り組むよう促すという意図で特別賞を頂いた。


    マイクロマウスは獲得ポイント数も非常に重要(ファイナル・セミファイナルの判定に使われる)なため、さらに保守的な戦略を取った。小手先で何かやるよりも今あるソフトで出せる100%を出すことに集中する方がポイント獲得数の期待値が高いと判断し、何かを変えることはせず、ジャイロ・壁センサ等の基本的な確認・調整だけを行い出走(何かを更新して収束するまで調整しきる時間がないだけとも言う)。青空には僅差で、魔王様と勇者様には大差で負けたが人ベースで4位。多分4pt獲得。rero杯での調整が実り、公式大会でもまともに走ることができたので、そこは素直にうれしい。

    結果的にどちらも目標としていたポイントを取ることができた。他の競技者の調子が関わってくるポイント≒順位は究極的には運でしかないが、目的を達成する確率をできる限り上げる方策は取れていたと思う。

    2024年12月21日土曜日

    移動平均経路生成の修正

    スマホのトラブルの後もパソコンの異常に遅い挙動に苦しんだりしたが(今必要ないスタートアップアプリを全て無効化することでとりあえず解決?したように見える。)、とりあえず移動平均でショートカットしすぎる経路が生成されないようになった...と思う。多分。明日再確認と試走コースを使ったテストを行う。




    マウスは、、、ジャイロの感度等の基本的な部分の調整だけは忘れず行おうと思います。