<?xml version="1.0" encoding="UTF-8"?>
<item xmlns="http://omeka.org/schemas/omeka-xml/v5" itemId="87" public="1" featured="0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://omeka.org/schemas/omeka-xml/v5 http://omeka.org/schemas/omeka-xml/v5/omeka-xml-5-0.xsd" uri="https://archive.unjuno.org/items/show/87?output=omeka-xml" accessDate="2026-10-09T06:56:45+09:00">
  <collection collectionId="57">
    <elementSetContainer>
      <elementSet elementSetId="1">
        <name>Dublin Core</name>
        <description>The Dublin Core metadata element set is common to all Omeka records, including items, files, and collections. For more information see, http://dublincore.org/documents/dces/.</description>
        <elementContainer>
          <element elementId="50">
            <name>Title</name>
            <description>A name given to the resource</description>
            <elementTextContainer>
              <elementText elementTextId="1644">
                <text>note</text>
              </elementText>
            </elementTextContainer>
          </element>
          <element elementId="41">
            <name>Description</name>
            <description>An account of the resource</description>
            <elementTextContainer>
              <elementText elementTextId="1645">
                <text>日常のノート</text>
              </elementText>
            </elementTextContainer>
          </element>
        </elementContainer>
      </elementSet>
    </elementSetContainer>
  </collection>
  <itemType itemTypeId="47">
    <name>note</name>
    <description>日常のノートの記録</description>
    <elementContainer>
      <element elementId="262">
        <name>note</name>
        <description>テキストの自由記述</description>
        <elementTextContainer>
          <elementText elementTextId="1718">
            <text>&lt;h1&gt;ロボット工学 - 内界センサー（Internal Sensors）&lt;/h1&gt;
