ARCS SDK API  0.24.0
axis_interface.h
浏览该文件的文档.
1 /** @file axes.h
2  * @brief 外部轴接口
3  */
4 #ifndef AUBO_SDK_AXIS_INTERFACE_H
5 #define AUBO_SDK_AXIS_INTERFACE_H
6 
7 #include <aubo/sync_move.h>
8 #include <aubo/trace.h>
9 
10 namespace arcs {
11 namespace common_interface {
12 
13 /**
14  * 外部轴API接口
15  */
16 class ARCS_ABI_EXPORT AxisInterface
17 {
18 public:
19  AxisInterface();
20  virtual ~AxisInterface();
21 
22  /**
23  * 通电
24  *
25  * @return
26  */
27  int poweronExtAxis();
28 
29  /**
30  * 断电
31  *
32  * @return
33  */
34  int poweroffExtAxis();
35 
36  /**
37  * 使能
38  *
39  * @return
40  */
41  int enableExtAxis();
42 
43  /**
44  * 设置外部轴的安装位姿(相对于世界坐标系)
45  *
46  * @param pose
47  * @return
48  */
49  int setExtAxisMountingPose(const std::vector<double> &pose);
50 
51  /**
52  * 运动到指定点, 旋转或者平移
53  *
54  * @param pos
55  * @param v
56  * @param a
57  * @param duration
58  * @return
59  */
60  int moveExtJoint(double pos, double v, double a, double duration);
61 
62  /**
63  * 制定目标运动速度
64  *
65  * @param v
66  * @param a
67  * @param duration
68  * @return
69  */
70  int speedExtJoint(double v, double a, double duration);
71 
72  int stopExtJoint(double a);
73 
74  /**
75  * 获取当前外部轴的状态
76  *
77  * @return 当前外部轴的状态
78  */
79  AxisModeType getAxisModeType();
80 
81  /**
82  * 获取外部轴安装位姿
83  *
84  * @return 外部轴安装位姿
85  */
86  std::vector<double> getExtAxisMountingPose();
87 
88  /**
89  * 获取相对于安装坐标系的位姿,外部轴可能为变位机或者导轨
90  *
91  * @return 相对于安装坐标系的位姿
92  */
93  std::vector<double> getExtAxisPose();
94 
95  /**
96  * 获取外部轴位置
97  *
98  * @return 外部轴位置
99  */
100  double getExtAxisPosition();
101 
102  /**
103  * 获取外部轴运行速度
104  *
105  * @return 外部轴运行速度
106  */
107  double getExtAxisVelocity();
108 
109  /**
110  * 获取外部轴运行加速度
111  *
112  * @return 外部轴运行加速度
113  */
114  double getExtAxisAcceleration();
115 
116  /**
117  * 获取外部轴电流
118  *
119  * @return 外部轴电流
120  */
121  double getExtAxisCurrent();
122 
123  /**
124  * 获取外部轴温度
125  *
126  * @return 外部轴温度
127  */
128  double getExtAxisTemperature();
129 
130  /**
131  * 获取外部轴电压
132  *
133  * @return 外部轴电压
134  */
135  double getExtAxisBusVoltage();
136 
137  /**
138  * 获取外部轴电流
139  *
140  * @return 外部轴电流
141  */
142  double getExtAxisBusCurrent();
143 
144  /**
145  * 获取外部轴最大位置
146  *
147  * @return 外部轴最大位置
148  */
149  double getExtAxisMaxPosition();
150 
151  /**
152  * 获取外部轴最小位置
153  *
154  * @return 外部轴最小位置
155  */
156  double getExtMinPosition();
157 
158  /**
159  * 获取外部轴最大速度
160  *
161  * @return 外部轴最大速度
162  */
163  double getExtAxisMaxVelocity();
164 
165  /**
166  * 获取外部轴最大加速度
167  *
168  * @return 外部轴最大加速度
169  */
170  double getExtAxisMaxAcceleration();
171 
172  /**
173  * 跟踪另一个外部轴的运动(禁止运动过程中使用)
174  *
175  * @param target_name 目标的外部轴名字
176  * @param phase 相位差
177  * @param err 跟踪运行的最大误差
178  * @return
179  */
180  int followAnotherAxis(const std::string &target_name, double phase,
181  double err);
182 
183  /**
184  * @brief stopFollowAnotherAxis(禁止运动过程中使用)
185  * @return
186  */
187  int stopFollowAnotherAxis();
188 
189 protected:
190  void *d_;
191 };
192 using AxisInterfacePtr = std::shared_ptr<AxisInterface>;
193 
194 // clang-format off
195 #define AxisInterface_DECLARES \
196  _FUNC(AxisInterface, 0, poweronExtAxis) \
197  _FUNC(AxisInterface, 0, poweroffExtAxis) \
198  _FUNC(AxisInterface, 0, enableExtAxis) \
199  _FUNC(AxisInterface, 1, setExtAxisMountingPose, pose) \
200  _INST(AxisInterface, 4, moveExtJoint, pos, v, a, duration) \
201  _INST(AxisInterface, 3, speedExtJoint, v, a, duration) \
202  _INST(AxisInterface, 1, stopExtJoint, a) \
203  _FUNC(AxisInterface, 0, getAxisModeType) \
204  _FUNC(AxisInterface, 0, getExtAxisMountingPose) \
205  _FUNC(AxisInterface, 0, getExtAxisPose) \
206  _FUNC(AxisInterface, 0, getExtAxisPosition) \
207  _FUNC(AxisInterface, 0, getExtAxisVelocity) \
208  _FUNC(AxisInterface, 0, getExtAxisAcceleration) \
209  _FUNC(AxisInterface, 0, getExtAxisCurrent) \
210  _FUNC(AxisInterface, 0, getExtAxisTemperature) \
211  _FUNC(AxisInterface, 0, getExtAxisBusVoltage) \
212  _FUNC(AxisInterface, 0, getExtAxisBusCurrent) \
213  _FUNC(AxisInterface, 0, getExtAxisMaxPosition) \
214  _FUNC(AxisInterface, 0, getExtMinPosition) \
215  _FUNC(AxisInterface, 0, getExtAxisMaxVelocity) \
216  _FUNC(AxisInterface, 0, getExtAxisMaxAcceleration) \
217  _FUNC(AxisInterface, 3, followAnotherAxis, target_name, phase, err) \
218  _FUNC(AxisInterface, 0, stopFollowAnotherAxis)
219 // clang-format on
220 
221 } // namespace common_interface
222 } // namespace arcs
223 
224 #endif // AUBO_SDK_AXIS_INTERFACE_H
向控制器日志系统注入日志方面的接口
std::shared_ptr< AxisInterface > AxisInterfacePtr
Definition: aubo_api.h:17
同步运行