メインコンテンツまでスキップ

ソフトウェア変更履歴とフィードバック

メールまたはLimelightフィードバックリポジトリに問題点や機能リクエストを提出してください。

Limelight OS 2024.10.2 (2024年10月28日)

Python Snapscript 修正 (提供 - FTC チーム 23251 TRIPLE FAULT)

  • Control HubでLimelight3Aを使用する際のPython出力のフリーズが解消されました
  • Pythonパイプライン間の切り替え時のPython出力のフリーズが解消されました

MT2 エッジケース

https://github.com/LimelightVision/limelight-feedback/issues/23

  • ロボットなしでMT2をテストする際、幾何学的に不可能な状態が発生しやすい状況がありました
  • このエッジケースではmt2のbotposeがゼロにならず、カメラポーズがゼロになっていました
  • このエッジケースが検出された場合、ロボットは(0,0,0)に配置されるようになりました

固定IPアドレス設定

https://github.com/LimelightVision/limelight-feedback/issues/25

  • IPアドレスが.1-.10または.20-.255で終わる場合、FMSや他のデバイスと干渉する可能性があるため、警告を追加しました
  • 2024.10.1では、アドレス設定が「自動」に設定されている場合でも、UIが固定IPが設定されているように表示されることがありました

STDDevs NetworkTables

https://github.com/LimelightVision/limelight-feedback/issues/24

  • NetworkTablesの"stddevs"にmt1とmt2のすべての標準偏差が含まれるようになりました(double配列、12要素)

モデルアップロードのエッジケース

  • 分類器モデルが検出器パイプラインにアップロードされた場合、画像に「check model」が表示されます
  • 検出器モデルが分類器パイプラインにアップロードされた場合、画像に「check model」が表示されます

Limelight OS 2024.10.1 (9/15/24)

Limelight 3A アップデート

  • デフォルトのカラーバランス値を更新
  • デフォルトのAprilTagサイズ設定を101.6 mmに更新
  • デフォルトのビデオストリームフレームレートを30FPSに削減
  • ストリームビットレートを削減するためにビデオストリームの圧縮を若干増加

AprilTagサイズ警告

  • アップロードされたフィールドマップのサイズと設定されたAprilTagサイズが一致しない場合、フィールドスペースビジュアライザーに警告を追加。
Example banner

CameraPose_RobotSpace バグ修正

  • NetworkTables/LimelightLib/RESTからUIの設定されたカメラポーズのオーバーライドが再び正しく動作するようになりました。

Limelight OS 2024.10 (2024年4月9日)

FTC向けLimelight 3Aサポート

  • Limelight3Aが完全にサポートされました
  • 3AはFTCとFRCの両方で使用可能です

AprilTagマップの更新

  • マップエディターが標準およびダイヤモンドFTCマップの生成に対応
  • LLOSウェブインターフェースがアップロードされたマップに基づいて適切なフィールドタイプを自動表示
  • すべてのフィールドビジュアライザーでアライアンスゾーンとFTCタイルグリッドを表示
  • 3Dビジュアライザーのパフォーマンスが向上

ControlHubとRoboRioでのUSB Limelightサポート

  • FTCチームはControl Hub上で1台のUSB対応Limelightを使用可能
  • FRCチームはRoboRio上で最大16台のUSB対応Limelightを使用可能。USB LimelightはイーサネットLimelightと同様にネットワークテーブルに自動的に登録されます
    • 複数のUSB Limelightを使用するには、各LLに固有のUSBインデックスと固有のホスト名を設定してください

USB接続の改善

  • MacOSがインターネットアクセスにUSBイーサネットLimelightインターフェースを使用しなくなりました
  • WindowsがインターネットアクセスにUSBイーサネットLimelightインターフェースを使用しなくなりました

REST APIの更新

  • update-robotorientation POSTリクエストを修正
  • MT2がNetworkTablesなしで完全にアクセス可能に
  • update-robotorientationルートが使用されると、再起動するまでNetworkTablesの方向更新が無効になります

