Closed YazawaKenichi closed 1 year ago
encoder_left を回して encoder_right の値を監視
すると encoder_left が 6 の時に encoder_right が 4 になることがあった
encoder_left が プラス なら、encoder_right はマイナスが普通なんだが...
あと encoder_left が必ず 1 以上を示しているのに対して、 encoder_right は 0 を時々示すことがある
もしかしたらもう片方のモータが停止と回転を繰り返しているのかもしれない
オシロで波形を見たところ、ヴヴヴヴ鳴っている時にはモータに逆電圧がかかっている
逆電圧がかかっているのは逆回転しようとしているから
モータドライバにかかる PWM 信号を測定した。モータドライバに入る PWM 信号はブレたりしていなかった
正転逆転を決める信号を見たところ、 HIGH と LOW を行ったり来たりしていた
こいつが原因かも
左右のエンコーダを読んで平均を出しているため、正負を行ったり来たりするのかと思って、モータごとに PID 制御することにした。
それでも発振したし、これだと指令値を重ね合わせることができないことに気がついて、諦めて平均値で制御するのに戻した。
結局何が原因なのかはわからないまま
一旦 issue を閉じる
問題の内容
速度の PID 制御を導入すると発信しているのかモータ?ブラケット?ギア?のあたりがギギギギとかヴヴヴヴとか鳴る
発振してそうな音が鳴る
標準出力を見たらモータの出力値がめちゃくちゃ飛び回ってた
どうしてモータの出力値が飛び回っているのかはわからない
実行環境
再現手順
予想される原因
予想が正しいことの確認方法
修正すべき内容
修正する際の注意点
参考になりそうなサイト
-