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: Control/ControllerManager.cpp
- Revision:
- 7:6f7bd18ce796
- Parent:
- 6:0d9fa7152934
- Child:
- 8:ca92cb674004
--- a/Control/ControllerManager.cpp Sat Oct 10 20:16:31 2015 +0000
+++ b/Control/ControllerManager.cpp Sat Oct 10 22:53:05 2015 +0000
@@ -9,9 +9,6 @@
*(ニュートラルが0.5からずれているかもしれない)、サーボの角度に変換してglobalに値をセットする
*/
-//次の目標はlocalメモリ上にニュートラル等の情報を保持し、リセットされる度に、そこから値を取得する
-//globalのinitializeを作って、起動毎に呼び出す
-
ControllerManager::ControllerManager(PinName b, PinName h, PinName v)
: controller(b, h, v){
@@ -193,18 +190,23 @@
return value;
}
}
-//ニュートラル基準でピッチ、ヨーともに[-1.0,1.0]の範囲で値を返す(maxpitchdegree=1.0;neutralpitchdegree=0.5;minpitchdegree=0.0;のとき)
+//ニュートラル基準でピッチ、ヨーとも[-1,1]となるような値を返す(maxpitchdegree=1.0;neutralpitchdegree=0.5;minpitchdegree=0.0;のとき)
double ControllerManager::pitchratio(){
- return 2.0*(controller.getV() - neutralpitchdegree)/(maxpitchdegree-minpitchdegree);
+ if(controller.getV() < neutralpitchdegree){
+ return clamp((controller.getV() - neutralpitchdegree) / (neutralpitchdegree - minpitchdegree), -1, 0);
+ }else{
+ return clamp((controller.getV() - neutralpitchdegree) / (maxpitchdegree - neutralpitchdegree), 0, 1);
+ }
}
double ControllerManager::yawratio(){
- return -2.0*(controller.getH() - neutralyawdegree)/(maxpitchdegree-minpitchdegree);
+ if(controller.getH() < neutralyawdegree){
+ return clamp((controller.getH() - neutralyawdegree) / (neutralyawdegree - minyawdegree), -1, 0);
+ }else{
+ return clamp((controller.getH() - neutralyawdegree) / (maxyawdegree - neutralyawdegree), 0, 1);
+ }
}
-
-
-
//pitchratioを設定したmaxpitch,minpitch倍にする
double ControllerManager::doublepitch(double pitchratio){
if(pitchratio<0){