Limelight OS 2024.9.1 (7/7/24)

  • マップビルダーツールがWPILibの.json AprilTagレイアウトを受け入れ/変換できるようになりました
  • Python SnapscriptsにAprilTag3を追加 (from apriltag import apriltag)
  • サンプルはGitHubのexamplesリポジトリを参照してください
  • Windows上でのUSB接続ゲートウェイの問題を修正しました

モザイクのスクリーンショット:

Limelight OS 2024.9 (2024年5月7日)

MegaTagのアップグレード

  • Limelight OSはNetworkTables 4.0に移行しました

  • MegaTag2は、NT4のgetAtomic()を使用してroboRIOからタイムスタンプ付きIMUの更新を取得するようになりました

  • タイムスタンプ付き画像フレームは、補間が実行される前に、最も関連性の高い2つのIMUサンプルと照合されます

  • NT4のflush()がLimelightLibに追加されました。古いバージョンのLimelight OSにFlush()を追加すると、2024.9に近い性能が得られますが、NT4は常に高い精度を保証します

  • MT2のビジュアライザーロボットは緑色のバンパーになり、MT1のビジュアライザーロボットは黄色のバンパーを使用します

  • メトリクスは折りたたみ可能になり、仮想ロボットを非表示にすることができます

  • 以下の動画は、ロボット側でflush()を使用する2024.9のMegaTag 2(緑のロボット)が、Flush()を使用しない2024.5のMegaTag2(赤のロボット)よりも安定していることを示しています

USB IDと新しいUSB IPアドレス

  • 設定ページで「USB ID」を設定することで、任意のシステムで複数のUSB Limelightを使用できます
  • システムに表示されるUSB-Ethernetインターフェースは、USB IDによって決定されるIPアドレスを使用します
  • Linux/Android/Macシステムは、デフォルトで172.29.0.0/24サブネットを使用するようになりました
  • Windowsシステムは、デフォルトで172.28.0.0/24サブネットを使用するようになりました
  • USBIDが設定されている場合、サブネットはLinux/Android/Mac用に172.29.(USBID).0/24、Windows用に172.28.(USBID).0/24に変更されます
  • ホスト名とUSB IDを調整することで、例えば4台のLimelightデバイスを1つのUSBハブに接続できるようになりました

CPU神経分類器

  • Google Coralなしでニューラル分類を有効にするために、CPU .tflite分類器をアップロードできます。LL3バリアントでは15-18 FPSが期待できます
  • 2024.9にはデフォルトのCPU分類器が付属しています
  • この機能を有効にするには、分類器ランタイムを「CPU」に設定してください

CPUニューラル検出器

  • Google Coralなしでニューラル検出を有効にするために、CPU .tflite検出器をアップロードできます。LL3バリアントでは10 FPSが期待できます
  • 2024.9にはデフォルトのCPU検出器が付属しています
  • この機能を有効にするには、検出器ランタイムを「CPU」に設定してください

Limelight OS 2024.8 (2024年3月7日)

  • JSONの結果オブジェクトにPythonの出力(PythonOut)、tx、ty、txnc、tync、taを追加
  • MT2のレイテンシー補正をさらに改善

Limelight OS 2024.7 (5/21/24)

  • Linux 6.6 へのアップグレード

バグ修正

  • ビジョンパイプライン変換の修正
  • キャリブレーションアップロード、スナップショットアップロード、ニューラルネットワークアップロードの修正

Limelight OS 2024.6 (5/8/24)

LimelightLib Python

  • pip install limelightlib-python
  • USBおよびEthernet Limelightと任意のプラットフォームで対話できるPythonライブラリです。
  • WebUIを使用せずに完全なLimelight設定が可能です。
  • パイプライン、ニューラルネットワーク、フィールドマップなどをアップロード
  • オプションの「ディスクに保存」機能付きで、パイプラインパラメータをリアルタイムに変更可能
  • カスタムPython入力データの投稿、ロボットの向きの設定など。

