Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Diff: OmniMove.h
- Revision:
- 7:9b9d488ebcfd
- Parent:
- 6:fac3dcaebe83
- Child:
- 9:91ce72a587ad
diff -r fac3dcaebe83 -r 9b9d488ebcfd OmniMove.h --- a/OmniMove.h Mon Mar 29 09:13:27 2021 +0000 +++ b/OmniMove.h Mon Apr 12 10:38:12 2021 +0000 @@ -36,9 +36,29 @@ ・マシンの回転速度Vrollについて 値が正(>0)であれば反時計回り、値が負(<0)であれば時計回りにマシンが回転する -・回転速度の重みroll_ratioについて -例)roll_ratio=0.5の場合→マシンの直進成分が5割、回転成分が5割になる - roll_ratio=0.8の場合→マシンの直進成分が2割、回転成分が8割になる +・使用例(4輪の場合) +#include "mbed.h" +#include "OmniMove/OmniMove.h" //インクルァぁドしてネ + +OmniMove mekanamu; //TickerやTimerのように宣言 + +int main(){ + float motor_output0,motor_output1,motor_output2,motor_output3;//それぞれのモータ出力変数を用意 + + mekanamu.setup(4,45); //車輪の個数、位置を設定(1度宣言すればいい) + + while(1) { + + mekanamu.input_polar(0.5,90,0); //マシンの走行速度、進行方向、回転速度の入力 + + //それぞれのモータ出力変数に値を入力 + motor_output0 = mekanamu.output_(0); + motor_output1 = mekanamu.output_(1); + motor_output2 = mekanamu.output_(2); + motor_output3 = mekanamu.output_(3); + + } +} */ class OmniMove @@ -52,24 +72,24 @@ /* 全方位移動入力関数(極座標) r:マシンの速度(0~1),theta:マシンの進行方向(角度deg ex.90,-45) - Vroll:マシンの回転速度(-1~1),roll_ratio:回転速度の重み(0~1) */ - void input_polar(float r,float theta,float Vroll,float roll_ratio); + Vroll:マシンの回転速度(-1~1) */ + void input_polar(float r,float theta,float Vroll); /* マシンの傾き角度を考慮した全方位移動入力関数(極座標) MachineAng:マシンの現在角度(角度deg ex.90,-45) */ - void input_polar(float r,float theta,float Vroll,float roll_ratio,float MachineAng); + void input_polar(float r,float theta,float Vroll,float MachineAng); /* 全方位移動入力関数(直交座標) x:マシンのx方向速度(-1~1),y:マシンのy方向速度(-1~1) - Vroll:マシンの回転速度(-1~1),roll_ratio:回転速度の重み(0~1) */ - void input_cartesian(float x,float y,float Vroll,float roll_ratio); + Vroll:マシンの回転速度(-1~1) */ + void input_cartesian(float x,float y,float Vroll); /* マシンの傾き角度を考慮した全方位移動入力関数(直交座標) MachineAng:マシンの現在角度(角度deg ex.90,-45) */ - void input_cartesian(float x,float y,float Vroll,float roll_ratio,float MachineAng); + void input_cartesian(float x,float y,float Vroll,float MachineAng); /* 全方位移動出力関数(アドレスよくわからん人用)