ARCS6 AR6-REV.24062600
読み取り中…
検索中…
一致する文字列を見つけられません
InterfaceFunctions.hh
[詳解]
1
5//
6// Copyright (C) 2011-2024 Yokokura, Yuki
7// MIT License. For details, see the LICENSE file.
8
9#ifndef INTERFACEFUNCTIONS
10#define INTERFACEFUNCTIONS
11
12// 基本のインクルードファイル
13#include <array>
14#include "ConstParams.hh"
15#include "ARCSeventlog.hh"
16#include "ARCSassert.hh"
17#include "ARCSprint.hh"
18#include "EquipParams.hh"
19
20// 追加のARCSライブラリをここに記述
21#include "ArcsMatrix.hh"
22#include "Limiter.hh"
23
24namespace ARCS { // ARCS名前空間
28 public:
29 // ここにインターフェース関連の定数を記述する(記述例はsampleを参照)
30
31 // ここにD/A,A/D,エンコーダIFボードクラス等々の宣言を記述する(記述例はsampleを参照)
32
35 // ここにD/A,A/D,エンコーダIFボードクラス等々の初期化子リストを記述する(記述例はsampleを参照)
36 //:
37 {
38 PassedLog();
39 }
40
43 SetZeroCurrent(); // 念のためのゼロ電流指令
44 PassedLog();
45 }
46
48 void ServoON(void){
49 // ここにサーボアンプへのサーボON信号の送出シーケンスを記述する
50
51 }
52
54 void ServoOFF(void){
55 // ここにサーボアンプへのサーボOFF信号の送出シーケンスを記述する
56
57 }
58
60 void SetZeroCurrent(void){
61 // ここにゼロ電流指令とサーボアンプの関係を列記する
62
63 }
64
68 // ここにエンコーダとPositionベクトルとの関係を列記する
69
70 }
71
78 ){
79 // ここにエンコーダ,速度演算結果とPosition,Velocityベクトルとの関係を列記する
80
81 }
82
89 ){
90 // ここにモータ電気角,機械角とElecAngle,MechaAngleベクトルとの関係を列記する
91
92 }
93
97 // ここにトルクセンサとTorqueベクトルとの関係を列記する
98
99 }
100
103 void GetAcceleration(ArcsMat<3,1>& Acceleration){
104 // ここに加速度センサとAccelerationベクトルとの関係を列記する
105
106 }
107
111 // ここに電流センサとCurrentベクトルとの関係を列記する
112
113 }
114
118 // ここにCurrentRefベクトルとサーボアンプの関係を列記する
119
120 }
121
125 // ここにTorqueRefベクトルとサーボアンプの関係を列記する
126
127 }
128
131 void Get6axisForce(ArcsMat<6,1>& ForceTorque){
132 // ここに6軸力覚センサと力/トルクベクトルとの関係を列記する
133
134 }
135
138 void SetSafetySignal(const uint8_t& Signal){
139 // ここに安全信号とDIOポートとの関係を列記する
140
141 }
142
145 void SetZpulseClear(const bool ClearEnable){
146 // インクリメンタルエンコーダのZ(I,C)相クリアの設定が必要な場合に記述する
147
148 }
149
150 private:
151 InterfaceFunctions(const InterfaceFunctions&) = delete;
152 const InterfaceFunctions& operator=(const InterfaceFunctions&) = delete;
153
154 // ここにセンサ取得値とSI単位系の間の換算に関する関数を記述(記述例はsampleを参照)
155
159 static double ConvMotorAngle(const long count){
160 return 0; //ENC_TO_RADIAN*(double)count;
161 }
162
166 static double ConvElectAngle(const long count){
167 return 0; //ENC_TO_RADIAN*(double)(ENC_POLEPARE*( count % (ENC_MAX_COUNT/ENC_POLEPARE) ));
168 }
169};
170}
171
172#endif
173
ARCS イベントログクラス
#define PassedLog()
イベントログ用マクロ(ファイルと行番号のみ記録版)
Definition ARCSeventlog.hh:26
ARCS用ASSERTクラス
ARCS デバッグプリントクラス
リミッタ
ARCS-Matrix 行列演算クラス
実験装置用定数値格納用クラス ARCSに必要な実験装置に特有な定数値を格納します。
定数値格納用クラス ARCSに必要な定数値を格納します。
ARCS-Matrix 行列演算クラス
Definition ArcsMatrix.hh:89
インターフェースクラス 「電流指令,位置,トルク,…等々」と「DAC,エンコーダカウンタ,ADC,…等々」との対応を指定します。
Definition InterfaceFunctions.hh:27
void Get6axisForce(ArcsMat< 6, 1 > &ForceTorque)
6軸力覚センサ応答を取得する関数
Definition InterfaceFunctions.hh:131
void GetAcceleration(ArcsMat< 3, 1 > &Acceleration)
加速度応答を取得する関数
Definition InterfaceFunctions.hh:103
~InterfaceFunctions()
デストラクタ
Definition InterfaceFunctions.hh:42
void GetCurrent(ArcsMat< EquipParams::ACTUATOR_NUM, 1 > &Current)
電流ベクトルを取得する関数
Definition InterfaceFunctions.hh:110
void SetZpulseClear(const bool ClearEnable)
Z相クリアに関する設定をする関数
Definition InterfaceFunctions.hh:145
void ServoON(void)
サーボON信号を送出する関数
Definition InterfaceFunctions.hh:48
InterfaceFunctions()
コンストラクタ
Definition InterfaceFunctions.hh:34
void GetElectricAndMechanicalAngle(ArcsMat< EquipParams::ACTUATOR_NUM, 1 > &ElectAngle, ArcsMat< EquipParams::ACTUATOR_NUM, 1 > &MechaAngle)
モータ電気角と機械角ベクトルを取得する関数
Definition InterfaceFunctions.hh:86
void GetPosition(ArcsMat< EquipParams::ACTUATOR_NUM, 1 > &Position)
位置ベクトルを取得する関数
Definition InterfaceFunctions.hh:67
void SetSafetySignal(const uint8_t &Signal)
安全装置への信号出力を設定する関数
Definition InterfaceFunctions.hh:138
void GetPositionAndVelocity(ArcsMat< EquipParams::ACTUATOR_NUM, 1 > &Position, ArcsMat< EquipParams::ACTUATOR_NUM, 1 > &Velocity)
位置と速度ベクトルを取得する関数
Definition InterfaceFunctions.hh:75
void ServoOFF(void)
サーボOFF信号を送出する関数
Definition InterfaceFunctions.hh:54
void SetZeroCurrent(void)
電流指令をゼロに設定する関数
Definition InterfaceFunctions.hh:60
void SetTorque(const ArcsMat< EquipParams::ACTUATOR_NUM, 1 > &TorqueRef)
トルク指令ベクトルを設定する関数
Definition InterfaceFunctions.hh:124
void SetCurrent(const ArcsMat< EquipParams::ACTUATOR_NUM, 1 > &CurrentRef)
電流指令ベクトルを設定する関数
Definition InterfaceFunctions.hh:117
void GetTorque(ArcsMat< EquipParams::ACTUATOR_NUM, 1 > &Torque)
トルクベクトルを取得する関数
Definition InterfaceFunctions.hh:96