MegaTag2の改良

  • MegaTag2のジャイロ遅延補正が改善されました。さらなる改善にご期待ください!
  • UIに「ジャイロ遅延調整」スライダーを追加。MegaTag 2の遅延補正を手動で調整するには、ロボットを回転させ、回転中のローカライゼーション結果が完璧になるまでスライダーを調整します。

標準偏差メトリクス

  • 3Dフィールドビジュアライザーに、MegaTag1とMegatag2のx、y、yawの標準偏差が追加されました。

新しい「フォーカス」パイプラインタイプ

  • 「フォーカス」モードでは、ストリーム品質スライダーと切り取りボックススライダーにアクセスできます
  • レンズを回転させて「フォーカス」スコアを最大化します。
  • カメラが固定位置にある場合、1分未満で完了します。固定/マウントされたLimelightでのフォーカス調整を推奨します。

新しい「バーコード」パイプラインタイプ

  • 1280x800で50-60FPSのマルチQRコード検出とデコード
  • 1280x800で50-60FPSのマルチDataMatrix検出とデコード
  • 1280x800で30FPSのマルチUPC、EAN、Code128、PDF417
  • バーコードデータ文字列は「rawbarcodes」nt配列に投稿されます。
  • バーコードパイプラインは、tx、ty、ta、tcornxyなどのすべての2Dメトリクスを設定します。

完全に新しいREST API

  • https://docs.limelightvision.io/docs/docs-limelight/apis/rest-http-api
  • REST / HTTP APIが完全に再構築されました。
  • REST APIを使用すると、WebUIを使用せずに完全なLimelight設定が可能です。
  • パイプライン、ニューラルネットワーク、フィールドマップなどをアップロード
  • オプションの「ディスクに保存」機能付きで、パイプラインパラメータをリアルタイムに変更可能
  • Python入力データの投稿、ロボットの向きの設定など。

UIからカメラ向き設定を削除(破壊的変更)

  • これは「ストリーム向き」オプションに置き換えられました。キャリブレーションとターゲティングはこのオプションの影響を受けません。
  • 新しいオプションはストリームにのみ影響します。上下反転、90度時計回り、90度反時計回り、水平ミラー、垂直ミラー
  • チームは回転したカメラを使用する際に、必要に応じてtxとtyを手動で反転する必要があります。

GRIPサポートの削除(破壊的変更)

「ドライバー」ゼロ処理モードの削除(破壊的変更)

  • これは「ビューファインダー」パイプラインタイプに置き換えられました

「ビューファインダー」パイプラインタイプの追加

  • ビューファインダーパイプラインは最小限の遅延のためにすべての処理を無効にします
  • チームが表示専用モード用の独自の「ドライバー」パイプラインを設計できるようになります

パイプラインファイルがJSON形式を使用(破壊的変更)

  • パイプラインは引き続き.vpr拡張子を使用します
  • (2024.6の一部のケースで破損)「アップロード」ボタンを使用すると、UIは自動的にパイプラインをJSONに変換します。
  • (完全に機能)https://tools.limelightvision.io/pipeline-upgrade でパイプラインをアップグレードすることもできます

キャリブレーションUXの改善

  • キャリブレーション設定がキャッシュされるようになりました。キャリブレーションを行うたびに設定を入力する必要がなくなりました。
  • デフォルトのキャリブレーション辞書が、Calib.ioの推奨800x600mmコースボードで動作するように更新されました。

キャリブレーションモザイク

  • 以前は、キャリブレーション画像の品質を判断するのが困難でした
  • キャリブレーションタブに「キャリブレーションモザイクのダウンロード」ボタンが追加されました。モザイクは各画像がキャリブレーションにどのように貢献しているかを正確に表示します。

mosaic screenshot:

「重心」ターゲティング領域

  • カラーパイプラインでのオブジェクト追跡を改善するために、「出力」タブに重心ターゲティングモードが追加されました