&lt;h2&gt;概要&lt;/h2&gt;
&lt;p&gt;ロボット制御システムの根幹を成す内界センサーについて、基礎理論から実装まで包括的に解説します。制御工学、信号処理、材料力学の知識を統合した実践的な内容となっています。&lt;/p&gt;
&lt;h3&gt;学習目標&lt;/h3&gt;
&lt;p&gt;この資料を読むことで、以下の知識を習得できます：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;理論的理解&lt;/strong&gt;: 各センサーの物理的原理と数学的モデル&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;実装技術&lt;/strong&gt;: 実際のシステムでの統合方法と信号処理&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;設計指針&lt;/strong&gt;: 用途に応じたセンサー選択とシステム設計&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;トラブルシューティング&lt;/strong&gt;: よくある問題と解決策&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;最新動向&lt;/strong&gt;: 現代のロボットシステムでの応用事例&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;対象読者&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;ロボット工学を学ぶ学生・大学院生&lt;/li&gt;
&lt;li&gt;産業用ロボットの設計・開発エンジニア&lt;/li&gt;
&lt;li&gt;制御システムの技術者&lt;/li&gt;
&lt;li&gt;センサー技術に興味のある研究者&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;目次&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="#1-%E5%86%85%E7%95%8C%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BC%E3%81%AE%E5%AE%9A%E7%BE%A9%E3%81%A8%E5%88%86%E9%A1%9E"&gt;内界センサーの定義と分類&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2-%E5%89%9B%E4%BD%93%E3%81%AE%E9%81%8B%E5%8B%95%E5%AD%A6%E3%81%A8%E8%87%AA%E7%94%B1%E5%BA%A6"&gt;剛体の運動学と自由度&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3-%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%80encoder"&gt;エンコーダ（Encoder）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#4-%E3%83%9D%E3%83%86%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%A1%E3%83%BC%E3%82%BFpotentiometer"&gt;ポテンショメータ（Potentiometer）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#5-%E3%83%AC%E3%82%BE%E3%83%AB%E3%83%90resolver"&gt;レゾルバ（Resolver）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#6-%E3%82%BF%E3%82%B3%E3%82%B8%E3%82%A7%E3%83%8D%E3%83%AC%E3%83%BC%E3%82%BFtachogenerator"&gt;タコジェネレータ（Tachogenerator）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#7-%E5%8A%9B%E3%82%BB%E3%83%B3%E3%82%B5%E3%83%BCforce-sensors"&gt;力センサー（Force Sensors）&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#8-%E9%AB%98%E5%BA%A6%E3%81%AA%E4%BF%A1%E5%8F%B7%E5%87%A6%E7%90%86%E6%8A%80%E8%A1%93"&gt;高度な信号処理技術&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#9-%E3%81%BE%E3%81%A8%E3%82%81%E3%81%A8%E6%8A%80%E8%A1%93%E6%AF%94%E8%BC%83"&gt;まとめと技術比較&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#%E5%8F%82%E8%80%83%E6%96%87%E7%8C%AE%E9%96%A2%E9%80%A3%E3%83%AA%E3%83%B3%E3%82%AF"&gt;参考文献・関連リンク&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;1. 内界センサーの定義と分類&lt;/h2&gt;
&lt;h3&gt;1.1 内界センサーとは&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;内界センサー（Internal Sensors）&lt;/strong&gt;は、ロボットシステム内部の状態変数を直接計測するセンサー群である。これらは制御ループ内でフィードバック信号を生成し、ロボットの運動制御、位置決め、力制御において重要な役割を果たす。&lt;/p&gt;
&lt;h4&gt;内界センサーの特徴&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;直接測定&lt;/strong&gt;: ロボット自身の物理量を直接検出&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高精度&lt;/strong&gt;: 制御に必要な精度を提供&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高速応答&lt;/strong&gt;: リアルタイム制御に対応&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;信頼性&lt;/strong&gt;: 環境変化に比較的強い&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;重要ポイント&lt;/strong&gt;&lt;br /&gt;内界センサーは「ロボット自身の状態」を測定するセンサーです。対照的に外界センサー（カメラ、レーザーなど）は「環境の状態」を測定します。&lt;/p&gt;
&lt;h4&gt;実用例：産業用ロボットアーム&lt;/h4&gt;
&lt;pre&gt;関節1: エンコーダ（位置検出）
関節2: レゾルバ（高精度位置検出）
関節3: ポテンショメータ（角度検出）
エンドエフェクタ: 力センサー（接触力検出）
モータ軸: タコジェネレータ（速度検出）
&lt;/pre&gt;
&lt;h3&gt;1.2 センサー分類と制御系での位置づけ&lt;/h3&gt;
&lt;pre&gt;制御対象 → 内界センサー → 制御器 → アクチュエータ → 制御対象
 ↑ ↓
 └────────── フィードバックループ ──────────┘
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;制御ループの流れ：&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;制御対象&lt;/strong&gt;：ロボットの関節やエンドエフェクタ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内界センサー&lt;/strong&gt;：位置・速度・力などを検出&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;制御器&lt;/strong&gt;：PID制御などで目標値との差を計算&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;アクチュエータ&lt;/strong&gt;：モータなどで実際の動作を実行&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;内界センサーの主要機能&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;状態推定（State Estimation）&lt;/strong&gt;：位置、速度、加速度の検出&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;外乱検出（Disturbance Detection）&lt;/strong&gt;：負荷変動、摩擦変化の検出&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;制御精度向上（Control Accuracy Enhancement）&lt;/strong&gt;：PID制御のフィードバック信号生成&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;安全性確保（Safety Assurance）&lt;/strong&gt;：異常状態の早期検出&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;1.3 制御理論における位置づけ&lt;/h3&gt;
&lt;p&gt;内界センサーは以下の制御理論的概念と密接に関連する：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;フィードバック制御&lt;/strong&gt;：閉ループ制御系の安定性確保&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;状態空間表現&lt;/strong&gt;：システムの状態変数として直接利用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;オブザーバ理論&lt;/strong&gt;：状態推定の精度向上&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ロバスト制御&lt;/strong&gt;：外乱に対する制御系の堅牢性&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;2. 剛体の運動学と自由度&lt;/h2&gt;
&lt;h3&gt;2.1 剛体の自由度（Degrees of Freedom）&lt;/h3&gt;
&lt;p&gt;3次元空間における剛体の自由度は6つである：&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;並進自由度（Translational DOF）&lt;/strong&gt;：3つ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;x軸方向の並進&lt;/li&gt;
&lt;li&gt;y軸方向の並進&lt;/li&gt;
&lt;li&gt;z軸方向の並進&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;回転自由度（Rotational DOF）&lt;/strong&gt;：3つ&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;x軸周りの回転（ロール）&lt;/li&gt;
&lt;li&gt;y軸周りの回転（ピッチ）&lt;/li&gt;
&lt;li&gt;z軸周りの回転（ヨー）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;2.2 位置・姿勢の数学的表現&lt;/h3&gt;
&lt;h4&gt;位置ベクトル&lt;/h4&gt;
&lt;p&gt;\[\mathbf{r} = [x, y, z]^T\]&lt;/p&gt;
&lt;h4&gt;回転行列&lt;/h4&gt;
&lt;p&gt;\[R = R_z(\gamma) \times R_y(\beta) \times R_x(\alpha)\]&lt;/p&gt;
&lt;p&gt;ここで：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;α：ロール角&lt;/li&gt;
&lt;li&gt;β：ピッチ角&lt;/li&gt;
&lt;li&gt;γ：ヨー角&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;角速度ベクトル&lt;/h4&gt;
&lt;p&gt;\[\mathbf{\omega} = [\omega_x, \omega_y, \omega_z]^T = \frac{d\mathbf{\Theta}}{dt} \quad [\text{rad/s}]\]&lt;/p&gt;
&lt;h2&gt;3. エンコーダ（Encoder）&lt;/h2&gt;
&lt;h3&gt;3.1 インクリメンタルエンコーダ（Incremental Encoder）&lt;/h3&gt;
&lt;h4&gt;動作原理&lt;/h4&gt;
&lt;p&gt;回転に伴ってパルス信号を出力し、パルス数をカウントすることで相対的な位置を検出する。&lt;/p&gt;
&lt;h4&gt;基本構成&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ディスク&lt;/strong&gt;：等間隔のスリットが刻まれた円盤&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;発光素子&lt;/strong&gt;：LEDまたはレーザーダイオード&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;受光素子&lt;/strong&gt;：フォトトランジスタまたはフォトダイオード&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;信号処理回路&lt;/strong&gt;：パルス整形、カウント回路&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;出力信号&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;A相&lt;/strong&gt;：基本パルス信号&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;B相&lt;/strong&gt;：A相から90°位相がずれた信号&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Z相&lt;/strong&gt;：1回転ごとに1パルス出力（原点検出用）&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;3.2 位置・速度の計算&lt;/h3&gt;
&lt;h4&gt;位置計算&lt;/h4&gt;
&lt;p&gt;\[\theta(t) = \frac{2\pi}{N_0} \times N(t) \quad [\text{rad}]\]&lt;/p&gt;
&lt;h4&gt;速度計算&lt;/h4&gt;
&lt;p&gt;\[\omega(t) = \frac{d\theta}{dt} = \frac{2\pi}{N_0} \times \frac{dN}{dt} \quad [\text{rad/s}]\]&lt;/p&gt;
&lt;p&gt;ここで：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;θ(t)&lt;/strong&gt;：時刻tでの回転角度 [rad]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;N(t)&lt;/strong&gt;：時刻tでの累積パルス数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;N₀&lt;/strong&gt;：1回転あたりのパルス数（PPR: Pulses Per Revolution）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ω(t)&lt;/strong&gt;：角速度 [rad/s]&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;分解能と精度&lt;/h4&gt;
&lt;p&gt;\[\text{分解能} = \frac{360°}{N_0} = \frac{2\pi}{N_0} \quad [\text{rad}]\]&lt;/p&gt;
&lt;h4&gt;4倍カウント方式&lt;/h4&gt;
&lt;p&gt;A相、B相の位相差を利用した4倍カウント：&lt;/p&gt;
&lt;p&gt;\[\text{実効分解能} = 4 \times N_0 \quad [\text{pulses/rev}]\]&lt;/p&gt;
&lt;h4&gt;技術仕様&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;分解能&lt;/strong&gt;：100～10,000 PPR&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;精度&lt;/strong&gt;：±0.1°～±0.01°&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;応答周波数&lt;/strong&gt;：100kHz～1MHz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;回転速度&lt;/strong&gt;：最大10,000 rpm&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;動作温度&lt;/strong&gt;：-10°C～+70°C&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;振動耐性&lt;/strong&gt;：10G（10～2000Hz）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;制御系での利用&lt;/h4&gt;
&lt;p&gt;PID制御器での位置フィードバック信号として使用&lt;/p&gt;
&lt;h4&gt;実装例：サーボモータ制御&lt;/h4&gt;
&lt;pre&gt;// エンコーダ読み取り例（Arduino風）
void readEncoder() {
    static int lastA = 0, lastB = 0;
    int currentA = digitalRead(ENCODER_A);
    int currentB = digitalRead(ENCODER_B);
    
    // エッジ検出
    if (currentA != lastA) {
        if (currentA == currentB) {
            position++;  // 正回転
        } else {
            position--;  // 逆回転
        }
    }
    
    lastA = currentA;
    lastB = currentB;
}
&lt;/pre&gt;
&lt;h4&gt;トラブルシューティング&lt;/h4&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;



