ATmega128とSTM32の速度比較
テストテクノロジーのBTC068基盤から、DWM5月号付録のCQ-STARM基盤への移植作業がだいぶ出来上がってきました。とりあえず2足で歩く程度の機能は動作しています。
移植作業を開始する前にBTC068基盤で各処理にどれだけ時間を要しているのかの計測を行いました。2008/05/20の日記参照
そして3ヵ月後の今日(長かった・・・)、CQ-STARM基盤でも同じ処理部の計測を行いましたので、報告します。
処理1:センサ読み込み+次ポーズ選択+逆運動学制御
BTC068・・・・・・・3.0ms
CQ-STARM・・・・0.8ms
処理2:サーボ制御(8個のI/Oポートを制御)
BTC068・・・・・・・25μs
CQ-STARM・・・・10μs
劇的なスピードアップです。
処理1はもともと標準の三角関数などを使わないで高速化していた処理なので、あまり期待していなかったのですが、3倍以上のスピードアップでした。精度優先ってことで標準の三角関数に戻そうと考えていますが、どの程度時間がかかるのかが興味深いところです。
処理2はI/Oポートの制御ですが、こちらも良い結果でした。サーボを増やす予定ですが、余裕そうです。
ATmega128とARMCortexM3(STM32)では比較対象が悪いのかもしれませんが、苦労して移植した甲斐がありました。
移植作業を開始する前にBTC068基盤で各処理にどれだけ時間を要しているのかの計測を行いました。2008/05/20の日記参照
そして3ヵ月後の今日(長かった・・・)、CQ-STARM基盤でも同じ処理部の計測を行いましたので、報告します。
処理1:センサ読み込み+次ポーズ選択+逆運動学制御
BTC068・・・・・・・3.0ms
CQ-STARM・・・・0.8ms
処理2:サーボ制御(8個のI/Oポートを制御)
BTC068・・・・・・・25μs
CQ-STARM・・・・10μs
劇的なスピードアップです。
処理1はもともと標準の三角関数などを使わないで高速化していた処理なので、あまり期待していなかったのですが、3倍以上のスピードアップでした。精度優先ってことで標準の三角関数に戻そうと考えていますが、どの程度時間がかかるのかが興味深いところです。
処理2はI/Oポートの制御ですが、こちらも良い結果でした。サーボを増やす予定ですが、余裕そうです。
ATmega128とARMCortexM3(STM32)では比較対象が悪いのかもしれませんが、苦労して移植した甲斐がありました。
CQ-STARMへの移植作業 進捗状況
CQ-STARM基盤へのプログラム移植作業を行っています。
最初はCYGWINで開発環境を構築しようとしていたのですが、やっぱりCodeSourceryという環境で開発を行うことにしました。
理由は、CYGWINでSTのライブラリを使う方法が分からなかったからです。私自身がmakeファイルとかに弱いので、自力でSTのライブラリを使えるように出来ませんでした・・・なさけない。
ライブラリを使うと、サンプルをまねるだけで意外と動いたりするので、細かいところまで調べなくても動いてしまうと言うメリットと、ちょっと動かないと調査に時間がかかってしまうと言うデメリットがあります。
とりあえずは、サーボを動かすところまで動作確認が終わっていますが、なんでそのAPIを呼ぶ必要があるのか理解できていない部分も沢山あります。かっこよく言えばブラックボックスとして扱っているわけで作業効率が上がっているのですが、結果オーライ的な作業ともいえます。
HITECサーボのHMIプロトコルはCQ-STARMだとレベル変換等なしで通信できることが確認できたのでちょっとうれしかったです。
あとは、AD変換とかPWM出力とかSPIとかをクリアできたら、ほぼ移植完成かな???
あと少しだ。がんばれ、自分。
つまらない移植作業はとっても作業効率が悪いです。集中力が続きません・・・
最初はCYGWINで開発環境を構築しようとしていたのですが、やっぱりCodeSourceryという環境で開発を行うことにしました。
理由は、CYGWINでSTのライブラリを使う方法が分からなかったからです。私自身がmakeファイルとかに弱いので、自力でSTのライブラリを使えるように出来ませんでした・・・なさけない。
ライブラリを使うと、サンプルをまねるだけで意外と動いたりするので、細かいところまで調べなくても動いてしまうと言うメリットと、ちょっと動かないと調査に時間がかかってしまうと言うデメリットがあります。
とりあえずは、サーボを動かすところまで動作確認が終わっていますが、なんでそのAPIを呼ぶ必要があるのか理解できていない部分も沢山あります。かっこよく言えばブラックボックスとして扱っているわけで作業効率が上がっているのですが、結果オーライ的な作業ともいえます。
HITECサーボのHMIプロトコルはCQ-STARMだとレベル変換等なしで通信できることが確認できたのでちょっとうれしかったです。
あとは、AD変換とかPWM出力とかSPIとかをクリアできたら、ほぼ移植完成かな???
あと少しだ。がんばれ、自分。
つまらない移植作業はとっても作業効率が悪いです。集中力が続きません・・・