動的3Dオフセット(NT: fiducial_offset_set)

  • パイプラインを変更せずに3Dオフセットを調整できるようになりました。これは「照準点」が距離やその他の特性に基づいて変更する必要がある状況で便利です。

Modbusサポートの追加

  • Limelight OSに、検査、物流、産業用アプリケーション向けの常時稼働のmodbusサーバーが追加されました
  • modbusレジスタ仕様はこちら:https://docs.limelightvision.io/docs/docs-limelight/apis/modbus
  • デフォルトのmodbusサーバーポートはUIの設定タブで変更できます
  • modbusとsnapscript pythonパイプラインを通じて、双方向通信を備えた完全にカスタマイズ可能なビジョンアプリケーションがサポートされるようになりました。

カスタムNTサーバー

  • 設定タブにカスタムNTサーバーのエントリが追加されました。
  • これにより、PCで実行されるガラスNTサーバーとUSB経由で通信するLimelight 3Gを含む新しいワークフローが可能になります。

Rawfiducialの変更

  • 生のフィデューシャルの「area」値が、約0-1の範囲でキャリブレーションされた正規化値になりました

すべてのNetworkTablesとJSONの変更

  • NT getpipetype を追加 - 現在のパイプラインタイプ文字列を取得(例:pipe_color、pipe_fiducial)

  • NT tcclass を追加 - 分類器パイプラインで検出されたクラス名

  • NT tdclass を追加 - 検出器パイプラインで検出されたクラス名

  • 保証された原子的2Dターゲティング用のNT t2dを追加 - [valid,targetcount, targetlatency, capturelatency, tx, ty, txnc, tync, ta, targetid, classifierID, detectorID, tlong, tshort, thor, tvert, ts(skew)]

  • NT tlong, tshort, thor, tvert, ts を削除

  • NT 'crosshairs'配列 [cx0,cy0,cx1,cy1] を追加

  • NT cx0, cy0, cx1, cy1 を削除

  • NT rawbarcodes を追加 - バーコードデータのNT文字列配列。最大32エントリ。

  • すべての「raw」配列で最大32ターゲットをサポート(8から増加)

  • fiducial_offset_set 動的3Dオフセット設定を追加

  • JSONトップレベル結果に「pType」を追加

  • JSONトップレベル結果に「stdev_mt1」と「stdev_mt2」を追加(x,y,z,roll,pitch,yaw)(メートル、度)

その他のファイル形式とJSONダンプの変更

  • キャリブレーションファイル形式が簡素化されました。古いキャリブレーションはアップロード時に新しい形式に自動変換されます
  • ResultsとStatus JSONダンプからネストの1層が削除されました

バグ修正

  • 以前は、ニューラルパイプラインがアクティブな状態でGoogle Coralが取り外されると、パイプラインが永続的に「color/retro」モードに戻っていました
    • 現在は、「CHECK CORAL」または「CHECK MODEL」が画像に表示されます。パイプラインタイプは変更されません
  • 以前は、フィデューシャルIDフィルターを正常に通過したタグが、緑の輪郭ではなく赤の輪郭で描画されることがありました。この視覚化の問題は修正されました。
  • ApriltagパイプラインがtcornxyのNT配列を設定するようになりました
  • Apriltagパイプラインが最小-最大エリアスライダーを完全に尊重するようになりました。以前は、AprilTagパイプラインはタグエリアに基づいて2D結果をフィルタリングしていましたが、3D/ローカライゼーション結果はフィルタリングしていませんでした。

Limelight OS 2024.5.0 (4/9/24)

  • Linux 6.1へのアップグレード

カメラスタックの更新

  • Limelight3Gのカメラ周辺機器のロックアップを修正するため、カメラスタック全体が更新されました。
    • 症状には以下が含まれます
  • このアップデートを適用後、露出とゲインの設定を再調整してください。