&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;パルスが検出されない&lt;/td&gt;
&lt;td&gt;配線不良、電源不足&lt;/td&gt;
&lt;td&gt;配線確認、電圧測定&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;位置がずれる&lt;/td&gt;
&lt;td&gt;ノイズ、電源変動&lt;/td&gt;
&lt;td&gt;シールド配線、安定化電源&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;応答が遅い&lt;/td&gt;
&lt;td&gt;フィルタ設定&lt;/td&gt;
&lt;td&gt;カットオフ周波数調整&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;3.3 アブソリュートエンコーダ（Absolute Encoder）&lt;/h3&gt;
&lt;h4&gt;動作原理&lt;/h4&gt;
&lt;p&gt;各角度位置に対応した固有のデジタルコードを出力し、絶対的な位置を検出する。&lt;/p&gt;
&lt;h4&gt;分解能の計算&lt;/h4&gt;
&lt;p&gt;\[\text{分解能} = \frac{360°}{2^n} = \frac{2\pi}{2^n} \quad [\text{rad}]\]&lt;/p&gt;
&lt;p&gt;ここで：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;n&lt;/strong&gt;：ビット数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;例&lt;/strong&gt;：12ビットの場合、2^12 = 4,096パターン&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分解能&lt;/strong&gt; = 360° / 4,096 = 0.088°&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;グレイコード（Gray Code）&lt;/h4&gt;
&lt;p&gt;2進数ではなくグレイコードを使用する理由：&lt;/p&gt;
&lt;pre&gt;10進数 | 2進数 | グレイコード
-------|-------|------------
   0   |  000  |    000
   1   |  001  |    001
   2   |  010  |    011
   3   |  011  |    010
   4   |  100  |    110
   5   |  101  |    111
&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;利点&lt;/strong&gt;：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;隣接値間で1ビットのみ変化&lt;/li&gt;
&lt;li&gt;読み取り誤差の最小化&lt;/li&gt;
&lt;li&gt;デジタル回路の簡素化&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;技術仕様&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;分解能&lt;/strong&gt;：8～24ビット（0.14°～0.00002°）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;精度&lt;/strong&gt;：±0.01°～±0.001°&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;応答時間&lt;/strong&gt;：1～10ms&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;インターフェース&lt;/strong&gt;：SSI、BiSS、EtherCAT&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;動作温度&lt;/strong&gt;：-40°C～+85°C&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;保護等級&lt;/strong&gt;：IP65～IP67&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;インターフェース比較&lt;/h4&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;





