パスワードを忘れた? アカウント作成
481469 journal

witchの日記: (ROBO)(進捗) 三歩進んで二歩さがる

日記 by witch

サーボアサインテーブル修正完了!フィードバック処理修正完了!A/D入力ゲイン修正完了!
各部修正完了確認!システム起動承認!

メインCPUパワーON!MSPスタートアップ!
サブCPUパワーON!CPUリンク確認!
センサーモニタリング正常!ジャイロ、ACCSニュートラル値正常!

アクチュエーターパワーON!
左肩、左脚サーボフィードバック異常解消確認!
サーボ駆動系正常、サーボ制御系正常!

パワー全開!直立姿勢へ!

---
「直立姿勢移行完了!システムオールグリーン!」と行きたかったのですが…

それぞれのサーボの制御には問題がないのに、駆動するサーボ数を順番に増やして行くと急に応答が鈍くなって、角度変更命令が反映されるのに数秒かかるように…
そして全サーボを駆動状態にして直立させると、それ以上の命令を受け付けなく…

んーーー
PICから先の電気系統はいじっていないので、「サーボ制御信号の出力電流が足りない」っていうのはなさそうな感じ。
予想される原因は

  • メインCPUからPICへのサーボ制御角情報送信が1サイクル(20msec)内に終わってない」
    (駆動するサーボがひとつ増えるごとに送信データが2byte増える)
  • PICからセンサー値を受け取った後、サーボ制御角を送るように変更したので送信に使える時間が減った
  • PIC側にセンサー処理を加えたときに、受信処理が1サイクルで終わらなかった場合の考慮を忘れてたかも…
  • LinuxカーネルのTICKがデフォルト(10msec)のままなので、送受信中にタスクスイッチが入って間に合わないのかも

「センサー処理を一時的に無効にする」のと「カーネルのTICKを1msecに変更」の両方を試すしかないかな…
歩行動作を確認してから「ロボファイト6」にエントリーしたかったんだけど…間に合わないかも。
(明日は知人の結婚式に出るので作業できない)

---
参考:
Kernel2.6からx86はTICK=1msec(HZ=1000)になりましたが、ARMはTICK=10msecのまま(HZ=100)です。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人

読み込み中...