ダイナミックダウンスケーリング

  • チームは現在のパイプラインのダウンスケール設定を上書きするために"fiducial_downscale_set"を設定できるようになりました
  • 0:UI制御、1:1倍、2:1.5倍、3:2倍、4:3倍、5:4倍
  • 新しいHelpersメソッドを0.0(UI制御)、1.0、1.5、2.0、3.0、4.0で使用してください
  • これはオーバーヘッドのない操作です
  • ダイナミックダウンスケールとダイナミッククロップを組み合わせることで、複数のパイプラインを管理することなくFPSを最大化できます

MegaTag2の改善

  • MT2は90度および-90度のロールを含む「ポートレート」モードを含め、Limelightのどの向きでも動作するようになりました

"rawdetections" ntアレイ

  • [classID, txnc, tync, ta, corner0x, corner0y, corner1x, corner2y, corner3x, corner3y, corner4x, corner4y]
  • コーナーはキャリブレーションが適用されていないピクセル空間での座標です

収縮/膨張の更新

  • カラーパイプラインで最大10ステップの膨張と10ステップの収縮がサポートされるようになりました
  • カラーパイプラインに膨張と収縮のステップの順序を逆にする「reverse morpho」オプションが追加されました

LimelightLib 1.6 (4/9/24)

  • void SetFiducialDownscalingOverride(float downscale) を追加

0 にするとパイプライン制御、または以下のいずれかを指定してパイプラインのダウンスケール設定を上書きします: 1, 1.5, 2, 3, 4

  • RawFiducial[] GetRawFiducials() を追加
  • RawDetection[] GetRawDetections() を追加

Limelight OS 2024.4.0 (2024年4月3日)

このアップデートのアイデアを提供してくださったすべてのチームに感謝いたします。

Megatag 2

Megatag 2は曖昧性のない位置推定システムです。Megatag1と比較して、より高い精度と正確性を持ち、以下の要件を満たすように設計されました:

  • ポーズの曖昧性問題を解消し、画像/コーナーノイズに対する堅牢性を向上
  • 1つ以上のタグがある場合、視点に関係なく優れたポーズ推定を提供
  • 物理的なAprilTagの配置の不正確さに対する堅牢性を向上
  • 良好なポーズ推定結果を得るために必要なロボット側のフィルタリングを削減

この非常に曖昧な単一タグのケースにおける、MegaTag2(赤いロボット)とMegatag(青いロボット)の違いに注目してください:

Megatag2では、新しいメソッド呼び出しでロボットの向きを設定する必要があります。以下は完全な例です:

      LimelightHelpers.SetRobotOrientation("limelight", m_poseEstimator.getEstimatedPosition().getRotation().getDegrees(), 0, 0, 0, 0, 0);
LimelightHelpers.PoseEstimate mt2 = LimelightHelpers.getBotPoseEstimate_wpiBlue_MegaTag2("limelight");
if(Math.abs(m_gyro.getRate()) > 720) // 角速度が720度/秒を超える場合、ビジョンの更新を無視
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}
if(!doRejectUpdate)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.6,.6,9999999));
m_poseEstimator.addVisionMeasurement(
mt2.pose,
mt2.timestampSeconds);
}

Megatag2は、単一のタグでも任意の距離で曖昧性のない優れた結果を提供します。 これにより、関連性があり、望ましい配置許容範囲内にあるタグのみに焦点を当てることが完全に実現可能です。 タグが正しい位置にない、または関連性がない場合は、新しい動的フィルタ機能でフィルタリングできます。

動的AprilTagフィルタリング

  • MegaTag2は可能な限り多くのAprilTagを蓄積する必要がないため、適切に配置され関連性のあるタグを安全にフィルタリングできます:
int[] validIDs = {3,4};
LimelightHelpers.SetFiducialIDFiltersOverride("limelight", validIDs);

MegaTag2への移行

Megatag2は正しく動作するためにロボットの向きが必要です。0度、360度、720度などの向きは、ロボットが赤色アライアンスの壁に向いていることを意味します。 これはPathPlanner、Chorero、Botpose、Botpose_wpiblueで使用されている規約と同じです。