&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SSI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1MHz&lt;/td&gt;
&lt;td&gt;10m&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;低&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;BiSS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10MHz&lt;/td&gt;
&lt;td&gt;10m&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;EtherCAT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100Mbps&lt;/td&gt;
&lt;td&gt;100m&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;実装例：SSI通信&lt;/h4&gt;
&lt;pre&gt;// SSI読み取り例
uint32_t readSSI() {
    uint32_t data = 0;
    
    // クロック信号生成
    for (int i = 0; i &amp;lt; 24; i++) {
        digitalWrite(CLK_PIN, HIGH);
        delayMicroseconds(1);
        
        if (digitalRead(DATA_PIN)) {
            data |= (1 &amp;lt;&amp;lt; (23 - i));
        }
        
        digitalWrite(CLK_PIN, LOW);
        delayMicroseconds(1);
    }
    
    return data;
}
&lt;/pre&gt;
&lt;h3&gt;3.4 エンコーダの信号処理&lt;/h3&gt;
&lt;h4&gt;デジタルフィルタリング&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;移動平均フィルタ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;\[H(z) = \frac{1 + z^{-1}}{2}\]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ローパスフィルタ&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;\[H(z) = \frac{1-\alpha}{1-\alpha z^{-1}}\]&lt;/p&gt;
&lt;p&gt;ここで \(\alpha = e^{-2\pi f_c/f_s}\)、\(f_c\): カットオフ周波数、\(f_s\): サンプリング周波数&lt;/p&gt;
&lt;h4&gt;速度推定アルゴリズム&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;差分法&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;\[\omega[k] = \frac{\theta[k] - \theta[k-1]}{\Delta t}\]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;高次差分法（ノイズ低減）&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;\[\omega[k] = \frac{\theta[k+1] - \theta[k-1]}{2\Delta t}\]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;オブザーバ法&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;\[\hat{\mathbf{x}}[k+1] = A\hat{\mathbf{x}}[k] + B\mathbf{u}[k] + L(\mathbf{y}[k] - C\hat{\mathbf{x}}[k])\]&lt;/p&gt;
&lt;h4&gt;カルマンフィルタによる状態推定&lt;/h4&gt;
&lt;p&gt;&lt;strong&gt;状態空間モデル&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;\[\mathbf{x}[k+1] = A\mathbf{x}[k] + B\mathbf{u}[k] + \mathbf{w}[k]\]&lt;/p&gt;
&lt;p&gt;\[\mathbf{y}[k] = C\mathbf{x}[k] + \mathbf{v}[k]\]&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;カルマンフィルタ方程式&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;予測ステップ：&lt;/p&gt;
&lt;p&gt;\[\hat{\mathbf{x}}[k|k-1] = A\hat{\mathbf{x}}[k-1|k-1] + B\mathbf{u}[k-1]\]&lt;/p&gt;
&lt;p&gt;\[P[k|k-1] = AP[k-1|k-1]A^T + Q\]&lt;/p&gt;
&lt;p&gt;更新ステップ：&lt;/p&gt;
&lt;p&gt;\[K[k] = P[k|k-1]C^T(CP[k|k-1]C^T + R)^{-1}\]&lt;/p&gt;
&lt;p&gt;\[\hat{\mathbf{x}}[k|k] = \hat{\mathbf{x}}[k|k-1] + K[k](\mathbf{y}[k] - C\hat{\mathbf{x}}[k|k-1])\]&lt;/p&gt;
&lt;p&gt;\[P[k|k] = (I - K[k]C)P[k|k-1]\]&lt;/p&gt;
&lt;h4&gt;実装例：位置・速度推定&lt;/h4&gt;
&lt;pre&gt;// カルマンフィルタ実装例
typedef struct {
    float x[2];      // [位置, 速度]
    float P[2][2];   // 誤差共分散行列
    float Q[2][2];   // プロセスノイズ共分散
    float R;         // 観測ノイズ分散
} KalmanFilter;

void kalman_predict(KalmanFilter* kf, float dt) {
    // 状態遷移行列
    float A[2][2] = {{1, dt}, {0, 1}};
    
    // 予測ステップ
    float x_pred[2] = {A[0][0]*kf-&amp;gt;x[0] + A[0][1]*kf-&amp;gt;x[1],
                       A[1][0]*kf-&amp;gt;x[0] + A[1][1]*kf-&amp;gt;x[1]};
    
    // 誤差共分散の更新
    // P = A*P*A^T + Q
    // (実装省略)
    
    kf-&amp;gt;x[0] = x_pred[0];
    kf-&amp;gt;x[1] = x_pred[1];
}

void kalman_update(KalmanFilter* kf, float measurement) {
    // カルマンゲイン計算
    float S = kf-&amp;gt;P[0][0] + kf-&amp;gt;R;
    float K = kf-&amp;gt;P[0][0] / S;
    
    // 状態更新
    float innovation = measurement - kf-&amp;gt;x[0];
    kf-&amp;gt;x[0] += K * innovation;
    kf-&amp;gt;x[1] += K * innovation;  // 速度も更新
    
    // 誤差共分散更新
    kf-&amp;gt;P[0][0] *= (1 - K);
    kf-&amp;gt;P[0][1] *= (1 - K);
    kf-&amp;gt;P[1][0] *= (1 - K);
    kf-&amp;gt;P[1][1] *= (1 - K);
}
&lt;/pre&gt;
&lt;h2&gt;4. ポテンショメータ（Potentiometer）&lt;/h2&gt;
&lt;h3&gt;4.1 動作原理&lt;/h3&gt;
&lt;p&gt;ポテンショメータは、抵抗体の分圧比を利用して角度を電圧に変換するセンサーである。&lt;/p&gt;
&lt;h4&gt;基本構成&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;抵抗体&lt;/strong&gt;：炭素皮膜、金属皮膜、ワイヤー巻き&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;可動接点&lt;/strong&gt;：回転軸に連動するスライダー&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;固定端子&lt;/strong&gt;：電源入力、グランド、出力&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;電圧出力特性&lt;/h4&gt;
&lt;p&gt;\[V_{\text{out}} = V_{\text{supply}} \times \frac{\theta}{\theta_{\max}}\]&lt;/p&gt;
&lt;p&gt;ここで：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V_out&lt;/strong&gt;：出力電圧 [V]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;V_supply&lt;/strong&gt;：供給電圧 [V]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;θ&lt;/strong&gt;：現在の角度 [rad]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;θ_max&lt;/strong&gt;：最大回転角 [rad]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.2 電気的特性&lt;/h3&gt;
&lt;h4&gt;分圧回路&lt;/h4&gt;
&lt;p&gt;\[V_{\text{out}} = V_{\text{supply}} \times \frac{R_2}{R_1 + R_2}\]&lt;/p&gt;
&lt;h4&gt;線形性&lt;/h4&gt;
&lt;p&gt;理想的な線形性は以下の式で表される：&lt;/p&gt;
&lt;p&gt;\[V_{\text{out}} = V_{\text{supply}} \times \frac{\theta}{\theta_{\max}} + V_{\text{offset}}\]&lt;/p&gt;
&lt;h4&gt;非線形性の要因&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;抵抗体の不均一性&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;接触抵抗の変動&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;温度係数&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;機械的摩耗&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;4.3 材料と特性&lt;/h3&gt;
&lt;h4&gt;抵抗体材料&lt;/h4&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;





