躍度制限による軌跡を生成することで、滑らかにロボットを制御できます。以前の記事でも、これらの軌跡生成手法は紹介しました。18:53ロボットの軌跡生成:躍度制限を用いて台形加速度プロファイルを作成する加速度(Acceleration)の単位時間当たりの変化率を表すものとして、躍度(Jerk、加加速度)があります。16:50しかし、実際にロボットを制御する際には、制御の周期やサンプリング時間に合わせた量子化(Quantization)が必要となります。今回の記事では、この軌跡生成における量子化の重要性と、実際に簡単な例を用いて量子化を行う方法を紹介します。Generation)における量子化(Quantization)とは、制御の周期やサンプリング時間などの離散時間に合わせて、速度や加速度などのパラメータを調整することを言います。重要?軌跡生成をする際に量子化が重要となる場合について紹介します。秒速2mの一定速度で15mの距離を移動するロボットを制御する場合を考えます。$$より、7.5秒となります。ここで、ロボットを制御するサンプリング時間が1秒だった場合を考えます。1秒ごとにロボットの位置を確認して、制御信号を送るという場合です。この条件の場合、制御時間が7秒の時にはロボットの位置は14mであり、まだ移動するように制御信号を送ります。制御時間が8秒の時にはロボットの位置が16mとなり、目標の15mを超えてしまいます。よって、秒速2mで進むロボットに1秒ごとに制御信号を送った場合は、ちょうど15m進むことが出来ないことが分かります。これくらい(今回の場合は1m)の誤差が無視できる場合は良いですが、多くのケースでは問題になると思います。そのため、ロボットを正確に(精密に)制御するためには、何かしらの対策を行う必要があります。このような場合に対応するために、重要となるのが量子化です。量子化を行い、サンプリング時間ごとに上手く(ちょうどよく)制御可能とすることが重要になってきます。対処法は?上で説明したような問題を解決するためには、量子化を行う必要があります。制御に必要なトータル時間をサンプリング時間の整数倍にする必要があります。)を制御するという方法があります。これらの方法について、サンプリング時間は様々な要素によって決定されており、通常は変更することは難しいです。そのため、パラメータを制御することになるのですが、制御の目的である移動距離は変更することはできません。よって、指令速度(今回の例では2[m/s])を調整して、ロボットを正確に制御することになります。今回の記事で取り扱っている軌跡生成の例を用いて量子化を行う方法を紹介します。移動時間の変更まず初めに、移動に必要とする時間(制御時間T)をサンプリング時間Tsに合わせて変更します。$$より、7.5秒です。生成した軌跡を量子化するために、この制御時間Tをサンプリング時間Tsの整数倍にします。天井関数を使って制御時間Tをサンプリング時間Tsの何倍にするべきかを求めます。天井関数とは、与えられた実数以上の最小の整数を求める関数です。$$のより、N=8倍にすれば良いことが分かりました。$$と求めることが出来ます。今回の場合は、ロボットが15m移動するための制御時間Tを7.5秒から8秒に変更します。することで、制御時間Tはサンプリング時間Tsの整数倍(8倍)になります。変更した制御時間Tに合わせて移動速度Fを変更します。移動時間が制御時間となる8秒の時に、移動したい距離である15mに到達するような移動速度に変更します。$$と求めることが出来ます。[m]に到達させることが出来ました。ちなみに床関数を使うと...制御時間をサンプリング時間の整数倍にする際に、天井関数の代わりに床関数を使うことも考えられます。床関数とは、与えられた実数以下の最大の整数を求める関数です。$$のように7.5秒から7秒に変更されます。この変更後の移動速度を用いることで、制御時間Tがサンプリング時間Tsの7倍になる7秒の時にちょうど15mになります。床関数を用いた手法によると、変更後の移動速度は指令速度よりも高くなっています。$$そして、実際の移動速度が指令速度を超えることは望まれないことが多いです。そのため、通常は床関数を用いた方法は用いられず、天井関数を用いた方法による量子化を行います。まとめ今回は、実際に軌跡生成を行う際に重要となる量子化について紹介しました。今回の記事で紹介したような、一定速度でロボットを制御するシンプルなシステムについては、指令速度を変更することで軌跡の量子化を行うことが出来ます。次回は、加速度制限による台形速度プロファイルについて量子化を行う方法を紹介したいと思います。台形速度プロファイルの軌跡を量子化してロボットを精密制御するロボットの軌跡を生成する際に、加速度を制限した台形速度プロファイルを用いることで、ロボットを滑らかに制御することが出来ます。Interpolation)で行う方法について紹介します。Generation)を行う方法について紹介します。記事を読む実際に3次スプライン曲線で離散的な指令点を補間してみよう!ロボットを制御する際に、与えられた離散的な指令から滑らかな軌跡を生成することは重要になります。今回の記事では、実際に4つの離散的な制御点が与えられた場合に、3次スプライン曲線補間による曲線近似を行う流れを紹介します。記事を読むBスプライン曲線を使ってロボットの軌跡生成をしてみよう!(その1)Bスプライン曲線を用いて離散的で不連続な指令点を連続で滑らかな曲線で補間するために、B-スプライン曲線の基本式とノットベクトルの作成方法を紹介します。記事を読むロボットの軌跡生成:指数関数を使って加減速を制御するロボットが移動する際に加速度を考慮する方法として、指数関数を用いた軌跡生成の方法を紹介します。記事を読む台形速度の軌跡生成をしてロボットを制御する方法ロボットをスムーズに動作させるために用いられている台形速度制御について、実際に具体的な値を用いて速度プロファイルを求める流れを紹介します。記事を読むロボットの軌跡生成:移動平均関数を使って加減速を制御するロボットが移動する際に加速度を考慮する方法として、移動平均関数を用いた軌跡生成の方法を紹介します。記事を読むベジエ曲線で離散点を滑らかに補間する与えられた離散的な指令点からベジエ曲線を描く方法を紹介します。各離散点での制約条件から得られる関係式を行列式の形で表すことで、簡単にスプライン曲線のパラメータを算出する方法を紹介します。記事を読むBスプライン曲線で離散点を補間するプログラムを作成してみたBスプライン補間のプログラムを紹介し、Bスプライン曲線を用いて離散点な指令点からスムーズなカーブを作成する方法を紹介します。コメントをキャンセルメールアドレスが公開されることはありません。