SetRobotOrientation()をコードに追加したら、内蔵の3Dビジュアライザーを確認してください。近距離では、Megatag2とMegatag1は完全に一致するか、非常に近い結果になるはずです。長距離では、Megatag2(赤いロボット)はMegatag1(青いロボット)よりも正確で安定しているはずです。

内蔵ビジュアライザーが良好な結果を示したら、自律走行期間中にMegatag2を安全に使用できます。

推奨する唯一のフィルターは「最大角速度」フィルターです。高角速度では、ポーズ推定の信頼性が若干低下する可能性があります。

サンプルリポジトリには、このフィルターを含むMegatag2の例があります。

    if(Math.abs(m_gyro.getRate()) > 720) // 角速度が720度/秒を超える場合、ビジョンの更新を無視
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}

LimelightLib 1.5 (4/3/24)

以下を追加

getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()

Limelight OS 2024.3.4 (2024年3月20日)

このアップデートのアイデアを提供してくださったすべてのチームに感謝いたします。

高精度シングルタグソルバー

MegaTagのシングルタグ3Dソルバーが改善されました。長距離での安定性が大幅に向上しています。

JSONがデフォルトで無効化(破壊的変更)

  • Shuffleboardなどの自動購読ダッシュボードを使用しているチームの帯域幅使用量を削減するため、JSONがデフォルトで無効化されました。
  • これによりRoboRIOのNT負荷とCPU使用率も削減されます。
  • 出力タブでパイプラインごとにJSONを再有効化できます。
  • このアップデートには、より多くのチームがポーズ推定でJSONから移行できるようにする変更が含まれています。

歪み補正されたエリア(破壊的変更)

ターゲットの面積を計算する前にコーナーの歪みが補正されるようになりました。

botpose、botpose_wpiblue、botpose_wpiredにフィデューシャルごとのメトリクスを含める

[tx, ty, tz, roll, pitch, yaw, tagCount, tagSpan (meters), averageDistance (meters), averageArea (画像に対する割合), (tags)]

megatagローカライゼーションで使用される各タグについて、上記の配列に以下が含まれるようになりました:(tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)

ambiguityは0-1の範囲の新しいメトリクスで、タグの現在の視点における曖昧さを示します。曖昧さが0.9を超えるシングルタグアップデートは除外することを推奨します。

"rawtargets"と"rawfiducials" NT配列(破壊的変更)

  • rawtargets - ターゲットごとの(txnc,tync,ta)
  • rawfiducials - ターゲットごとの(tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)
  • 以前のrawtargets NTエントリ(tx0,ty0など)は削除されました。

バグ修正

  • priorityIDが見つからない場合、すべてのシングルタグ3D情報をゼロにリセット。以前は、priorityTagが見つからない場合、Tx、Ta、Ty、Tvのみがゼロにリセットされていました
  • UIの「IDフィルター」機能でフィルタリングされた唯一の可視タグしかない場合、botposeをゼロにリセット。以前は、フィルタリングされたタグのみが見える場合、botposeはフィールドの中心にリセットされていました
  • 2024.2では、まれな状況でネットワークテーブルのエントリにNANが投稿されることがありましたが、これは解決されました。

LimelightLib 1.4 (3/21/24)

  • 2024.3.4 Raw Fiducialsのサポートを追加。PoseEstimatesに、id、txnc、tync、ta、distanceToCamera、distanceToRobot、およびambiguityを含むrawFiducialsの配列が含まれるようになりました。

Limelight Hardware Manager 1.4 (2024年3月18日)

バグ修正

USB接続のLimelightが、2つの不完全なエントリではなく、1つの適切なエントリとして表示されるようになりました。


Limelight OS 2024.2.2 (2024年3月17日)

バグ修正

NTエントリーにおいて、TXとTYがクロスヘアを適切に反映するようになりました。


Limelight OS 2024.2 (3/8/24)