&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;炭素皮膜&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1kΩ～1MΩ&lt;/td&gt;
&lt;td&gt;±20%&lt;/td&gt;
&lt;td&gt;-1000ppm/°C&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;金属皮膜&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;100Ω～1MΩ&lt;/td&gt;
&lt;td&gt;±5%&lt;/td&gt;
&lt;td&gt;±100ppm/°C&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ワイヤー巻き&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;10Ω～100kΩ&lt;/td&gt;
&lt;td&gt;±1%&lt;/td&gt;
&lt;td&gt;±50ppm/°C&lt;/td&gt;
&lt;td&gt;最高&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4&gt;技術仕様&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;回転角度&lt;/strong&gt;：270°～360°&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;精度&lt;/strong&gt;：±0.1%～±5%&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;分解能&lt;/strong&gt;：理論上無限（実際は0.1°程度）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;応答時間&lt;/strong&gt;：即座&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;動作温度&lt;/strong&gt;：-40°C～+125°C&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;振動耐性&lt;/strong&gt;：10G&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;4.4 信号処理と補償&lt;/h3&gt;
&lt;h4&gt;非線形性補償&lt;/h4&gt;
&lt;p&gt;\[\theta_{\text{corrected}} = \theta_{\text{raw}} + f_{\text{correction}}(\theta_{\text{raw}})\]&lt;/p&gt;
&lt;h4&gt;温度補償&lt;/h4&gt;
&lt;p&gt;\[V_{\text{compensated}} = V_{\text{raw}} \times (1 + \alpha_T \times \Delta T)\]&lt;/p&gt;
&lt;h4&gt;ノイズ除去&lt;/h4&gt;
&lt;p&gt;\[V_{\text{filtered}} = V_{\text{raw}} \times (1 - \alpha) + V_{\text{previous}} \times \alpha\]&lt;/p&gt;
&lt;h3&gt;4.5 実装例：角度測定&lt;/h3&gt;
&lt;pre&gt;// ポテンショメータ読み取り例
float readPotentiometer() {
    int raw_value = analogRead(POT_PIN);
    float voltage = (raw_value / 1023.0) * 5.0;  // 0-5Vに変換
    
    // 角度計算（0-270度の場合）
    float angle = (voltage / 5.0) * 270.0;
    
    return angle;
}

// キャリブレーション例
void calibratePotentiometer() {
    float min_voltage = 0.0;
    float max_voltage = 5.0;
    
    // 最小値設定
    Serial.println("最小位置に移動してEnterを押してください");
    while (Serial.available() == 0);
    min_voltage = analogRead(POT_PIN) * 5.0 / 1023.0;
    Serial.read();
    
    // 最大値設定
    Serial.println("最大位置に移動してEnterを押してください");
    while (Serial.available() == 0);
    max_voltage = analogRead(POT_PIN) * 5.0 / 1023.0;
    Serial.read();
    
    // キャリブレーション係数保存
    EEPROM.put(0, min_voltage);
    EEPROM.put(4, max_voltage);
}
&lt;/pre&gt;
&lt;h2&gt;5. レゾルバ（Resolver）&lt;/h2&gt;
&lt;h3&gt;5.1 動作原理&lt;/h3&gt;
&lt;p&gt;レゾルバは、電磁誘導を利用して角度を検出するアナログセンサーである。&lt;/p&gt;
&lt;h4&gt;基本構成&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ステータ&lt;/strong&gt;：固定子、励磁コイルと検出コイル&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ロータ&lt;/strong&gt;：回転子、変調コイル&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;励磁信号&lt;/strong&gt;：高周波正弦波（通常1-10kHz）&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;出力信号&lt;/h4&gt;
&lt;p&gt;\[V_{\sin} = K \times \sin(\theta) \times \sin(\omega t)\]&lt;/p&gt;
&lt;p&gt;\[V_{\cos} = K \times \cos(\theta) \times \sin(\omega t)\]&lt;/p&gt;
&lt;p&gt;ここで：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;K&lt;/strong&gt;：ゲイン定数&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;θ&lt;/strong&gt;：回転角度 [rad]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ω&lt;/strong&gt;：励磁角周波数 [rad/s]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;t&lt;/strong&gt;：時間 [s]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.2 角度計算&lt;/h3&gt;
&lt;h4&gt;アークタンジェント法&lt;/h4&gt;
&lt;p&gt;\[\theta = \arctan2(V_{\sin}, V_{\cos})\]&lt;/p&gt;
&lt;h4&gt;4象限アークタンジェント&lt;/h4&gt;
&lt;pre&gt;float calculateAngle(float sin_val, float cos_val) {
    float angle = atan2(sin_val, cos_val);
    
    // 負の角度を正の角度に変換
    if (angle &amp;lt; 0) {
        angle += 2 * PI;
    }
    
    return angle;
}
&lt;/pre&gt;
&lt;h3&gt;5.3 RDC（Resolver-to-Digital Converter）&lt;/h3&gt;
&lt;h4&gt;動作原理&lt;/h4&gt;
&lt;p&gt;RDCは、レゾルバのアナログ出力をデジタル角度に変換する専用ICである。&lt;/p&gt;
&lt;h4&gt;主要機能&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;励磁信号生成&lt;/strong&gt;：正弦波発振器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;同期検波&lt;/strong&gt;：位相敏感検波器&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;角度計算&lt;/strong&gt;：アークタンジェント演算&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;デジタル出力&lt;/strong&gt;：並列/シリアル出力&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;技術仕様&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;分解能&lt;/strong&gt;：10～16ビット&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;精度&lt;/strong&gt;：±0.1°～±0.01°&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;応答時間&lt;/strong&gt;：1～10ms&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;励磁周波数&lt;/strong&gt;：1～10kHz&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;動作温度&lt;/strong&gt;：-40°C～+125°C&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;5.4 ノイズ対策と補償&lt;/h3&gt;
&lt;h4&gt;ノイズ源&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;電磁誘導ノイズ&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;電源ノイズ&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;熱雑音&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;量子化ノイズ&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;対策&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;シールド配線&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;差動信号&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;フィルタリング&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;冗長化&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;実装例：レゾルバ読み取り&lt;/h4&gt;
&lt;pre&gt;// レゾルバ読み取り例
typedef struct {
    float sin_val;
    float cos_val;
    float angle;
    float prev_angle;
    int revolutions;
} ResolverData;

