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.
Dependencies: mbed EC PathFollowing-ver11 CruizCore_R1370P
Revision 6:14cb400f99f7, committed 2018-12-01
- Comitter:
- yuki0701
- Date:
- Sat Dec 01 05:17:16 2018 +0000
- Parent:
- 5:7493649d098b
- Child:
- 7:e269985951bf
- Commit message:
- a
Changed in this revision
| PathFollowing.lib | Show annotated file Show diff for this revision Revisions of this file |
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/PathFollowing.lib Wed Nov 28 05:41:58 2018 +0000 +++ b/PathFollowing.lib Sat Dec 01 05:17:16 2018 +0000 @@ -1,1 +1,1 @@ -https://os.mbed.com/teams/F3RC4/code/PathFollowing-ver6/#d438093cb464 +https://os.mbed.com/teams/F3RC4/code/PathFollowing-ver6/#32362343f091
--- a/main.cpp Wed Nov 28 05:41:58 2018 +0000
+++ b/main.cpp Sat Dec 01 05:17:16 2018 +0000
@@ -164,7 +164,7 @@
calc_xy();
- XYRmotorout(plotx[t],ploty[t],plotx[t+1],ploty[t+1],&x_out,&y_out,&r_out);
+ XYRmotorout(1,plotx[t],ploty[t],plotx[t+1],ploty[t+1],&x_out,&y_out,&r_out);
CalMotorOut(x_out,y_out,r_out); //move4wheel内のモーター番号定義または成分分解が違うかも?
//CalMotorOut(plotvx[t], plotvy[t],0);
@@ -195,7 +195,7 @@
calc_xy();
- XYRmotorout(plotx[t],ploty[t],plotx[t+1],ploty[t+1],&x_out,&y_out,&r_out);
+ XYRmotorout(1,plotx[t],ploty[t],plotx[t+1],ploty[t+1],&x_out,&y_out,&r_out);
CalMotorOut(x_out,y_out,r_out);
base(GetMotorOut(0),GetMotorOut(1),GetMotorOut(2),GetMotorOut(3),1000);
if(((plotx[t+1] - now_x)*(plotx[t+1] - plotx[t]) + (ploty[t+1] - now_y)*(ploty[t+1] - ploty[t])) < 0)t++;
@@ -317,11 +317,11 @@
}
while(1) {
- now_angle=gyro.getAngle(); //ジャイロの値読み込み
+ //now_angle=gyro.getAngle(); //ジャイロの値読み込み
calc_xy();
- XYRmotorout(plotx[t],ploty[t],plotx[t+1],ploty[t+1],&x_out,&y_out,&r_out);
+ XYRmotorout(1,plotx[t],ploty[t],plotx[t+1],ploty[t+1],&x_out,&y_out,&r_out);
CalMotorOut(x_out,y_out,r_out); //move4wheel内のモーター番号定義または成分分解が違うかも?
//CalMotorOut(plotvx[t], plotvy[t],0);
@@ -343,7 +343,7 @@
-void gogo_straight(double x1_point,double y1_point,double x2_point,double y2_point) //直線運動プログラム(引数:出発地点の座標(x,y)、目標地点の座標(x,y))
+void gogo_straight(int type, double x1_point,double y1_point,double x2_point,double y2_point) //直線運動プログラム(引数:type→(1:減速なし/2:減速あり)、出発地点の座標(x,y)、目標地点の座標(x,y))
{
while (1) {
@@ -354,7 +354,7 @@
//Debug_Control();
- XYRmotorout(x1_point,y1_point,x2_point,y2_point,&x_out,&y_out,&r_out);
+ XYRmotorout(type,x1_point,y1_point,x2_point,y2_point,&x_out,&y_out,&r_out);
//printf("x=%lf, y=%lf, r=%lf",x_out, y_out,r_out);
CalMotorOut(x_out,y_out,r_out);
@@ -406,6 +406,8 @@
}
}
+
+
//////////////////////////////////////////////////////////////以下main文////////////////////////////////////////////////////////////////////////
int main()
@@ -419,13 +421,39 @@
now_x=start_x;
now_y=start_y;
- purecurve2(8,0,0,1000,-1000,9);
- //purecurve2(8,0,0,1000,-500,9);
- //purecurve(1,1000,0,1000,9,1000);
- // MotorControl(0,0,0,0);
+ /*set_target_angle(0);
+ purecurve2(1,0,0,1000,1000,9);
+ MotorControl(0,0,0,0);*/
+
+ /* set_target_angle(0);
+ while(1){
+ purecurve2(7,0,0,500,-500,9);
+ MotorControl(0,0,0,0);
+ purecurve2(1,500,-500,1000,0,9);
+ MotorControl(0,0,0,0);
+ purecurve2(3,1000,0,500,500,9);
+ MotorControl(0,0,0,0);
+ purecurve2(5,500,500,0,0,9);
+ MotorControl(0,0,0,0);
+ }*/
+ int a=0;
+ while(1) {
+ set_target_angle(a);
+ gogo_straight(2,0,0,0,-1500);
+ MotorControl(0,0,0,0);
+ wait(1);
- //gogo_straight(0,0,1500,0);
+ a=a+90;
+
+ set_target_angle(a);
+ gogo_straight(2,0,-1500,0,0);
+ MotorControl(0,0,0,0);
+ wait(1);
+
+ a=a+90;
+
+ }
}
///////////////////////////////////////////////////////////////////////以下マクソン関連///////////////////////////////////////////////////////////////////////////
@@ -450,9 +478,9 @@
EC2.setDiameter_mm(48); //測定輪半径
//-----PathFollowingのパラメーター設定-----//
set_p_out(800); //ベクトルABに平行方向の出力値設定関数(カーブを曲がる速度)
- q_setPDparam(0.1,0.1); //ベクトルABに垂直な方向の誤差を埋めるPD制御のパラメータ設定関数
+ q_setPDparam(5,0.1); //ベクトルABに垂直な方向の誤差を埋めるPD制御のパラメータ設定関数
r_setPDparam(10,0.1); //機体角度と目標角度の誤差を埋めるPD制御のパラメータ設定関数
- set_r_out(500); //旋回時の最大出力値設定関数
+ set_r_out(600); //旋回時の最大出力値設定関数
// set_target_angle(0); //機体目標角度設定関数
#ifdef DEBUG_MODE