自己平衡型ロボットの加速度計、もっと上手くいけませんか?
現在、IMU(ジャイロスコープ+加速度計)を使用して現在の傾斜角を推定する自己平衡型ロボットについて読んでいます。 私が見つけたほとんどの文書は同じことを言っています: 加速度計データは「慣性ノイズ」の影響を受けるため、加速度計データのアークタンジェントを使用して重力方向を見つけることはできません。 ジャイロスコープの出力はドリフトするため、経時的に積分することはできません。 これらのデータをマージするには、一般的に受け入れられている2つのソリューションがあります。 現在のジャイロスコープバイアスと共に現在の傾きを推定するカルマンフィルター。 相補フィルタ加速度計データにローパスフィルタを適用すること(これらは長期的に信頼することができる)、及びジャイロスコープデータに対してハイパスフィルタ(それは短期的に信頼することができます)。 私が見つけたすべての情報源は、これらのフィルターで加速度計からの生データを使用しているようですが、自己平衡型ロボットでは、上記の「慣性ノイズ」の非常に良い推定値を得ることができます。 ここが私のです 可動支点を備えた倒立振子でロボットをモデル化し、この貧弱な図面を参照として使用してみましょう。 Cの加速度計が感じる慣性力は、(間違いがなければ)から導出でき (cr¨cΘ¨)=(−x¨sin(Θ)−RΘ˙2−x¨cos(Θ)+RΘ¨)(cr¨cΘ¨)=(−x¨sin(Θ)−RΘ˙2−x¨cos(Θ)+RΘ¨) \begin{pmatrix} \ddot{c_r} \\ \ddot{c_\Theta} \end{pmatrix} = \begin{pmatrix} -\ddot{x}\sin(\Theta)-R\dot{\Theta}^2 \\ -\ddot{x}\cos(\Theta)+R\ddot{\Theta} \end{pmatrix} 仮定して 私たちのロボットは滑ることなく転がっています xを測定できます(エンコーダー付きのステッピングモーターまたはDCモーターを使用) 次に、これらすべての変数の適切な見積もりを得ることができます。 x¨^kx¨^k\hat{\ddot{x}}_k:現在および以前の測定値との差分xxx Θ˙^kΘ˙^k\hat{\dot{\Theta}}_k:現在のジャイロスコープの読み取り Θ^kΘ^k\hat{\Theta}_k:前の推定プラスの統合及び人以上ΘΘ\ThetaΘ˙^kΘ˙^k\hat{\dot{\Theta}}_kΘ˙^k−1Θ˙^k−1\hat{\dot{\Theta}}_{k-1}ΔtΔt\Delta t Θ¨^kΘ¨^k\hat{\ddot{\Theta}}_k:および有限の違いΘ˙^kΘ˙^k\hat{\dot{\Theta}}_kΘ˙^k−1Θ˙^k−1\hat{\dot{\Theta}}_{k-1} それが得られたら、加速度計の慣性力の影響を打ち消すことができ、重力の非常に優れた測定値のみが残ります。 上記の1.のように、これを通常のカルマンフィルターの入力として使用することは、おそらく良い考えです。 たぶん、これらすべての変数を一度に推定できるカルマンフィルターを構築することさえできますか?やってみます。 どう思いますか?ここで何か不足していますか? セルフバランシングロボットは良いタグになると思いますが、作成できません