void readResolver(ResolverData* resolver) {
    // アナログ値読み取り
    int sin_raw = analogRead(SIN_PIN);
    int cos_raw = analogRead(COS_PIN);
    
    // 電圧に変換（-5V～+5V）
    resolver-&amp;gt;sin_val = (sin_raw - 512) * 10.0 / 1023.0;
    resolver-&amp;gt;cos_val = (cos_raw - 512) * 10.0 / 1023.0;
    
    // 角度計算
    resolver-&amp;gt;angle = atan2(resolver-&amp;gt;sin_val, resolver-&amp;gt;cos_val);
    
    // 回転数カウント
    float angle_diff = resolver-&amp;gt;angle - resolver-&amp;gt;prev_angle;
    if (angle_diff &amp;gt; PI) {
        resolver-&amp;gt;revolutions--;
    } else if (angle_diff &amp;lt; -PI) {
        resolver-&amp;gt;revolutions++;
    }
    
    resolver-&amp;gt;prev_angle = resolver-&amp;gt;angle;
}

// 絶対角度取得
float getAbsoluteAngle(ResolverData* resolver) {
    return resolver-&amp;gt;angle + resolver-&amp;gt;revolutions * 2 * PI;
}
&lt;/pre&gt;
&lt;h2&gt;6. タコジェネレータ（Tachogenerator）&lt;/h2&gt;
&lt;h3&gt;6.1 動作原理&lt;/h3&gt;
&lt;p&gt;タコジェネレータは、発電機の原理を利用して回転速度を電圧に変換するセンサーである。&lt;/p&gt;
&lt;h4&gt;基本構成&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;永久磁石&lt;/strong&gt;：固定子&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;電機子&lt;/strong&gt;：回転子、コイル巻き&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;整流子&lt;/strong&gt;：直流出力用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ブラシ&lt;/strong&gt;：電流取り出し&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;出力電圧&lt;/h4&gt;
&lt;p&gt;\[V_{\text{out}} = K_t \times \omega\]&lt;/p&gt;
&lt;p&gt;ここで：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;V_out&lt;/strong&gt;：出力電圧 [V]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;K_t&lt;/strong&gt;：タコ定数 [V·s/rad]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ω&lt;/strong&gt;：角速度 [rad/s]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;6.2 信号処理&lt;/h3&gt;
&lt;h4&gt;速度計算&lt;/h4&gt;
&lt;p&gt;\[\omega = \frac{V_{\text{out}}}{K_t}\]&lt;/p&gt;
&lt;h4&gt;フィルタリング&lt;/h4&gt;
&lt;p&gt;\[V_{\text{filtered}} = V_{\text{raw}} \times (1 - \alpha) + V_{\text{previous}} \times \alpha\]&lt;/p&gt;
&lt;h4&gt;校正&lt;/h4&gt;
&lt;pre&gt;// タコジェネレータ校正例
void calibrateTachogenerator() {
    float known_speed = 1000.0;  // rpm
    float voltage = analogRead(TACHO_PIN) * 5.0 / 1023.0;
    
    // タコ定数計算
    float k_t = voltage / (known_speed * 2 * PI / 60.0);
    
    // EEPROMに保存
    EEPROM.put(0, k_t);
}

// 速度読み取り
float readSpeed() {
    float voltage = analogRead(TACHO_PIN) * 5.0 / 1023.0;
    float k_t;
    EEPROM.get(0, k_t);
    
    return voltage / k_t * 60.0 / (2 * PI);  // rpmに変換
}
&lt;/pre&gt;
&lt;h3&gt;6.3 技術仕様&lt;/h3&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;


&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;出力電圧&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0～10V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;タコ定数&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1～100 V·s/rad&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;精度&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;±0.1%～±1%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;応答時間&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;1～10ms&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;動作温度&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;-40°C～+125°C&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;振動耐性&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;20G&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;7. 力センサー（Force Sensors）&lt;/h2&gt;
&lt;h3&gt;7.1 ひずみゲージ式力センサー&lt;/h3&gt;
&lt;h4&gt;動作原理&lt;/h4&gt;
&lt;p&gt;ひずみゲージの抵抗変化を利用して力を検出する。&lt;/p&gt;
&lt;h4&gt;ひずみの定義&lt;/h4&gt;
&lt;p&gt;\[\varepsilon = \frac{\Delta L}{L} = \frac{L_{\text{final}} - L_{\text{initial}}}{L_{\text{initial}}}\]&lt;/p&gt;
&lt;h4&gt;抵抗変化&lt;/h4&gt;
&lt;p&gt;\[\frac{\Delta R}{R} = G \times \varepsilon\]&lt;/p&gt;
&lt;p&gt;ここで：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;G&lt;/strong&gt;：ゲージ率（通常2.0）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ε&lt;/strong&gt;：ひずみ&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;ホイートストンブリッジ&lt;/h4&gt;
&lt;p&gt;\[V_{\text{out}} = V_{\text{supply}} \times \left(\frac{R_2}{R_1+R_2} - \frac{R_4}{R_3+R_4}\right)\]&lt;/p&gt;
&lt;h3&gt;7.2 圧電式力センサー&lt;/h3&gt;
&lt;h4&gt;動作原理&lt;/h4&gt;
&lt;p&gt;圧電効果を利用して力を電荷に変換する。&lt;/p&gt;
&lt;h4&gt;出力電荷&lt;/h4&gt;
&lt;p&gt;\[Q = d \times F\]&lt;/p&gt;
&lt;p&gt;ここで：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Q&lt;/strong&gt;：出力電荷 [C]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;d&lt;/strong&gt;：圧電定数 [C/N]&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;F&lt;/strong&gt;：力 [N]&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;7.3 信号処理と校正&lt;/h3&gt;
&lt;h4&gt;校正手順&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;ゼロ点調整&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;感度調整&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;線形性確認&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;温度補償&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;実装例：力センサー読み取り&lt;/h4&gt;
&lt;pre&gt;// 力センサー読み取り例
typedef struct {
    float force;
    float prev_force;
    float filtered_force;
    float alpha;  // フィルタ係数
} ForceSensor;