ゼロクロスヘアターゲティング(Json用tx_nocross、ty_nocross、NT用txnc、tync)

カスタム内部パラメータキャリブレーションでtx/tyターゲティングを使用している場合、Limelightのクロスヘアがカメラの主点ピクセルと一致していないため、カメラ間のばらつきが依然として見られる可能性があります。より高精度なtx/ty値を必要とするチームは、クロスヘアを主点ピクセルに合わせるか、これらの新しいメトリクスを使用することができます。

tx/tyにおける潜在的な互換性の変更

今シーズン初期に、jsonにおけるtx、ty、tx + tyのカスタムキャリブレーションに特化したバグが発生しました。Limelight OSが複数のケースでデフォルトのキャリブレーションに戻ってしまう問題がありました。

キャリブレーションの改善

キャリブレーションが、キャプチャした画像の数に関係なく、ほぼ瞬時に完了するようになりました。また、特定の状況下で約30枚以上の画像がある場合にクラッシュする問題も修正しました。

紙のターゲットを15-20枚使用した場合の再投影誤差は約1ピクセル、高品質なcalib.ioターゲットを使用した場合は0.3ピクセルの誤差を安定して達成しています。

フィデューシャルフィルターUIの修正

フィデューシャルフィルターのテキストボックスが任意の数のフィルターを受け付けるようになりました。

その他

165.1 mmタグでのスケーリングを防ぐため、Apriltagジェネレーターがデフォルトで「ボーダーなし」に設定されるようになりました。


Limelight OS 2024.1.1 (2024年2月24日)

  • priorityIDの修正

Limelight OS 2024.1 (2024年2月24日)

ハードウェアメトリクス (networktablesのhwキー、/status GETリクエスト)

キャリブレーション改善

  • キャリブレーション画像に有効な検出が1つだけ含まれている場合に発生する可能性があったクラッシュを修正。Web UIのフィードバックを改善。

ロボット位置推定の改善(タグ数など)

  • すべてのnetworktables botposeアレイ(botpose、botpose_wpiblue、botpose_wpired)に、タグ数、タグスパン(メートル)、平均距離(メートル)、平均面積(画像の割合)が含まれるようになりました。

  • これらのメトリクスは、アップロードされたフィールドマップに含まれるタグを使用して計算されます。カスタムや移動式のAprilTagsはこれらのメトリクスに影響しません。

  • デバイスキャリブレーションとこのbotposeアレイのアップグレードにより、今年の大多数のユースケースではJSONは不要だと考えています。

  • JSONダンプには、利便性のためbotpose_avgarea、botpose_avgdist、botpose_span、botpose_tagcountが含まれるようになりました。

[tx,ty,tz,rx,ry,rz,latency,tagcount,tagspan,avgdist,avgarea]

新機能:優先ID(NTキー priorityid)

  • ロボットがオドメトリベースの機能とtx/tyベースの機能の両方を使用している場合、以下のUXの問題に遭遇したことがあるでしょう:

  • この更新以前は、tx/tyターゲティング用の優先タグIDを簡単に切り替える方法がありませんでした。

  • UIにIDフィルターはありますが、

    • 動的ではなく
    • megaTagローカライゼーションからタグを削除します。
  • これにより、チームは複数のパイプラインを作成する必要がありました:3Dローカライゼーション用のパイプラインと、tx/tyタグごとのパイプライン(タグ7を使用したブルーサイドシューティング用、タグ6を使用したブルーサイドアンピング用など)。

  • 新しい優先ID機能(NTキー priorityid)により、「すべてのタグ検出、フィルタリング、ソートが完了した後、優先IDに一致するタグに焦点を当てる」ようLimelightに指示できます。

  • これはローカライゼーションには影響せず、JSONの結果のタグの順序をわずかに変更するだけです。

  • 優先IDが-1でない場合、選択されたタグが見えない限り、tx/ty/taは0を返します。

