ARCS SDK API  0.25.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
10namespace arcs {
11namespace common_interface {
12
13/**
14 * 外部轴API接口
15 */
16class ARCS_ABI_EXPORT AxisInterface
17{
18public:
20 virtual ~AxisInterface();
21
22 /**
23 * 通电
24 *
25 * @return
26 */
28
29 /**
30 * 断电
31 *
32 * @return
33 */
35
36 /**
37 * 使能
38 *
39 * @return
40 */
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 */
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 */
101
102 /**
103 * 获取外部轴运行速度
104 *
105 * @return 外部轴运行速度
106 */
108
109 /**
110 * 获取外部轴运行加速度
111 *
112 * @return 外部轴运行加速度
113 */
115
116 /**
117 * 获取外部轴电流
118 *
119 * @return 外部轴电流
120 */
122
123 /**
124 * 获取外部轴温度
125 *
126 * @return 外部轴温度
127 */
129
130 /**
131 * 获取外部轴电压
132 *
133 * @return 外部轴电压
134 */
136
137 /**
138 * 获取外部轴电流
139 *
140 * @return 外部轴电流
141 */
143
144 /**
145 * 获取外部轴最大位置
146 *
147 * @return 外部轴最大位置
148 */
150
151 /**
152 * 获取外部轴最小位置
153 *
154 * @return 外部轴最小位置
155 */
157
158 /**
159 * 获取外部轴最大速度
160 *
161 * @return 外部轴最大速度
162 */
164
165 /**
166 * 获取外部轴最大加速度
167 *
168 * @return 外部轴最大加速度
169 */
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 */
188
189protected:
190 void *d_;
191};
192using 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
double getExtAxisCurrent()
获取外部轴电流
int speedExtJoint(double v, double a, double duration)
制定目标运动速度
int followAnotherAxis(const std::string &target_name, double phase, double err)
跟踪另一个外部轴的运动(禁止运动过程中使用)
double getExtAxisVelocity()
获取外部轴运行速度
int setExtAxisMountingPose(const std::vector< double > &pose)
设置外部轴的安装位姿(相对于世界坐标系)
double getExtAxisMaxPosition()
获取外部轴最大位置
double getExtAxisBusVoltage()
获取外部轴电压
std::vector< double > getExtAxisPose()
获取相对于安装坐标系的位姿,外部轴可能为变位机或者导轨
int moveExtJoint(double pos, double v, double a, double duration)
运动到指定点, 旋转或者平移
double getExtAxisPosition()
获取外部轴位置
double getExtAxisMaxVelocity()
获取外部轴最大速度
double getExtAxisAcceleration()
获取外部轴运行加速度
double getExtAxisBusCurrent()
获取外部轴电流
std::vector< double > getExtAxisMountingPose()
获取外部轴安装位姿
int stopFollowAnotherAxis()
stopFollowAnotherAxis(禁止运动过程中使用)
double getExtMinPosition()
获取外部轴最小位置
AxisModeType getAxisModeType()
获取当前外部轴的状态
double getExtAxisTemperature()
获取外部轴温度
double getExtAxisMaxAcceleration()
获取外部轴最大加速度
std::shared_ptr< AxisInterface > AxisInterfacePtr
同步运行
向控制器日志系统注入日志方面的接口