void readForceSensor(ForceSensor* sensor) {
    int raw_value = analogRead(FORCE_PIN);
    float voltage = (raw_value - 512) * 10.0 / 1023.0;  // -5V～+5V
    
    // 力に変換（校正係数使用）
    sensor-&amp;gt;force = voltage * FORCE_SENSITIVITY;
    
    // ローパスフィルタ
    sensor-&amp;gt;filtered_force = sensor-&amp;gt;alpha * sensor-&amp;gt;force + 
                            (1 - sensor-&amp;gt;alpha) * sensor-&amp;gt;filtered_force;
}

// 力制御例
void forceControl(float target_force, ForceSensor* sensor) {
    float error = target_force - sensor-&amp;gt;filtered_force;
    float control_output = KP * error + KI * integral_error + KD * derivative_error;
    
    // モータ制御
    setMotorSpeed(control_output);
}
&lt;/pre&gt;
&lt;h2&gt;8. 高度な信号処理技術&lt;/h2&gt;
&lt;h3&gt;8.1 適応制御（Adaptive Control）&lt;/h3&gt;
&lt;h4&gt;MRAC（Model Reference Adaptive Control）&lt;/h4&gt;
&lt;p&gt;\[u(t) = K_p \times e(t) + K_i \times \int e(t)dt + K_d \times \frac{de(t)}{dt}\]&lt;/p&gt;
&lt;h4&gt;パラメータ同定&lt;/h4&gt;
&lt;pre&gt;// 最小二乗法によるパラメータ同定
typedef struct {
    float theta[3];  // [Kp, Ki, Kd]
    float P[3][3];   // 共分散行列
    float lambda;    // 忘却係数
} ParameterEstimator;

void updateParameters(ParameterEstimator* est, float input, float output) {
    float phi[3] = {input, integral_input, derivative_input};
    
    // カルマンフィルタ更新
    float S = 1.0 + phi[0]*est-&amp;gt;P[0][0]*phi[0] + 
              phi[1]*est-&amp;gt;P[1][1]*phi[1] + 
              phi[2]*est-&amp;gt;P[2][2]*phi[2];
    
    float K[3];
    for (int i = 0; i &amp;lt; 3; i++) {
        K[i] = est-&amp;gt;P[i][i] * phi[i] / S;
        est-&amp;gt;theta[i] += K[i] * (output - phi[i] * est-&amp;gt;theta[i]);
    }
}
&lt;/pre&gt;
&lt;h3&gt;8.2 ノイズ除去技術&lt;/h3&gt;
&lt;h4&gt;ウェーブレット変換&lt;/h4&gt;
&lt;pre&gt;// 簡易ウェーブレットフィルタ
float waveletFilter(float* signal, int length, float threshold) {
    float filtered = 0.0;
    
    for (int i = 1; i &amp;lt; length - 1; i++) {
        float detail = signal[i] - (signal[i-1] + signal[i+1]) / 2.0;
        
        if (fabs(detail) &amp;lt; threshold) {
            filtered += signal[i];
        } else {
            filtered += (signal[i-1] + signal[i+1]) / 2.0;
        }
    }
    
    return filtered / length;
}
&lt;/pre&gt;
&lt;h2&gt;9. まとめと技術比較&lt;/h2&gt;
&lt;h3&gt;9.1 センサー比較表&lt;/h3&gt;
&lt;table&gt;
&lt;tbody&gt;
&lt;tr&gt;






&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;エンコーダ&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;位置制御&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ポテンショメータ&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;低&lt;/td&gt;
&lt;td&gt;角度測定&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;レゾルバ&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;最高&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;高精度位置&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;タコジェネレータ&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;速度制御&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;力センサー&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;力制御&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3&gt;9.2 選択指針&lt;/h3&gt;
&lt;h4&gt;用途別選択&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;位置制御&lt;/strong&gt;：エンコーダ、レゾルバ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;速度制御&lt;/strong&gt;：タコジェネレータ、エンコーダ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;力制御&lt;/strong&gt;：力センサー&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;角度測定&lt;/strong&gt;：ポテンショメータ&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;環境条件&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;高温&lt;/strong&gt;：レゾルバ、タコジェネレータ&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;振動&lt;/strong&gt;：エンコーダ、力センサー&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;電磁ノイズ&lt;/strong&gt;：レゾルバ、光ファイバーセンサー&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;9.3 システム統合の考慮事項&lt;/h3&gt;
&lt;h4&gt;信号処理&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;サンプリング周波数&lt;/strong&gt;：制御帯域の10倍以上&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;フィルタ設計&lt;/strong&gt;：位相遅れの最小化&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;校正&lt;/strong&gt;：定期的な校正による精度維持&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;補償技術&lt;/h4&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;温度補償&lt;/strong&gt;：温度係数の考慮&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;非線形補償&lt;/strong&gt;：校正データの活用&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;冗長化&lt;/strong&gt;：安全性向上のための冗長構成&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;センサー選択フローチャート&lt;/h4&gt;
&lt;pre&gt;開始
 ↓
用途は？ → 位置制御 → 精度要求は？ → 高 → レゾルバ/アブソリュートエンコーダ
 ↓ ↓ ↓
速度制御 中 → インクリメンタルエンコーダ
 ↓ ↓
力制御 低 → ポテンショメータ
 ↓
タコジェネレータ/力センサー
 ↓
環境条件確認
 ↓