その他

  • 3D AprilTagパイプラインでデュアルターゲットモード使用時の画面上の「x」を修正
  • REST APIをニューラルネットワークラベルのアップロード(/uploadlabels)で拡張
  • /status jsonにデバイスのニックネームを含める

LimelightLib 1.3

  • LimelightLib(JavaとCPP)が更新され、ローカライゼーションがこれまで以上に簡単になりました。
  LimelightHelpers.PoseEstimate limelightMeasurement = LimelightHelpers.getBotPoseEstimate_wpiBlue("limelight");
if(limelightMeasurement.tagCount >= 2)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.7,.7,9999999));
m_poseEstimator.addVisionMeasurement(
limelightMeasurement.pose,
limelightMeasurement.timestampSeconds);
}

チーム向けの新しいリソース

Limelight フィードバックと課題追跡: https://github.com/LimelightVision/limelight-feedback/issues

サンプルリポジトリ: https://github.com/LimelightVision/limelight-examples

スワーブドライブの照準と距離測定の例: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-aiming-and-ranging

MegaTagローカライゼーションの例: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-pose-estimation

最近の貢献者に感謝: jasondaming, Gold876, JosephTLockwood, Andrew Gasser, virtuald


Limelight 2024 アップデート (2024年2月6日)

Limelightドキュメントのアップグレード

  • セットアッププロセスを合理化するためにドキュメントが書き直されました

Limelight AprilTagジェネレーター

  • https://tools.limelightvision.io/ で、初めてのオンラインAprilTagジェネレーターが利用できるようになりました。
  • 用紙サイズ、マーカーサイズ、タグIDを選択して印刷可能なPDFを生成できます。
  • 現時点では、Safariでタグが正しく表示されない場合があります。

Limelightマップビルダー

  • https://tools.limelightvision.io/map-builder
  • 直感的なUIで独自のAprilTagマップを作成できるようになりました。
  • デフォルトのファミリーとタグサイズは2024年のフィールドに合わせて更新されています。

新しいハードウェアマネージャー

  • Finder Toolは現在、Limelight Hardware Managerとなりました
  • 完全に一から書き直されました。Limelightをより確実に検出し、より有用な診断情報を提供し、正常に動作するために再起動を必要としなくなりました。
  • ダウンロードページから今すぐ入手できます notebook screenshot:

独自のニューラルネットワークを学習する

ノートブックのスクリーンショット:

2024 AprilTag マップとノート検出器

  • マップと検出器モデルがダウンロードページと最新のLimelight OSイメージに追加されました。

Limelight OS 2024.0 (2024年2月6日)

ChArUcoキャリブレーションの修正

  • ChArUcoディテクターのサブピクセル精度が向上しました。クリップボードターゲットと20枚の画像で1-2ピクセルの再投影誤差が達成可能になりました。
  • 同じカメラと同じターゲットを使用した場合、2023.6では再投影誤差が20ピクセルでしたが、2024.0では1.14ピクセルを達成しました。
  • 入力フィールドで文字や特殊文字が受け付けられなくなりました。これによりクラッシュの可能性が排除されました。

Megatagの精度向上(設定不要)

  • この更新以前は、Limelightの内部Megatagマップジェネレーターは.fmapファイルで指定されたタグサイズではなく、UIのタグサイズスライダーを参照していました。
  • Megatagは現在、fmapファイルで設定されたタグサイズを使用し、サイズスライダーを無視します。
  • サイズスライダーが165.1 mmに設定されていない場合、位置推定の精度が即座に向上することが確認できます。

パフォーマンスの向上とバグ修正

  • AprilTagパイプラインのFPS向上
  • フィールドスペースビジュアライザーのパフォーマンスが大幅に改善されました。

バグ修正

  • 3DビジュアライザーでのApriltagが時々不正確または破損したタグ画像で描画される問題を修正しました。タグが常に正しく表示されるようになりました。
  • "v" / tv / "valid"は、有効な検出がある場合にのみ"1"を返すようになりました。以前はtvは常に"1"を返していました。