Skip to content

trouble_shooting

Tomoki Anzai edited this page Dec 23, 2019 · 19 revisions

サーボ

前提にしていること

  • 一周が12bit(4096分割)のdynamixelサーボモータを使っている
  • サーボ軸は一回転以上しないように制限されている。一回転以上する場合は初期化する角度が決められている。
  • 指令/取得できるサーボ角度は符号付き15bit(-16384~16383)である。

トラブルシューティング

joint calibrationをしたが、初期化の角度によって角度が変化してしまう

  • ロボットにおいて0[rad]と定める角度を、2047としてキャリブレーションしてください。(例えばhydrusなら一直線になる角度がロボットモデル上の0度。)neuronの内部処理でサーボの角度が0~4095に収まっていない場合は収まるようにオフセットをかける処理がかかるからです。
  • これは角度を0~4095でしかやりとりしていなかった頃の名残で、今は符号付き15bit(-16384~16383)まで送受信できるため、本来は-2047~2047に収めるように処理し、0になるようにキャリブレーションすべきですが、従来の仕様のままになっています。

シミュレーション

トラブルシューティング

gazeboのjoint controllerの順番がおかしい

Servo.yamlを書くとき、ジョイントが10を超えると気をつけないといけない点として、

controller1:
controller2:
...
controller10:

と定義したとき、これをアルファベット順(+数字順)にソートするとcontroller1, controller10, controller2 ...となってしまい、ジョイントの順番がおかしくなってしまうので注意. なので

controller01
controller02
...
controller10
...

のようにすればよい.

euroc

Clone this wiki locally