最終選択
&lt;/pre&gt;
&lt;h4&gt;システム統合のベストプラクティス&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;配線設計&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;シールドケーブルの使用&lt;/li&gt;
&lt;li&gt;電源線との分離&lt;/li&gt;
&lt;li&gt;適切な接地&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;信号処理&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;適切なサンプリング周波数&lt;/li&gt;
&lt;li&gt;フィルタ設計&lt;/li&gt;
&lt;li&gt;校正の自動化&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;冗長化&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;複数センサーの併用&lt;/li&gt;
&lt;li&gt;故障検出機能&lt;/li&gt;
&lt;li&gt;フェイルセーフ設計&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h4&gt;最新技術動向&lt;/h4&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;MEMSセンサー&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;小型化、低コスト化&lt;/li&gt;
&lt;li&gt;高精度化の進展&lt;/li&gt;
&lt;li&gt;統合化の進歩&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;光ファイバーセンサー&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;電磁ノイズ耐性&lt;/li&gt;
&lt;li&gt;長距離伝送&lt;/li&gt;
&lt;li&gt;高精度&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI/ML活用&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;異常検出&lt;/li&gt;
&lt;li&gt;予知保全&lt;/li&gt;
&lt;li&gt;適応制御&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;内界センサーは、ロボット制御システムの根幹を成す重要な要素であり、適切な選択と信号処理により、高精度で信頼性の高い制御を実現する。&lt;/p&gt;

&lt;h2&gt;参考文献・関連リンク&lt;/h2&gt;
&lt;h3&gt;学術文献&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Craig, J.J. (2017). &lt;em&gt;Introduction to Robotics: Mechanics and Control&lt;/em&gt;. 4th Edition, Pearson.&lt;/li&gt;
&lt;li&gt;Siciliano, B., Sciavicco, L., Villani, L., &amp;amp; Oriolo, G. (2009). &lt;em&gt;Robotics: Modelling, Planning and Control&lt;/em&gt;. Springer.&lt;/li&gt;
&lt;li&gt;Spong, M.W., Hutchinson, S., &amp;amp; Vidyasagar, M. (2020). &lt;em&gt;Robot Modeling and Control&lt;/em&gt;. 2nd Edition, Wiley.&lt;/li&gt;
&lt;li&gt;Franklin, G.F., Powell, J.D., &amp;amp; Emami-Naeini, A. (2018). &lt;em&gt;Feedback Control of Dynamic Systems&lt;/em&gt;. 8th Edition, Pearson.&lt;/li&gt;
&lt;li&gt;Ogata, K. (2010). &lt;em&gt;Modern Control Engineering&lt;/em&gt;. 5th Edition, Prentice Hall.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;技術資料&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;IEEE Robotics and Automation Society: &lt;a href="https://www.ieee-ras.org/"&gt;https://www.ieee-ras.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;ROS (Robot Operating System) Documentation: &lt;a href="https://ros.org/"&gt;https://ros.org/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Robot Sensors - IEEE Spectrum: &lt;a href="https://spectrum.ieee.org/topic/robotics/sensors/"&gt;https://spectrum.ieee.org/topic/robotics/sensors/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Sensor Technology Handbook: &lt;a href="https://www.analog.com/en/technical-articles/sensor-technology-handbook.html"&gt;https://www.analog.com/en/technical-articles/sensor-technology-handbook.html&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;National Instruments - Sensor Fundamentals: &lt;a href="https://www.ni.com/en-us/innovations/white-papers/06/sensor-fundamentals.html"&gt;https://www.ni.com/en-us/innovations/white-papers/06/sensor-fundamentals.html&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;主要メーカー&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;エンコーダ&lt;/strong&gt;: HEIDENHAIN, Renishaw, Tamagawa, Omron, Sick&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ポテンショメータ&lt;/strong&gt;: Bourns, Vishay, Honeywell, Alps Alpine, Panasonic&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;レゾルバ&lt;/strong&gt;: Tamagawa, HEIDENHAIN, Moog, Kollmorgen, Danaher&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;力センサー&lt;/strong&gt;: ATI Industrial Automation, Kistler, HBM, Futek, Interface&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;タコジェネレータ&lt;/strong&gt;: Maxon, Faulhaber, Oriental Motor, Yaskawa&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;規格・認証&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ISO 9409&lt;/strong&gt;: 産業用ロボットの機械インターフェース&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IEC 61800&lt;/strong&gt;: 電気駆動システム&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IEEE 1451&lt;/strong&gt;: スマートセンサーインターフェース&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CE Marking&lt;/strong&gt;: 欧州適合性認証&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;UL Listing&lt;/strong&gt;: 米国安全認証&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;免責事項&lt;/h3&gt;
&lt;p&gt;本資料は教育目的で作成されており、実際のシステム設計時は最新の技術仕様を確認してください。記載されている数値や仕様は一般的な参考値であり、特定の製品や用途を保証するものではありません。&lt;/p&gt;
&lt;h3&gt;ライセンス&lt;/h3&gt;
&lt;p&gt;この文書は Creative Commons Attribution-ShareAlike 4.0 International License の下で公開されています。&lt;/p&gt;</text>
          </elementText>
        </elementTextContainer>
      </element>
    </elementContainer>
  </itemType>
  <elementSetContainer>
    <elementSet elementSetId="1">
      <name>Dublin Core</name>
      <description>The Dublin Core metadata element set is common to all Omeka records, including items, files, and collections. For more information see, http://dublincore.org/documents/dces/.</description>
      <elementContainer>
        <element elementId="50">
          <name>Title</name>
          <description>A name given to the resource</description>
          <elementTextContainer>
            <elementText elementTextId="1713">
              <text>ロボット工学２</text>
            </elementText>
          </elementTextContainer>
        </element>
        <element elementId="39">
          <name>Creator</name>
          <description>An entity primarily responsible for making the resource</description>
          <elementTextContainer>
            <elementText elementTextId="1714">
              <text>unjuno</text>
            </elementText>
          </elementTextContainer>
        </element>
        <element elementId="47">
          <name>Rights</name>
          <description>Information about rights held in and over the resource</description>
          <elementTextContainer>
            <elementText elementTextId="1715">
              <text>CC BY 4.0</text>
            </elementText>
          </elementTextContainer>
        </element>
      </elementContainer>
    </elementSet>
  </elementSetContainer>
</item>
