<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>センサー異常 on Physical AI Hub</title>
    <link>https://physicalaihub.net/tags/%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E7%95%B0%E5%B8%B8/</link>
    <description>Recent content in センサー異常 on Physical AI Hub</description>
    <generator>Hugo</generator>
    <language>ja-jp</language>
    <lastBuildDate>Fri, 15 May 2026 01:02:32 +0900</lastBuildDate>
    <atom:link href="https://physicalaihub.net/tags/%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E7%95%B0%E5%B8%B8/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>ロボットのセンサー異常処理設計：検出から安全な縮退運転まで</title>
      <link>https://physicalaihub.net/posts/robot-sensor-fault-detection-degraded-operation/</link>
      <pubDate>Fri, 15 May 2026 01:02:32 +0900</pubDate>
      <guid>https://physicalaihub.net/posts/robot-sensor-fault-detection-degraded-operation/</guid>
      <description>&lt;p&gt;センサーが値を返し続けているときほど、通信監視だけでは異常を見逃しやすい点が気になります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;先に結論&#34;&gt;先に結論&lt;/h2&gt;&#xA;&lt;p&gt;ロボットのセンサー異常は、単一の監視箇所に集約せず、通信・データ取得、値の妥当性、状態推定、センサー間整合性、行動・安全監視の複数層で検出する設計が適しています。各層で観測できる異常が異なるためです。&lt;/p&gt;&#xA;&lt;p&gt;欠損、異常値、不一致は同じ故障として扱いません。欠損や遅延は鮮度低下、範囲外や急激な外れ値は測定拒否、センサー間不一致は比較と故障候補の隔離として扱います。安全機能を維持できるなら速度や機能を制限し、代替観測が使えなければ停止へ移行します。&lt;/p&gt;&#xA;&lt;h2 id=&#34;なぜ検出層を分けるのか&#34;&gt;なぜ検出層を分けるのか&lt;/h2&gt;&#xA;&lt;p&gt;センサーが停止した場合、メッセージの到着間隔や通信相手の生存性を監視する層で検出しやすくなります。しかし、センサーが値を送り続けていても、固定値や環境に対してもっともらしい誤値を出すことがあります。通信が正常でも、値の意味まで正常とは限りません。&lt;/p&gt;&#xA;&lt;p&gt;逆に、状態推定層で観測値を拒否できても、複数センサーの不一致や、安全機能に必要な観測が残っているかは別途確認が必要です。異常検出と行動決定を分け、どの層がどの種類の異常を検出したかを診断情報として伝える構成が扱いやすくなります。&lt;/p&gt;&#xA;&lt;h2 id=&#34;前提となる用語&#34;&gt;前提となる用語&lt;/h2&gt;&#xA;&lt;p&gt;本稿では、欠損をメッセージが届かない、または許容される鮮度を失った状態、範囲外を扱える値域から外れた状態、外れ値を推定状態などから大きく乖離した値、不一致を複数センサーや推定結果が整合しない状態とします。&lt;/p&gt;&#xA;&lt;p&gt;ROSの診断メッセージ仕様であるREP-107は、診断状態をOK、WARN、ERROR、STALEに分類します。ただし、各状態で停止するか、速度を制限するか、継続するかまでは規定していません。診断状態と行動ポリシーは、システム側で対応付けます。&lt;/p&gt;&#xA;&lt;h2 id=&#34;各層の検出責務&#34;&gt;各層の検出責務&lt;/h2&gt;&#xA;&lt;h3 id=&#34;通信データ取得層&#34;&gt;通信・データ取得層&lt;/h3&gt;&#xA;&lt;p&gt;メッセージが期待周期で届くか、通信相手が生存しているかを確認します。ROS 2のDeadline QoSは、連続するメッセージ間の許容最大時間を定義し、期限超過をイベントとして検出できます。Liveliness QoSは、パブリッシャーなど通信相手の生存性を監視します。&lt;/p&gt;&#xA;&lt;p&gt;これらは到着間隔や生存性を扱う機能であり、値の妥当性やタイムスタンプの意味まで検証するものではありません。&lt;/p&gt;&#xA;&lt;h3 id=&#34;センサー値の妥当性層&#34;&gt;センサー値の妥当性層&lt;/h3&gt;&#xA;&lt;p&gt;型、値域、更新状態、センサー固有の自己診断などを確認し、明らかに利用できない値を上位へ渡さない層です。ただし、範囲内に収まる固定値や誤値は、この検査だけでは十分に検出できません。&lt;/p&gt;&#xA;&lt;h3 id=&#34;状態推定層&#34;&gt;状態推定層&lt;/h3&gt;&#xA;&lt;p&gt;推定状態と観測値の差を調べます。robot_localizationの資料では、マハラノビス距離による拒否しきい値を設定し、予測状態から大きく外れたpose、twist、accelerationの測定値を拒否できます。通信が正常でも、推定と整合しない観測を取り込まないための方法です。&lt;/p&gt;&#xA;&lt;h3 id=&#34;整合性安全監視層&#34;&gt;整合性・安全監視層&lt;/h3&gt;&#xA;&lt;p&gt;冗長センサーがあれば、複数入力の整合性を比較できます。PX4には、センサーの状態や整合性を監視し、投票で使用センサーを選び、不健全なセンサーを投票から除外し、必要に応じてフェイルセーフへ移行する実装があります。&lt;/p&gt;&#xA;&lt;p&gt;Nav2 Collision Monitorには、入力が一定時間届かない場合にソースをstaleとして扱い、速度指令の制限や停止へ移行させる実装があります。いずれも特定のソフトウェア構成に依存する実装例であり、すべてのロボットへそのまま一般化できるわけではありません。&lt;/p&gt;&#xA;&lt;figure class=&#34;mermaid-figure&#34;&gt;&#xA;    &lt;pre class=&#34;mermaid&#34; role=&#34;img&#34; aria-label=&#34;センサー異常を単一の監視ノードで判定せず、検出責務を複数層に分けて行動ポリシーへ結び付ける構成を示します。&#34;&gt;flowchart LR&#xA;  A[&#34;センサー入力&#34;] --&gt; B[&#34;通信・データ取得層\n到着周期・生存性・タイムアウト&#34;]&#xA;  B --&gt; C[&#34;センサー値の妥当性層\n型・範囲・更新状態&#34;]&#xA;  C --&gt; D[&#34;状態推定層\n予測状態との差・外れ値拒否&#34;]&#xA;  D --&gt; E[&#34;センサー間整合性監視層\n冗長入力・推定結果の比較&#34;]&#xA;  E --&gt; F[&#34;行動・安全監視層\n安全機能の可用性を判定&#34;]&#xA;&#xA;  B -. &#34;欠損・遅延・配信停止&#34; .-&gt; G[&#34;STALEとして診断&#34;]&#xA;  C -. &#34;範囲外&#34; .-&gt; H[&#34;異常値を上位へ渡さない&#34;]&#xA;  D -. &#34;推定と大きく乖離&#34; .-&gt; I[&#34;測定値を推定更新から除外&#34;]&#xA;  E -. &#34;センサー間不一致&#34; .-&gt; J[&#34;故障入力を隔離・冗長系を検討&#34;]&#xA;&#xA;  F --&gt; K{ &#34;安全機能を維持できるか&#34; }&#xA;  K --&gt;|&#34;維持できる&#34;| L[&#34;速度・加速度・可動範囲・自律機能を制限&#34;]&#xA;  K --&gt;|&#34;代替観測を利用できる&#34;| M[&#34;冗長センサーへ切替&#34;]&#xA;  K --&gt;|&#34;必要な観測を確保できない&#34;| N[&#34;停止&#34;]&#xA;&#xA;  G --&gt; F&#xA;  H --&gt; F&#xA;  I --&gt; F&#xA;  J --&gt; F&lt;/pre&gt;&lt;figcaption&gt;センサー異常を単一の監視ノードで判定せず、検出責務を複数層に分けて行動ポリシーへ結び付ける構成を示します。&lt;/figcaption&gt;&lt;/figure&gt;&lt;h2 id=&#34;異常種別と行動の比較&#34;&gt;異常種別と行動の比較&lt;/h2&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th&gt;異常の種類&lt;/th&gt;&#xA;          &lt;th&gt;主な検出層&lt;/th&gt;&#xA;          &lt;th&gt;処理の例&lt;/th&gt;&#xA;          &lt;th&gt;行動の例&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;欠損・到着間隔超過&lt;/td&gt;&#xA;          &lt;td&gt;通信・安全監視&lt;/td&gt;&#xA;          &lt;td&gt;STALE相当として鮮度を評価&lt;/td&gt;&#xA;          &lt;td&gt;速度制限、機能停止、停止&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;範囲外&lt;/td&gt;&#xA;          &lt;td&gt;値の妥当性&lt;/td&gt;&#xA;          &lt;td&gt;入力から除外&lt;/td&gt;&#xA;          &lt;td&gt;代替入力の検討、継続可否判定&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;急激な外れ値&lt;/td&gt;&#xA;          &lt;td&gt;状態推定&lt;/td&gt;&#xA;          &lt;td&gt;イノベーションや距離で拒否&lt;/td&gt;&#xA;          &lt;td&gt;推定更新から除外、機能制限&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;センサー間不一致&lt;/td&gt;&#xA;          &lt;td&gt;整合性監視&lt;/td&gt;&#xA;          &lt;td&gt;比較、故障候補の隔離&lt;/td&gt;&#xA;          &lt;td&gt;冗長系切替、必要なら停止&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td&gt;安全観測の喪失&lt;/td&gt;&#xA;          &lt;td&gt;行動・安全監視&lt;/td&gt;&#xA;          &lt;td&gt;安全機能の可用性を評価&lt;/td&gt;&#xA;          &lt;td&gt;保守的状態、停止&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;表の状態名と行動の対応は、REP-107の一般規則ではありません。許容時間や安全上の意味を、対象システムごとに定義する必要があります。&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
