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: CruizCore_R1370P
Dependents: harurobo-XYRmotorout-ver2
Fork of PathFollowing1-ver3 by
Revision 3:c15d0537ff7e, committed 2018-11-01
- Comitter:
- yuki0701
- Date:
- Thu Nov 01 03:40:05 2018 +0000
- Parent:
- 2:cd72726e166f
- Commit message:
- a;
Changed in this revision
| PathFollowing1.cpp | Show annotated file Show diff for this revision Revisions of this file |
| PathFollowing1.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/PathFollowing1.cpp Thu Nov 01 03:03:45 2018 +0000
+++ b/PathFollowing1.cpp Thu Nov 01 03:40:05 2018 +0000
@@ -3,12 +3,21 @@
#include <math.h>
-namespace{
+
R1370P gyro(PC_6,PC_7);
- }
+ Timer timer;
+
+ double p_out,r_out;
+ double Kvq_p,Kvq_d,Kvr_p,Kvr_d;
+ double diff,diff_old,diffangle,diffangle_old;
+ double out_dutyQ,out_dutyR;
+ double now_angle,target_angle;
+ double now_timeQ,old_timeQ,now_timeR,old_timeR;
+ double now_x, now_y;
+
//初期座標:A, 目標座標:B、機体位置:C、点Cから直線ABに下ろした垂線の足:H
-void pathfollowing1::XYRmotorout(double plot_x1, double plot_y1, double plot_x2, double plot_y2, double *ad_x_out, double *ad_y_out, double *ad_r_out){ //プログラム使用時、now_x,now_yはグローバル変数として定義する必要あり
+void XYRmotorout(double plot_x1, double plot_y1, double plot_x2, double plot_y2, double *ad_x_out, double *ad_y_out, double *ad_r_out){ //プログラム使用時、now_x,now_yはグローバル変数として定義する必要あり
double Vector_P[2] = {(plot_x2 - plot_x1), (plot_y2 - plot_y1)}; //ベクトルAB
double A_Vector_P = hypot(Vector_P[0], Vector_P[1]); //ベクトルABの大きさ(hypot(a,b)で√(a^2+b^2)を計算できる <math.h>))
@@ -62,25 +71,25 @@
-void pathfollowing1::set_p_out(double p){ //ベクトルABに平行方向の出力値設定関数
+void set_p_out(double p){ //ベクトルABに平行方向の出力値設定関数
p_out = p;
}
-void pathfollowing1::q_setPDparam(double q_p,double q_d){ //ベクトルABに垂直な方向の誤差を埋めるPD制御のパラメータ設定関数
+void q_setPDparam(double q_p,double q_d){ //ベクトルABに垂直な方向の誤差を埋めるPD制御のパラメータ設定関数
Kvq_p=q_p;
Kvq_d=q_d;
}
-void pathfollowing1::r_setPDparam(double r_p,double r_d){ //機体角度と目標角度の誤差を埋めるPD制御のパラメータ設定関数
+void r_setPDparam(double r_p,double r_d){ //機体角度と目標角度の誤差を埋めるPD制御のパラメータ設定関数
Kvr_p=r_p;
Kvr_d=r_d;
}
-void pathfollowing1::set_r_out(double r){ //旋回時の最大出力値設定関数
+void set_r_out(double r){ //旋回時の最大出力値設定関数
r_out = r;
}
-void pathfollowing1::set_target_angle(double t){ //機体の目標角度設定関数
+void set_target_angle(double t){ //機体の目標角度設定関数
target_angle = t;
}
--- a/PathFollowing1.h Thu Nov 01 03:03:45 2018 +0000
+++ b/PathFollowing1.h Thu Nov 01 03:40:05 2018 +0000
@@ -2,24 +2,8 @@
#define HARUROBO2019_PATHFOLLOWING_H
#include <EC.h>
#include <R1370P.h>
+extern double now_x,now_y;
-class pathfollowing1 : public Ec
-{
-private:
- double p_out,r_out;
- double Kvq_p,Kvq_d,Kvr_p,Kvr_d;
- double diff,diff_old,diffangle,diffangle_old;
- double out_dutyQ,out_dutyR;
- double now_angle,target_angle;
- double now_timeQ,old_timeQ,now_timeR,old_timeR;
-
-protected:
-
-public:
-
-
-
-double now_x, now_y;
void XYRmotorout(double plot_x1, double plot_y1, double plot_x2, double plot_y2, double *ad_x_out, double *ad_y_out, double *ad_r_out);
//出発地点、目標地点の座標から機体のx軸方向、y軸方向、旋回の出力を算出する関数
@@ -46,5 +30,5 @@
//機体目標角度設定関数
-};
+
#endif
\ No newline at end of file
