cmvr-es/third_party/AuboSdk/linux/include/aubo/robot/motion_control.h

5938 lines
198 KiB
C
Raw Normal View History

2025-11-18 10:07:08 +08:00
/** @file motion_control.h
* \~chinese @brief
* \~english @brief Motion control interface
*/
#ifndef AUBO_SDK_MOTION_CONTROL_INTERFACE_H
#define AUBO_SDK_MOTION_CONTROL_INTERFACE_H
#include <vector>
#include <functional>
#include <thread>
#include <aubo/global_config.h>
#include <aubo/type_def.h>
namespace arcs {
namespace common_interface {
/**
* \chinese
* pathBuffer类型
*
* 姿姿
* \endchinese
* \english
*
* pathBuffer Type
*
* The robot movements are programmed as pose-to-pose movements, that is move
* from the current position to a new position. The path between these two
* positions is then automatically calculated by the robot.
* \endenglish
*/
enum PathBufferType
{
PathBuffer_TOPPRA = 1, ///< \~chinese 1: toppra 时间最优路径规划 \~english
///< 1: toppra time optimal path planning
PathBuffer_CubicSpline =
2, ///< \~chinese 2: cubic_spline(录制的轨迹) \~english 2: cubic_spline
///< (recorded trajectory)
/// \~chinese 3: 关节B样条插值最少三个点 \~english 3: Joint B-spline
/// interpolation, at least three points
/// \~chinese 废弃建议用5替代现在实际是关节空间 CUBIC_SPLINE \~english
/// Deprecated, use 5 instead, currently it is joint space CUBIC_SPLINE
PathBuffer_JointSpline = 3,
/// \~chinese 4:关节B样条插值最少三个点但是传入的是笛卡尔空间位姿
/// \~english 4: Joint B-spline interpolation, at least three points, but
/// the input is Cartesian space pose 废弃建议用6替代现在实际是关节空间
/// CUBIC_SPLINE
PathBuffer_JointSplineC = 4,
///< \~chinese 5: 关节B样条插值最少三个点 \~english 5: Joint B-spline
///< interpolation, at least three points
PathBuffer_JointBSpline = 5,
/// \~chinese 6:关节B样条插值最少三个点但是传入的是笛卡尔空间位姿
/// \~english 6: Joint B-spline interpolation, at least three points, but
/// the input is Cartesian space pose
PathBuffer_JointBSplineC = 6,
};
/**
* MotionControl
*/
class ARCS_ABI_EXPORT MotionControl
{
public:
MotionControl();
virtual ~MotionControl();
/**
* \chinese
* m
* moveLine/moveCircle时姿
* setEqradius 1
*
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getEqradius(self: pyaubo_sdk.MotionControl) -> float
*
* @par Lua函数原型
* getEqradius() -> number
*
* @par Lua
* num = getEqradius()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getEqradius","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":1.0}
* \endchinese
* \english
* Get the equivalent radius, in meters.
* When using moveLine/moveCircle, the rotation angle of the end effector's
* pose is converted to an equivalent end position movement. Can be set via
* setEqradius, default is 1.
*
* @return Returns the equivalent radius.
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getEqradius(self: pyaubo_sdk.MotionControl) -> float
*
* @par Lua function prototype
* getEqradius() -> number
*
* @par Lua example
* num = getEqradius()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getEqradius","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":1.0}
* \endenglish
*/
double getEqradius();
/**
* \chinese
* m
* moveLine/moveCircle时姿姿
*
* @param eqradius 0姿
*
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setEqradius","params":[0.8],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* @par Python函数原型
* setEqradius(self: pyaubo_sdk.MotionControl, arg0: float) -> int
*
* @par Lua函数原型
* setEqradius(eqradius: number) -> number
*
* @par Lua示例
* num = setEqradius(1)
*
* \endchinese
* \english
* Set the equivalent radius, in meters.
* When using moveLine/moveCircle, the rotation angle of the end effector's
* pose is converted to an equivalent end position movement. The larger the
* value, the faster the posture rotation speed.
*
* @param eqradius 0 means only plan the movement, and the posture rotation
* follows the movement.
*
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setEqradius","params":[0.8],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* @par Python function prototype
* setEqradius(self: pyaubo_sdk.MotionControl, arg0: float) -> int
*
* @par Lua function prototype
* setEqradius(eqradius: number) -> number
*
* @par Lua example
* num = setEqradius(1)
*
* \endenglish
*/
int setEqradius(double eqradius);
/**
* \chinese
* (0., 1.]
*
* @param fraction
* @return 0;
* AUBO_INVL_ARGUMENT
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setSpeedFraction(self: pyaubo_sdk.MotionControl, arg0: float) -> int
*
* @par Lua函数原型
* setSpeedFraction(fraction: number) -> nil
*
* @par Lua示例
* setSpeedFraction(0.5)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setSpeedFraction","params":[0.8],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Dynamically adjust the robot's speed and acceleration ratio (0., 1.]
*
* @param fraction The ratio of robot speed and acceleration
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_INVL_ARGUMENT
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setSpeedFraction(self: pyaubo_sdk.MotionControl, arg0: float) -> int
*
* @par Lua function prototype
* setSpeedFraction(fraction: number) -> nil
*
* @par Lua example
* setSpeedFraction(0.5)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setSpeedFraction","params":[0.8],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int setSpeedFraction(double fraction);
/**
* \chinese
* 1
* setSpeedFraction
*
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getSpeedFraction(self: pyaubo_sdk.MotionControl) -> float
*
* @par Lua函数原型
* getSpeedFraction() -> number
*
* @par Lua示例
* num = getSpeedFraction()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getSpeedFraction","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":1.0}
* \endchinese
* \english
* Get the speed and acceleration ratio, default is 1.
* Can be set via setSpeedFraction interface.
*
* @return Returns the speed and acceleration ratio.
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getSpeedFraction(self: pyaubo_sdk.MotionControl) -> float
*
* @par Lua function prototype
* getSpeedFraction() -> number
*
* @par Lua example
* num = getSpeedFraction()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getSpeedFraction","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":1.0}
* \endenglish
*/
double getSpeedFraction();
/**
* \chinese
* 使1. ,
*
*
* @param enable
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua函数原型
* speedFractionCritical() -> bool
*
* @par Lua示例
* speedFractionCritical(true)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.speedFractionCritical","params":[true],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Speed fraction critical section. When enabled, the speed fraction is
* forced to 1. When disabled, the previous speed fraction is restored.
*
* @param enable
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua function prototype
* speedFractionCritical() -> nil
*
* @par Lua example
* speedFractionCritical(true)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.speedFractionCritical","params":[true],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int speedFractionCritical(bool enable);
/**
* \chinese
*
*
* @return true; false
*
* @throws arcs::common_interface::AuboException
*
* @par Lua函数原型
* isSpeedFractionCritical() -> bool
*
* @par Lua示例
* status = isSpeedFractionCritical()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isSpeedFractionCritical","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":true}
* \endchinese
* \english
* Whether it is in the speed fraction critical section
*
* @return Returns true if in the speed fraction critical section; otherwise
* returns false
*
* @throws arcs::common_interface::AuboException
*
* @par Lua function prototype
* isSpeedFractionCritical() -> bool
*
* @par Lua example
* status = isSpeedFractionCritical()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isSpeedFractionCritical","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":true}
* \endenglish
*/
bool isSpeedFractionCritical();
/**
* \chinese
*
*
* @return true; false
*
* @throws arcs::common_interface::AuboException
*
* @par Lua函数原型
* isBlending() -> bool
*
* @par Lua示例
* status = isBlending()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isBlending","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":false}
* \endchinese
* \english
* Whether it is in the blending area
*
* @return Returns true if in the blending area; otherwise returns false
*
* @throws arcs::common_interface::AuboException
*
* @par Lua function prototype
* isBlending() -> bool
*
* @par Lua example
* status = isBlending()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isBlending","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":false}
* \endenglish
*/
bool isBlending();
/**
* \chinese
*
* pathOffsetSet中 type=1
* @param v
* @param a
* @return 0
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathOffsetLimits(self: pyaubo_sdk.MotionControl, arg0: float, arg1:
* float) -> int
*
* @par Lua函数原型
* pathOffsetLimits(v: number, a: number) -> nil
*
* @par Lua示例
* pathOffsetLimits(1.5,2.5)
*
* \endchinese
* \english
* Set the maximum speed and maximum acceleration for offset.
* Only valid when type=1 in pathOffsetSet.
* @param v Maximum speed
* @param a Maximum acceleration
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathOffsetLimits(self: pyaubo_sdk.MotionControl, arg0: float, arg1:
* float) -> int
*
* @par Lua function prototype
* pathOffsetLimits(v: number, a: number) -> nil
*
* @par Lua example
* pathOffsetLimits(1.5,2.5)
*
* \endenglish
*/
int pathOffsetLimits(double v, double a);
/**
* \chinese
*
* pathOffsetSet中 type=1
* @param ref_coord 0- 1-TCP
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathOffsetCoordinate(self: pyaubo_sdk.MotionControl, arg0: int) -> float
*
* @par Lua函数原型
* pathOffsetCoordinate(ref_coord: number) -> number
*
* @par Lua示例
* num = pathOffsetCoordinate(0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathOffsetCoordinate","params":[0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Set the reference coordinate system for offset.
* Only valid when type=1 in pathOffsetSet.
* @param ref_coord Reference coordinate system: 0-base coordinate, 1-TCP
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathOffsetCoordinate(self: pyaubo_sdk.MotionControl, arg0: int) -> float
*
* @par Lua function prototype
* pathOffsetCoordinate(ref_coord: number) -> number
*
* @par Lua example
* num = pathOffsetCoordinate(0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathOffsetCoordinate","params":[0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int pathOffsetCoordinate(int ref_coord);
/**
* \chinese
* 使
*
* @return 0;
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathOffsetEnable(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* pathOffsetEnable() -> number
*
* @par Lua示例
* num = pathOffsetEnable()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathOffsetEnable","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Enable path offset
*
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathOffsetEnable(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* pathOffsetEnable() -> number
*
* @par Lua example
* num = pathOffsetEnable()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathOffsetEnable","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int pathOffsetEnable();
/**
* \chinese
*
*
* @param offset 姿
* @param type 0- 1-
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathOffsetSet(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* int) -> int
*
* @par Lua函数原型
* pathOffsetSet(offset: table, type: number) -> nil
*
* @par Lua
* pathOffsetSet({ 0, 0, 0.1, 0, 0, 0 }, 0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathOffsetSet","params":[[0,0,0.01,0,0,0],0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Set path offset
*
* @param offset Pose offset in each direction
* @param type Motion type 0-position planning 1-velocity planning
* @return Returns 0 on success; otherwise returns error code
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathOffsetSet(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* int) -> int
*
* @par Lua function prototype
* pathOffsetSet(offset: table, type: number) -> nil
*
* @par Lua example
* pathOffsetSet({ 0, 0, 0.1, 0, 0, 0 }, 0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathOffsetSet","params":[[0,0,0.01,0,0,0],0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int pathOffsetSet(const std::vector<double> &offset, int type = 0);
/**
* \chinese
*
*
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathOffsetDisable(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* pathOffsetDisable() -> nil
*
* @par Lua示例
* pathOffsetDisable()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathOffsetDisable","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Disable path offset
*
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathOffsetDisable(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* pathOffsetDisable() -> nil
*
* @par Lua example
* pathOffsetDisable()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathOffsetDisable","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int pathOffsetDisable();
/**
* \chinese
* @brief
* @param min: 沿
* @param max: 沿
* @param strategy:
*     0-
*     1-姿
*     2-
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathOffsetSupv(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* List[float], arg2: int) -> int
*
* @par Lua函数原型
* pathOffsetSupv(min: table, max: table, strategy: number) -> number
*
* @par Lua示例
* num = pathOffsetSupv({0,0,-0.2,0,0,0},{0,0,0.5,0,0,0},0)
*
* \endchinese
* \english
* @brief Monitor trajectory offset range
* @param min: Maximum offset in the negative direction of the coordinate
* axis
* @param max: Maximum offset in the positive direction of the coordinate
* axis
* @param strategy: Monitoring strategy after reaching the maximum offset
*     0 - Disable monitoring
*     1 - Saturation limit, i.e., maintain maximum pose
*     2 - Protective stop
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathOffsetSupv(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* List[float], arg2: int) -> int
*
* @par Lua function prototype
* pathOffsetSupv(min: table, max: table, strategy: number) -> number
*
* @par Lua example
* num = pathOffsetSupv({0,0,-0.2,0,0,0},{0,0,0.5,0,0,0},0)
*
* \endenglish
*/
int pathOffsetSupv(const std::vector<double> &min,
const std::vector<double> &max, int strategy);
/**
* \chinese
* 使
*
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* jointOffsetEnable(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* jointOffsetEnable() -> nil
*
* @par Lua示例
* jointOffsetEnable()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.jointOffsetEnable","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Enable joint offset
*
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* jointOffsetEnable(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* jointOffsetEnable() -> nil
*
* @par Lua example
* jointOffsetEnable()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.jointOffsetEnable","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int jointOffsetEnable();
/**
* \chinese
*
*
* @param offset 姿
* @param type
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* jointOffsetSet(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* int) -> int
*
* @par Lua函数原型
* jointOffsetSet(offset: table, type: number) -> nil
*
* @par Lua示例
* jointOffsetSet({0.1,0,0,0,0,0},1)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.jointOffsetSet","params":[[0.1,0,0,0,0],1],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Set joint offset
*
* @param offset Pose offset for each joint
* @param type
* @return Returns 0 on success; otherwise returns error code
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* jointOffsetSet(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* int) -> int
*
* @par Lua function prototype
* jointOffsetSet(offset: table, type: number) -> nil
*
* @par Lua example
* jointOffsetSet({0.1,0,0,0,0,0},1)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.jointOffsetSet","params":[[0.1,0,0,0,0],1],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int jointOffsetSet(const std::vector<double> &offset, int type = 1);
/**
* \chinese
*
*
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* jointOffsetDisable(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* jointOffsetDisable() -> nil
*
* @par Lua示例
* jointOffsetDisable()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.jointOffsetDisable","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Disable joint offset
*
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* jointOffsetDisable(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* jointOffsetDisable() -> nil
*
* @par Lua example
* jointOffsetDisable()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.jointOffsetDisable","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int jointOffsetDisable();
/**
* \chinese
* (INST)
* moveJoint/moveLine/moveCircle setPayload
*
* _INST , moveJoint
* _INST(MotionControl, 5, moveJoint, q, a, v, blend_radius, duration)
*
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getQueueSize(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* getQueueSize() -> number
*
* @par Lua示例
* num = getQueueSize()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getQueueSize","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Get the number of enqueued instruction segments (INST), including motion
* instructions such as moveJoint/moveLine/moveCircle and configuration
* instructions such as setPayload.
*
* Instructions are generally indicated with _INST in macro definitions, for
* example: _INST(MotionControl, 5, moveJoint, q, a, v, blend_radius,
* duration)
*
* @return The number of enqueued instruction segments.
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getQueueSize(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* getQueueSize() -> number
*
* @par Lua example
* num = getQueueSize()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getQueueSize","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int getQueueSize();
/**
* \chinese
*
*
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getTrajectoryQueueSize(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* getTrajectoryQueueSize() -> number
*
* @par Lua示例
* num = getTrajectoryQueueSize()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getTrajectoryQueueSize","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Get the number of enqueued motion planning interpolation points
*
* @return The number of enqueued motion planning interpolation points
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getTrajectoryQueueSize(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* getTrajectoryQueueSize() -> number
*
* @par Lua example
* num = getTrajectoryQueueSize()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getTrajectoryQueueSize","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int getTrajectoryQueueSize();
/**
* \chinese
* ID
*
* @return ID
* @retval -1 \n
* movePathBuffer运动中的buffer或者规划器(moveJoint和moveLine等)
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getExecId(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* getExecId() -> number
*
* @par Lua示例
* num = getExecId()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getExecId","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endchinese
* \english
* Get the ID of the currently interpolating motion instruction segment.
*
* @return The ID of the currently interpolating motion instruction segment.
* @retval -1 Indicates the trajectory queue is empty. \n
* Both the buffer in movePathBuffer motion and the queue in the planner
* (such as moveJoint and moveLine) belong to the trajectory queue.
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getExecId(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* getExecId() -> number
*
* @par Lua example
* num = getExecId()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getExecId","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endenglish
*/
int getExecId();
/**
* \chinese
* ID的运动指令段的预期执行时间
*
* @param id ID
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getDuration(self: pyaubo_sdk.MotionControl, arg0: int) -> float
*
* @par Lua函数原型
* getDuration(id: number) -> number
*
* @par Lua示例
* num = getDuration(16)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getDuration","params":[16],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0.0}
*
* \endchinese
* \english
* Get the expected execution duration of the motion segment with the
* specified ID.
*
* @param id Motion segment ID
* @return Returns the expected execution duration
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getDuration(self: pyaubo_sdk.MotionControl, arg0: int) -> float
*
* @par Lua function prototype
* getDuration(id: number) -> number
*
* @par Lua example
* num = getDuration(16)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getDuration","params":[16],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0.0}
*
* \endenglish
*/
double getDuration(int id);
/**
* \chinese
* ID的运动指令段的剩余执行时间
*
* @param id ID
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getMotionLeftTime(self: pyaubo_sdk.MotionControl, arg0: int) -> float
*
* @par Lua函数原型
* getMotionLeftTime(id: number) -> number
*
* @par Lua示例
* num = getMotionLeftTime(16)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getMotionLeftTime","params":[16],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0.0}
* \endchinese
* \english
* Get the remaining execution time of the motion segment with the specified
* ID.
*
* @param id Motion segment ID
* @return Returns the remaining execution time
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getMotionLeftTime(self: pyaubo_sdk.MotionControl, arg0: int) -> float
*
* @par Lua function prototype
* getMotionLeftTime(id: number) -> number
*
* @par Lua example
* num = getMotionLeftTime(16)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getMotionLeftTime","params":[16],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0.0}
* \endenglish
*/
double getMotionLeftTime(int id);
/**
* \chinese
* StopMove
* StartMove
*
*
*
* @param quick true: quick
*
*
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua函数原型
* StopMove(quick: bool,all_tasks: bool) -> number
*
* @par Lua示例
* num = StopMove(true,true)
*
* \endchinese
* \english
* StopMove is used to stop robot and external axes movements and any
* belonging process temporarily. If the instruction StartMove is given then
* the movement and process resumes.
*
* This instruction can, for example, be used in a trap routine to stop the
* robot temporarily when an interrupt occurs.
*
* @param quick true: Stops the robot on the path as fast as possible.
* Without the optional parameter \Quick, the robot stops on the path, but
* the braking distance is longer (same as for normal Program Stop).
*
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua function prototype
* StopMove(quick: bool,all_tasks: bool) -> number
*
* @par Lua example
* num = StopMove(true,true)
*
* \endenglish
*/
int stopMove(bool quick, bool all_tasks);
/**
* \chinese
* StartMove
* StopMove
* StorePath ... RestoPath
* ERR_PATH_STOP ERROR
*
*
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua函数原型
* startMove() -> number
*
* @par Lua示例
* num = startMove()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.startMove","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* StartMove is used to resume robot, external axes movement and belonging
* process after the movement has been stopped
*
* by the instruction StopMove.
* after execution of StorePath ... RestoPath sequence.
* after asynchronously raised movements errors, such as ERR_PATH_STOP or
* specific process error after handling in the ERROR handler.
*
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua function prototype
* startMove() -> number
*
* @par Lua example
* num = startMove()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.startMove","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int startMove();
/**
* \chinese
* storePath
*
* @param keep_sync
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua函数原型
* storePath(keep_sync: bool) -> number
*
* @par Lua示例
* num = storePath()
*
* \endchinese
* \english
* storePath
*
* @param keep_sync
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua function prototype
* storePath(keep_sync: bool) -> number
*
* @par Lua example
* num = storePath()
*
* \endenglish
*/
int storePath(bool keep_sync);
/**
* \chinese
* ClearPath () StorePath
*
*
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua函数原型
* clearPath() -> number
*
* @par Lua示例
* num = clearPath()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.clearPath","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* ClearPath clears the whole motion path on the current motion path level
* (base level or StorePath level).
*
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua function prototype
* clearPath() -> number
*
* @par Lua example
* num = clearPath()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.clearPath","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int clearPath();
/**
* \chinese
* restoPath
*
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua函数原型
* restoPath() -> number
*
* @par Lua示例
* num = restoPath()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.restoPath","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* restoPath
*
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua function prototype
* restoPath() -> number
*
* @par Lua example
* num restoPath()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.restoPath","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int restoPath();
/**
* \chinese
*
*
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getProgress(self: pyaubo_sdk.MotionControl) -> float
*
* @par Lua函数原型
* getProgress() -> number
*
* @par Lua示例
* num = getProgress()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getProgress","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0.0}
*
* \endchinese
* \english
* Get the execution progress of the current motion instruction segment.
*
* @return Returns the execution progress.
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getProgress(self: pyaubo_sdk.MotionControl) -> float
*
* @par Lua function prototype
* getProgress() -> number
*
* @par Lua example
* num = getProgress()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getProgress","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0.0}
*
* \endenglish
*/
double getProgress();
/**
* \chinese
*
*
* @note
*
* @param module_name
* @param mounting_pose
* TCP点
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setWorkObjectHold(self: pyaubo_sdk.MotionControl, arg0: str, arg1:
* List[float]) -> int
*
* @par Lua函数原型
* setWorkObjectHold(module_name: string, mounting_pose: table) -> nil
*
* @par Lua示例
* setWorkObjectHold("object",{0.2,0.1,-0.4,3.14,0,-1.57})
*
* \endchinese
* \english
* Specify the name and mounting position when the workpiece is installed on
* the end of another robot or external axis.
*
* @note Not implemented yet
*
* @param module_name Name of the control module
* @param mounting_pose Relative position of the grasp,
* if it is a robot, it is relative to the robot's end center point (not the
* TCP point)
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setWorkObjectHold(self: pyaubo_sdk.MotionControl, arg0: str, arg1:
* List[float]) -> int
*
* @par Lua function prototype
* setWorkObjectHold(module_name: string, mounting_pose: table) -> nil
*
* @par Lua example
* setWorkObjectHold("object",{0.2,0.1,-0.4,3.14,0,-1.57})
*
* \endenglish
*/
int setWorkObjectHold(const std::string &module_name,
const std::vector<double> &mounting_pose);
/**
* \chinese
*
*
* @note
*
* @return 姿
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getWorkObjectHold(self: pyaubo_sdk.MotionControl) -> Tuple[str,
* List[float]]
*
* @par Lua函数原型
* getWorkObjectHold() -> table
*
* @par Lua示例
* Object_table = getWorkObjectHold()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getWorkObjectHold","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":["",[]]}
* \endchinese
* \english
* getWorkObjectHold
*
* @note Not implemented yet
*
* @return Returns a tuple containing the control module name and mounting
* pose
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getWorkObjectHold(self: pyaubo_sdk.MotionControl) -> Tuple[str,
* List[float]]
*
* @par Lua function prototype
* getWorkObjectHold() -> table
*
* @par Lua example
* Object_table = getWorkObjectHold()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getWorkObjectHold","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":["",[]]}
* \endenglish
*/
std::tuple<std::string, std::vector<double>> getWorkObjectHold();
/**
* \chinese
* @note
*
* (resumeMoveJoint或resumeMoveLine运动到暂停位置,)
*
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getPauseJointPositions(self: pyaubo_sdk.MotionControl) -> List[float]
*
* @par Lua函数原型
* getPauseJointPositions() -> table
*
* @par Lua示例
* JointPositions = getPauseJointPositions()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getPauseJointPositions","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":[8.2321e-13,-0.200999,1.33999,0.334999,1.206,-6.39383e-12]}
* \endchinese
* \english
* @note Get the joint positions at the pause point.
*
* Commonly used during process recovery after a collision occurs (first
* move to the pause position using resumeMoveJoint or resumeMoveLine, then
* resume the process).
*
* @return Pause joint positions
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getPauseJointPositions(self: pyaubo_sdk.MotionControl) -> List[float]
*
* @par Lua function prototype
* getPauseJointPositions() -> table
*
* @par Lua example
* JointPositions = getPauseJointPositions()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getPauseJointPositions","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":[8.2321e-13,-0.200999,1.33999,0.334999,1.206,-6.39383e-12]}
* \endenglish
*/
std::vector<double> getPauseJointPositions();
/**
* \chinese
*
*
* @param q
* @param move_type 0: 1
* @param blend_radius
* @param qdmax (6)
* @param qddmax (6)
* @param vmax 线线,(2)
* @param amax 线线(2)
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setResumeStartPoint(self: pyaubo_sdk.MotionControl,
* arg0List[float],arg1: int arg2: floatarg3: List[float], arg4:
* List[float],arg5:float,arg5:float) -> int
*
* @par Lua函数原型
* setResumeStartPoint(q : table, move_type: number,blend_radius:
* number, qdmax: table, qddmax:
* table,vmax:number,amax:number) -> nilr
*
* @par Lua示例
* setResumeStartPoint({0,0,0,0,0,0},1,1,{0,0,0,0,0,0},{0,0,0,0,0,0},{1,1},{1,1})
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setResumeStartPoint","params":[[0,0,0,0,0,0],1,1,[0,0,0,0,0,0],[0,0,0,0,0,0],1,1],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Set resume motion parameters
*
* @param q Resume start position
* @param move_type 0: Joint space, 1: Cartesian space
* @param blend_radius Blend radius
* @param qdmax Maximum joint speed (6 elements)
* @param qddmax Maximum joint acceleration (6 elements)
* @param vmax Maximum linear and angular speed for linear motion (2
* elements)
* @param amax Maximum linear and angular acceleration for linear motion (2
* elements)
* @return Returns 0 on success; otherwise returns error code
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setResumeStartPoint(self: pyaubo_sdk.MotionControl,
* arg0: List[float], arg1: int, arg2: float, arg3: List[float], arg4:
* List[float], arg5: float, arg6: float) -> int
*
* @par Lua function prototype
* setResumeStartPoint(q: table, move_type: number, blend_radius:
* number, qdmax: table, qddmax:
* table, vmax: number, amax: number) -> nil
*
* @par Lua example
* setResumeStartPoint({0,0,0,0,0,0},1,1,{0,0,0,0,0,0},{0,0,0,0,0,0},{1,1},{1,1})
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setResumeStartPoint","params":[[0,0,0,0,0,0],1,1,[0,0,0,0,0,0],[0,0,0,0,0,0],1,1],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int setResumeStartPoint(const std::vector<double> &q, int move_type,
double blend_radius,
const std::vector<double> &qdmax,
const std::vector<double> &qddmax,
const std::vector<double> &vmax,
const std::vector<double> &amax);
/**
* \chinese
*
*
* @return 0: 1:
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getResumeMode(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* getResumeMode() -> int
*
* @par Lua示例
* num = getResumeMode()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getResumeMode","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":false}
*
* \endchinese
* \english
* Get resume motion mode
*
* @return 0: Resume start point is the pause point; 1: Resume start point
* is the specified point
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getResumeMode(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* getResumeMode() -> int
*
* @par Lua example
* num = getResumeMode()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getResumeMode","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":false}
*
* \endenglish
*/
int getResumeMode();
/**
* \chinese
*
* 使 setServoModeSelect
*
* @param enable 使
* @return 0;
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setServoMode(self: pyaubo_sdk.MotionControl, arg0: bool) -> int
*
* @par Lua函数原型
* setServoMode(enable: boolean) -> nil
*
* @par Lua示例
* setServoMode(true)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setServoMode","params":[true],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Set servo mode
* Use setServoModeSelect instead
*
* @param enable Whether to enable
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setServoMode(self: pyaubo_sdk.MotionControl, arg0: bool) -> int
*
* @par Lua function prototype
* setServoMode(enable: boolean) -> nil
*
* @par Lua example
* setServoMode(true)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setServoMode","params":[true],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
ARCS_DEPRECATED int setServoMode(bool enable);
/**
* \chinese
* 使
* 使 getServoModeSelect
*
* @return 使truefalse
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* isServoModeEnabled(self: pyaubo_sdk.MotionControl) -> bool
*
* @par Lua函数原型
* isServoModeEnabled() -> boolean
*
* @par Lua示例
* Servo_status = isServoModeEnabled()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isServoModeEnabled","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":false}
*
* \endchinese
* \english
* Determine whether the servo mode is enabled.
* Use getServoModeSelect instead.
*
* @return Returns true if enabled, otherwise returns false.
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* isServoModeEnabled(self: pyaubo_sdk.MotionControl) -> bool
*
* @par Lua function prototype
* isServoModeEnabled() -> boolean
*
* @par Lua example
* Servo_status = isServoModeEnabled()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isServoModeEnabled","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":false}
*
* \endenglish
*/
ARCS_DEPRECATED bool isServoModeEnabled();
/**
* \chinese
*
*
* @param mode
* 0-退
* 1-()
* 2-()
* 3-()
* 4-1ms透传模式()
* 5-
* 1线()
* 5
* @return
*
* @par Lua函数原型
* setServoModeSelect(0) -> nil
*
* @par Lua示例
* setServoModeSelect(0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setServoModeSelect","params":[0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Set servo motion mode
*
* @param mode
* 0 - Exit servo mode
* 1 - Planning servo mode
* 2 - Transparent mode (direct send)
* 3 - Transparent mode (buffered)
* @return
*
* @par Lua function prototype
* setServoModeSelect(0) -> nil
*
* @par Lua example
* setServoModeSelect(0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setServoModeSelect","params":[0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int setServoModeSelect(int mode);
/**
* \chinese
*
*
* @return
*
* @par Lua函数原型
* getServoModeSelect() -> number
*
* @par Lua示例
* num = getServoModeSelect()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getServoModeSelect","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Get the servo motion mode
*
* @return
*
* @par Lua function prototype
* getServoModeSelect() -> number
*
* @par Lua example
* num = getServoModeSelect()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getServoModeSelect","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int getServoModeSelect();
/**
* \chinese
*
*
* q t;
* @param q , rad,
* @param a , rad/s^2,
* @param v rad/s,
* @param t s \n
* t ,,;
* servoJoint
* @param lookahead_time s \n
* [0.03, 0.2],
* lookahead_time ,
*
* @param gain
* [100, 200],
* ,
*
*
* @retval 0
* @retval AUBO_BAD_STATE(1)
* NormalReducedModeRecovery
* @retval AUBO_QUEUE_FULL(2)
* @retval AUBO_BUSY(3)
* @retval -AUBO_BAD_STATE(-1)
* 线线task_id
* Running
* @retval -AUBO_TIMEOUT(-4)
* @retval -AUBO_INVL_ARGUMENT(-5)
* @retval -AUBO_REQUEST_IGNORE(-13) servo
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* servoJoint(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float, arg4: float, arg5: float) -> int
*
* @par Lua函数原型
* servoJoint(q: table, a: number, v: number, t: number, lookahead_time:
* number, gain: number) -> nil
*
* @par Lua示例
* servoJoint({0,0,0,0,0,0},0,0,10,0,0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.servoJoint","params":[[0,0,0,0,0,0],0,0,10,0,0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-13}
*
* \endchinese
* \english
* Joint space servo
*
* Currently only q and t parameters are available;
* @param q Joint angles, unit: rad
* @param a Acceleration, unit: rad/s^2
* @param v Velocity, unit: rad/s
* @param t Execution time, unit: s \n
* The larger the t value, the slower the robot moves, and vice versa;
* The optimal value for this parameter is the interval time for continuous
* calls to the servoJoint interface.
* @param lookahead_time Lookahead time, unit: s \n
* Specifies the duration to move before the robot starts to decelerate,
* used to smooth the trajectory [0.03, 0.2]. When lookahead_time is less
* than one control cycle, the smaller it is, the greater the overshoot. The
* optimal value for this parameter is one control cycle.
* @param gain Proportional gain
* Proportional gain for tracking the target position [100, 200],
* used to control the smoothness and accuracy of the motion.
* The larger the proportional gain, the longer it takes to reach the target
* position, and the smaller the overshoot.
*
* @retval 0 Success
* @retval AUBO_BAD_STATE(1) The current safety mode is not Normal,
* ReducedMode, or Recovery
* @retval AUBO_QUEUE_FULL(2) Planning queue is full
* @retval AUBO_BUSY(3) The previous instruction is being executed
* @retval -AUBO_BAD_STATE(-1)
* Possible reasons include but are not limited to: thread has been
* detached, thread terminated, task_id not found, or the current robot mode
* is not Running
* @retval -AUBO_TIMEOUT(-4) Interface call timeout
* @retval -AUBO_INVL_ARGUMENT(-5) Trajectory position or velocity out of
* range
* @retval -AUBO_REQUEST_IGNORE(-13) Not in servo mode
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* servoJoint(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float, arg4: float, arg5: float) -> int
*
* @par Lua function prototype
* servoJoint(q: table, a: number, v: number, t: number, lookahead_time:
* number, gain: number) -> nil
*
* @par Lua example
* servoJoint({0,0,0,0,0,0},0,0,10,0,0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.servoJoint","params":[[0,0,0,0,0,0],0,0,10,0,0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":-13}
*
* \endenglish
*/
int servoJoint(const std::vector<double> &q, double a, double v, double t,
double lookahead_time, double gain);
/**
* \chinese
*
*
* pose t;
* @param pose 姿, m,
* @param a , m/s^2,
* @param v m/s,
* @param t s \n
* t ,,;
* servoCartesian
* @param lookahead_time s \n
* [0.03, 0.2],
* lookahead_time ,
*
* @param gain
* [100, 200],
* ,
*
*
* @retval 0
* @retval AUBO_BAD_STATE(1)
* NormalReducedModeRecovery
* @retval AUBO_QUEUE_FULL(2)
* @retval AUBO_BUSY(3)
* @retval -AUBO_BAD_STATE(-1)
* 线线task_id
* Running
* @retval -AUBO_TIMEOUT(-4)
* @retval -AUBO_INVL_ARGUMENT(-5)
* @retval -AUBO_REQUEST_IGNORE(-13) servo
* @retval -AUBO_IK_NO_CONVERGE(-23) ;
* @retval -AUBO_IK_OUT_OF_RANGE(-24) ;
* @retval AUBO_IK_CONFIG_DISMATCH(-25) ;
* @retval -AUBO_IK_JACOBIAN_FAILED(-26) ;
* @retval -AUBO_IK_NO_SOLU(-27) ;
* @retval -AUBO_IK_UNKOWN_ERROR(-28) ;
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* servoCartesian(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float, arg4: float, arg5: float) -> int
*
* @par Lua函数原型
* servoCartesian(pose: table, a: number, v: number, t: number,
* lookahead_time: number, gain: number) -> nil
*
* @par Lua示例
* servoCartesian({0.58712,-0.15775,0.48703,2.76,0.344,1.432},0,0,10,0,0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.servoCartesian","params":[[0.58712,-0.15775,0.48703,2.76,0.344,1.432],0,0,10,0,0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-13}
* \endchinese
* \english
* Cartesian space servo
*
* Currently, only pose and t parameters are available;
* @param pose Pose, unit: m
* @param a Acceleration, unit: m/s^2
* @param v Velocity, unit: m/s
* @param t Execution time, unit: s \n
* The larger the t value, the slower the robot moves, and vice versa;
* The optimal value for this parameter is the interval time for continuous
* calls to the servoCartesian interface.
* @param lookahead_time Lookahead time, unit: s \n
* Specifies the duration to move before the robot starts to decelerate,
* used to smooth the trajectory [0.03, 0.2]. When lookahead_time is less
* than one control cycle, the smaller it is, the greater the overshoot. The
* optimal value for this parameter is one control cycle.
* @param gain Proportional gain
* Proportional gain for tracking the target position [100, 200],
* used to control the smoothness and accuracy of the motion,
* The larger the proportional gain, the longer it takes to reach the target
* position, and the smaller the overshoot.
*
* @retval 0 Success
* @retval AUBO_BAD_STATE(1) The current safety mode is not Normal,
* ReducedMode, or Recovery
* @retval AUBO_QUEUE_FULL(2) Planning queue is full
* @retval AUBO_BUSY(3) The previous instruction is being executed
* @retval -AUBO_BAD_STATE(-1)
* Possible reasons include but are not limited to: thread has been
* detached, thread terminated, task_id not found, or the current robot mode
* is not Running
* @retval -AUBO_TIMEOUT(-4) Interface call timeout
* @retval -AUBO_INVL_ARGUMENT(-5) Trajectory position or velocity out of
* range
* @retval -AUBO_REQUEST_IGNORE(-13) Not in servo mode
* @retval -AUBO_IK_NO_CONVERGE(-23) Inverse kinematics calculation does not
* converge, calculation error;
* @retval -AUBO_IK_OUT_OF_RANGE(-24) Inverse kinematics calculation exceeds
* robot maximum limits;
* @retval AUBO_IK_CONFIG_DISMATCH(-25) Inverse kinematics input
* configuration error;
* @retval -AUBO_IK_JACOBIAN_FAILED(-26) Inverse kinematics Jacobian
* calculation failed;
* @retval -AUBO_IK_NO_SOLU(-27) Analytical solution exists for the target
* point, but none meet the selection criteria;
* @retval -AUBO_IK_UNKOWN_ERROR(-28) Inverse kinematics returned an unknown
* error type;
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* servoCartesian(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float, arg4: float, arg5: float) -> int
*
* @par Lua function prototype
* servoCartesian(pose: table, a: number, v: number, t: number,
* lookahead_time: number, gain: number) -> nil
*
* @par Lua example
* servoCartesian({0.58712,-0.15775,0.48703,2.76,0.344,1.432},0,0,10,0,0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.servoCartesian","params":[[0.58712,-0.15775,0.48703,2.76,0.344,1.432],0,0,10,0,0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":-13}
* \endenglish
*/
int servoCartesian(const std::vector<double> &pose, double a, double v,
double t, double lookahead_time, double gain);
/**
* \chinese
* 线
*
* @param q
* @param extq
* @param t
* @param smooth_scale
* @param delay_sacle
* @return
* \endchinese
* \english
* Servo motion (with external axes), used for executing offline
* trajectories, pass-through user planned trajectories, etc.
*
* @param q
* @param extq
* @param t
* @param smooth_scale
* @param delay_sacle
* @return
* \endenglish
*/
int servoJointWithAxes(const std::vector<double> &q,
const std::vector<double> &extq, double a, double v,
double t, double lookahead_time, double gain);
int servoJointWithAxisGroup(const std::vector<double> &q, double a,
double v, double t, double lookahead_time,
double gain, const std::string &group_name,
const std::vector<double> &extq);
/**
* \chinese
* 线
* servoJointWithAxes 姿
* ()
*
* @param pose
* @param extq
* @param t
* @param smooth_scale
* @param delay_sacle
* @return
* \endchinese
* \english
* Servo motion (with external axes), used for executing offline
* trajectories, pass-through user planned trajectories, etc. The difference
* from servoJointWithAxes is that it receives Cartesian poses instead of
* joint angles (inverse kinematics is performed internally by the
* software).
*
* @param pose
* @param extq
* @param t
* @param smooth_scale
* @param delay_sacle
* @return
* \endenglish
*/
int servoCartesianWithAxes(const std::vector<double> &pose,
const std::vector<double> &extq, double a,
double v, double t, double lookahead_time,
double gain);
int servoCartesianWithAxisGroup(const std::vector<double> &pose, double a,
double v, double t, double lookahead_time,
double gain, const std::string &group_name,
const std::vector<double> &extq);
/**
* \chinese
* 线
*
* @param q
* @param smooth_scale
* @param delay_sacle
* @return
*
* @par Lua函数原型
* trackJoint(q: table,t: number,smooth_scale: number,delay_sacle: number)
* -> nil
*
* @par Lua示例
* trackJoint({0,0,0,0,0,0},0.01,0.5,1)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.trackJoint","params":[[0,0,0,0,0,0],0.01,0.5,1],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Tracking motion, used for executing offline trajectories or passing
* through user-planned trajectories, etc.
*
* @param q
* @param smooth_scale
* @param delay_sacle
* @return
*
* @par Lua function prototype
* trackJoint(q: table,t: number,smooth_scale: number,delay_sacle: number)
* -> nil
*
* @par Lua example
* trackJoint({0,0,0,0,0,0},0.01,0.5,1)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.trackJoint","params":[[0,0,0,0,0,0],0.01,0.5,1],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int trackJoint(const std::vector<double> &q, double t, double smooth_scale,
double delay_sacle);
/**
* \chinese
* 线
* trackJoint 姿
* ()
*
* @param pose
* @param t
* @param smooth_scale
* @param delay_sacle
* @return
*
* @par Lua函数原型
* trackCartesian(pose: table,t: number,smooth_scale: number,delay_sacle:
* number) -> nil
*
* @par Lua示例
* trackCartesian({0.58712,-0.15775,0.48703,2.76,0.344,1.432},0.01,0.5,1)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.trackCartesian","params":[[0.58712,-0.15775,0.48703,2.76,0.344,1.432],0.01,0.5,1],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Tracking motion, used for executing offline trajectories or passing
* through user-planned trajectories, etc. The difference from trackJoint is
* that it receives Cartesian poses instead of joint angles (inverse
* kinematics is performed internally by the software).
*
* @param pose
* @param t
* @param smooth_scale
* @param delay_sacle
* @return
*
* @par Lua function prototype
* trackCartesian(pose: table,t: number,smooth_scale: number,delay_sacle:
* number) -> nil
*
* @par Lua example
* trackCartesian({0.58712,-0.15775,0.48703,2.76,0.344,1.432},0.01,0.5,1)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.trackCartesian","params":[[0.58712,-0.15775,0.48703,2.76,0.344,1.432],0.01,0.5,1],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int trackCartesian(const std::vector<double> &pose, double t,
double smooth_scale, double delay_sacle);
/**
* \chinese
*
*
* @note
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* followJoint(self: pyaubo_sdk.MotionControl, arg0: List[float]) -> int
*
* @par Lua函数原型
* followJoint(q: table) -> nil
*
* @par Lua示例
* followJoint({0,0,0,0,0,0})
*
* \endchinese
* \english
* Joint space following
*
* @note Not implemented yet
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* followJoint(self: pyaubo_sdk.MotionControl, arg0: List[float]) -> int
*
* @par Lua function prototype
* followJoint(q: table) -> nil
*
* @par Lua example
* followJoint({0,0,0,0,0,0})
*
* \endenglish
*/
int followJoint(const std::vector<double> &q);
/**
* \chinese
*
*
* @note
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* followLine(self: pyaubo_sdk.MotionControl, arg0: List[float]) -> int
*
* @par Lua函数原型
* followLine(pose: table) -> nil
*
* @par Lua示例
* followLine({0.58712,-0.15775,0.48703,2.76,0.344,1.432})
*
* \endchinese
* \english
* Cartesian space following
*
* @note Not implemented yet
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* followLine(self: pyaubo_sdk.MotionControl, arg0: List[float]) -> int
*
* @par Lua function prototype
* followLine(pose: table) -> nil
*
* @par Lua example
* followLine({0.58712,-0.15775,0.48703,2.76,0.344,1.432})
*
* \endenglish
*/
int followLine(const std::vector<double> &pose);
/**
* \chinese
*
*
*
*
* @param qd , rad/s
* @param a , rad/s^2
* @param t , s \n
* t = 0
* t \n
*
*
* @retval 0
* @retval AUBO_BAD_STATE(1)
* NormalReducedModeRecovery
* @retval AUBO_BUSY(3)
* @retval -AUBO_BAD_STATE(-1)
* 线线task_id
* Running
* @retval -AUBO_TIMEOUT(-4)
* @retval -AUBO_INVL_ARGUMENT(-5) qd的长度小于当前机器臂的自由度
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* speedJoint(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float) -> int
*
* @par Lua函数原型
* speedJoint(qd: table, a: number, t: number) -> nil
*
* @par Lua示例
* speedJoint({0.2,0,0,0,0,0}, 1.5,10)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.speedJoint","params":[[0.2,0,0,0,0,0],1.5,100],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Joint space velocity following
*
* When the robot arm has not yet reached the target velocity, giving a new
* target velocity will cause the robot arm to immediately reach the new
* target velocity.
*
* @param qd Target joint velocity, unit: rad/s
* @param a Main axis acceleration, unit: rad/s^2
* @param t Time required for the function to return, unit: s \n
* If t = 0, the function returns when the target velocity is reached;
* otherwise, the function returns after t seconds, regardless of whether
* the target velocity is reached.\n If the target velocity is not reached,
* it will decelerate to zero. If the target velocity is reached, it will
* move at a constant speed.
* @retval 0 Success
* @retval AUBO_BAD_STATE(1) The current safety mode is not Normal,
* ReducedMode, or Recovery
* @retval AUBO_BUSY(3) The previous instruction is being executed
* @retval -AUBO_BAD_STATE(-1)
* Possible reasons include but are not limited to: thread has been
* detached, thread terminated, task_id not found, or the current robot mode
* is not Running
* @retval -AUBO_TIMEOUT(-4) Interface call timeout
* @retval -AUBO_INVL_ARGUMENT(-5) The length of the qd array is less than
* the degrees of freedom of the current robot arm
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* speedJoint(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float) -> int
*
* @par Lua function prototype
* speedJoint(qd: table, a: number, t: number) -> nil
*
* @par Lua example
* speedJoint({0.2,0,0,0,0,0}, 1.5,10)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.speedJoint","params":[[0.2,0,0,0,0,0],1.5,100],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int speedJoint(const std::vector<double> &qd, double a, double t);
/**
* \chinese
* (,)
*
*
*
* @param qd , rad/s
* @param a , rad/s^2
* @param t , s
* t = 0
* t
*
*
* @return 0;
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* resumeSpeedJoint(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float) -> int
*
* @par Lua函数原型
* resumeSpeedJoint(q: table, a: number, t: number) -> nil
*
* @par Lua示例
* resumeSpeedJoint({0.2,0,0,0,0,0},1.5,10)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeSpeedJoint","params":[[0.2,0,0,0,0,0],1.5,100],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-1}
* \endchinese
* \english
* Joint space velocity following (used to move to a safe position after a
* collision during process execution)
*
* When the robot arm has not yet reached the target velocity, giving a new
* target velocity will cause the robot arm to immediately reach the new
* target velocity.
*
* @param qd Target joint velocity, unit: rad/s
* @param a Main axis acceleration, unit: rad/s^2
* @param t Time required for the function to return, unit: s
* If t = 0, the function returns when the target velocity is reached;
* otherwise, the function returns after t seconds, regardless of whether
* the target velocity is reached. If the target velocity is not reached, it
* will decelerate to zero. If the target velocity is reached, it will move
* at a constant speed.
* @return Returns 0 on success; otherwise returns error code
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* resumeSpeedJoint(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float) -> int
*
* @par Lua function prototype
* resumeSpeedJoint(q: table, a: number, t: number) -> nil
*
* @par Lua example
* resumeSpeedJoint({0.2,0,0,0,0,0},1.5,10)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeSpeedJoint","params":[[0.2,0,0,0,0,0],1.5,100],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":-1}
* \endenglish
*/
int resumeSpeedJoint(const std::vector<double> &qd, double a, double t);
/**
* \chinese
*
*
*
*
* @param xd , m/s
* @param a , m/s^2
* @param t , s \n
* t = 0
* t
*
*
* @retval 0
* @retval AUBO_BAD_STATE(1)
* NormalReducedModeRecovery
* @retval AUBO_BUSY(3)
* @retval -AUBO_BAD_STATE(-1)
* 线线task_id
* Running
* @retval -AUBO_TIMEOUT(-4)
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* speedLine(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1: float,
* arg2: float) -> int
*
* @par Lua函数原型
* speedLine(pose: table, a: number, t: number) -> nil
*
* @par Lua示例
* speedLine({0.25,0,0,0,0,0},1.2,100)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.speedLine","params":[[0.25,0,0,0,0,0],1.2,100],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Cartesian space velocity following
*
* When the robot arm has not yet reached the target velocity, giving a new
* target velocity will cause the robot arm to immediately reach the new
* target velocity.
*
* @param xd Tool velocity, unit: m/s
* @param a Tool position acceleration, unit: m/s^2
* @param t Time required for the function to return, unit: s \n
* If t = 0, the function returns when the target velocity is reached;
* otherwise, the function returns after t seconds, regardless of whether
* the target velocity is reached. If the target velocity is not reached, it
* will decelerate to zero. If the target velocity is reached, it will move
* at a constant speed.
* @retval 0 Success
* @retval AUBO_BAD_STATE(1) The current safety mode is not Normal,
* ReducedMode, or Recovery
* @retval AUBO_BUSY(3) The previous instruction is being executed
* @retval -AUBO_BAD_STATE(-1)
* Possible reasons include but are not limited to: thread has been
* detached, thread terminated, task_id not found, or the current robot mode
* is not Running
* @retval -AUBO_TIMEOUT(-4) Interface call timeout
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* speedLine(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1: float,
* arg2: float) -> int
*
* @par Lua function prototype
* speedLine(pose: table, a: number, t: number) -> nil
*
* @par Lua example
* speedLine({0.25,0,0,0,0,0},1.2,100)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.speedLine","params":[[0.25,0,0,0,0,0],1.2,100],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int speedLine(const std::vector<double> &xd, double a, double t);
/**
* \chinese
* (,)
*
*
*
* @param xd , m/s
* @param a , m/s^2
* @param t , s \n
* t = 0
* t
*
*
* @return 0;
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* resumeSpeedLine(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float) -> int
*
* @par Lua函数原型
* resumeSpeedLine(pose: table, a: number, t: number) -> nil
*
* @par Lua示例
* resumeSpeedLine({0.25,0,0,0,0,0},1.2,100)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeSpeedLine","params":[[0.25,0,0,0,0,0],1.2,100],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-1}
* \endchinese
* \english
* Cartesian space velocity following (used to move to a safe position after
* a collision during process execution)
*
* When the robot arm has not yet reached the target velocity, giving a new
* target velocity will cause the robot arm to immediately reach the new
* target velocity.
*
* @param xd Tool velocity, unit: m/s
* @param a Tool position acceleration, unit: m/s^2
* @param t Time required for the function to return, unit: s \n
* If t = 0, the function returns when the target velocity is reached;
* otherwise, the function returns after t seconds, regardless of whether
* the target velocity is reached. If the target velocity is not reached, it
* will decelerate to zero. If the target velocity is reached, it will move
* at a constant speed.
* @return Returns 0 on success; otherwise returns error code
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* resumeSpeedLine(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float) -> int
*
* @par Lua function prototype
* resumeSpeedLine(pose: table, a: number, t: number) -> nil
*
* @par Lua example
* resumeSpeedLine({0.25,0,0,0,0,0},1.2,100)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeSpeedLine","params":[[0.25,0,0,0,0,0],1.2,100],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":-1}
* \endenglish
*/
int resumeSpeedLine(const std::vector<double> &xd, double a, double t);
/**
* \chinese
*
*
* @param q 0
* @param a , rad/s^2,
* RobotConfig类中的接口getJointMaxAccelerations()
* @param v rad/s,
* RobotConfig类中的接口getJointMaxSpeeds()
* @param duration
* @return 0;
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* moveSpline(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float) -> int
*
* @par Lua函数原型
* moveSpline(q: table, a: number, v: number, duration: number) -> nil
*
* @par Lua示例
* moveSpline({-2.05177,-0.400292, 1.19625, 0.0285152, 1.57033,
* -2.28774},1.3,1.0,0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveSpline","params":[[0,0,0,0,0,0],1,1,0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Perform spline interpolation in joint space
*
* @param q Joint angles. If the input vector is of size 0, it indicates the
* end of the spline motion.
* @param a Acceleration, unit: rad/s^2. The maximum value can be obtained
* via RobotConfig::getJointMaxAccelerations().
* @param v Velocity, unit: rad/s. The maximum value can be obtained via
* RobotConfig::getJointMaxSpeeds().
* @param duration
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* moveSpline(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float) -> int
*
* @par Lua function prototype
* moveSpline(q: table, a: number, v: number, duration: number) -> nil
*
* @par Lua example
* moveSpline({-2.05177,-0.400292, 1.19625, 0.0285152, 1.57033,
* -2.28774},1.3,1.0,0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveSpline","params":[[0,0,0,0,0,0],1,1,0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int moveSpline(const std::vector<double> &q, double a, double v,
double duration);
/**
* \chinese
*
*
* @param q , rad
* @param a , rad/s^2,
* RobotConfig类中的接口getJointMaxAccelerations()
* @param v rad/s,
* RobotConfig类中的接口getJointMaxSpeeds()
* @param blend_radius , m
* @param duration s \n
* 便
* 便 duration
* duration \n
* duration = 0
*
* duration不等于0a v
* @retval 0
* @retval AUBO_BAD_STATE(1)
* NormalReducedModeRecovery
* @retval AUBO_QUEUE_FULL(2)
* @retval AUBO_BUSY(3)
* @retval -AUBO_BAD_STATE(-1)
* 线线task_id
* Running
* @retval -AUBO_TIMEOUT(-4)
* @retval -AUBO_INVL_ARGUMENT(-5) q的长度小于当前机器臂的自由度
* @retval AUBO_REQUEST_IGNORE(13) q的长度太短且无需在该点停留
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* moveJoint(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1: float,
* arg2: float, arg3: float, arg4: float) -> int
*
* @par Lua函数原型
* moveJoint(q: table, a: number, v: number, blend_radius: number, duration:
* number) -> nil
*
* @par Lua示例
* moveJoint({-2.05177,-0.400292, 1.19625, 0.0285152, 1.57033,
* -2.28774},0.3,0.3,0,0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveJoint","params":[[-2.05177,
* -0.400292, 1.19625, 0.0285152, 1.57033, -2.28774],0.3,0.3,0,0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Add joint motion
*
* @param q Joint angles, unit: rad
* @param a Acceleration, unit: rad/s^2,
* The maximum value can be obtained via
* RobotConfig::getJointMaxAccelerations()
* @param v Velocity, unit: rad/s,
* The maximum value can be obtained via RobotConfig::getJointMaxSpeeds()
* @param blend_radius Blend radius, unit: m
* @param duration Execution time, unit: s \n
* Normally, when speed and acceleration are given, the trajectory duration
* can be determined. If you want to extend the trajectory duration, set the
* duration parameter. Duration can extend the trajectory time, but cannot
* shorten it.\n When duration = 0, it means the execution time is not
* specified, and the time will be calculated based on speed and
* acceleration. If duration is not 0, a and v values will be ignored.
* @retval 0 Success
* @retval AUBO_BAD_STATE(1) The current safety mode is not Normal,
* ReducedMode, or Recovery
* @retval AUBO_QUEUE_FULL(2) Planning queue is full
* @retval AUBO_BUSY(3) The previous instruction is being executed
* @retval -AUBO_BAD_STATE(-1)
* Possible reasons include but are not limited to: thread has been
* detached, thread terminated, task_id not found, or the current robot mode
* is not Running
* @retval -AUBO_TIMEOUT(-4) Interface call timeout
* @retval -AUBO_INVL_ARGUMENT(-5) The length of q is less than the degrees
* of freedom of the current robot arm
* @retval AUBO_REQUEST_IGNORE(13) The length of q is too short and there is
* no need to stop at that point
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* moveJoint(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1: float,
* arg2: float, arg3: float, arg4: float) -> int
*
* @par Lua function prototype
* moveJoint(q: table, a: number, v: number, blend_radius: number, duration:
* number) -> nil
*
* @par Lua example
* moveJoint({-2.05177,-0.400292, 1.19625, 0.0285152, 1.57033,
* -2.28774},0.3,0.3,0,0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveJoint","params":[[-2.05177,
* -0.400292, 1.19625, 0.0285152, 1.57033, -2.28774],0.3,0.3,0,0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int moveJoint(const std::vector<double> &q, double a, double v,
double blend_radius, double duration);
/**
* \chinese
*
*
* @param group_name
* @param q
* @param a
* @param v
* @param blend_radius
* @param duration
* @return
* \endchinese
* \english
* Synchronous motion of robot and external axes
*
* @param group_name
* @param q
* @param a
* @param v
* @param blend_radius
* @param duration
* @return
* \endenglish
*/
int moveJointWithAxisGroup(const std::vector<double> &q, double a, double v,
double blend_radius, double duration,
const std::string &group_name,
const std::vector<double> &extq);
/**
* \chinese
*
*
* @param q , rad
* @param a , rad/s^2
* @param v rad/s
* @param duration s \n
* 便
* 便 duration
* duration \n
* duration = 0
*
* duration不等于0a v
* @return 0
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* resumeMoveJoint(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float) -> int
*
* @par Lua函数原型
* resumeMoveJoint(q: table, a: number, v: number, duration: number) -> nil
*
* @par Lua示例
* resumeMoveJoint({-2.05177,-0.400292, 1.19625, 0.0285152, 1.57033,
* -2.28774},1.3,1.0,0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeMoveJoint","params":[[-2.05177,
* -0.400292, 1.19625, 0.0285152, 1.57033, -2.28774],0.3,0.3,0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-1}
* \endchinese
* \english
* Move to the pause point using joint motion.
*
* @param q Joint angles, unit: rad
* @param a Acceleration, unit: rad/s^2
* @param v Velocity, unit: rad/s
* @param duration Execution time, unit: s \n
* Normally, when speed and acceleration are given, the trajectory duration
* can be determined. If you want to extend the trajectory duration, set the
* duration parameter. Duration can extend the trajectory time, but cannot
* shorten it.\n When duration = 0, it means the execution time is not
* specified, and the time will be calculated based on speed and
* acceleration. If duration is not 0, a and v values will be ignored.
* @return Returns 0 on success; otherwise returns error code
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* resumeMoveJoint(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float) -> int
*
* @par Lua function prototype
* resumeMoveJoint(q: table, a: number, v: number, duration: number) -> nil
*
* @par Lua example
* resumeMoveJoint({-2.05177,-0.400292, 1.19625, 0.0285152, 1.57033,
* -2.28774},1.3,1.0,0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeMoveJoint","params":[[-2.05177,
* -0.400292, 1.19625, 0.0285152, 1.57033, -2.28774],0.3,0.3,0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":-1}
* \endenglish
*/
int resumeMoveJoint(const std::vector<double> &q, double a, double v,
double duration);
/**
* \chinese
* 线
*
* @param pose 姿
* @param a (1mm,姿 1e-4
* rad,, rad/s^2.线, m/s^2)
* RobotConfig类中的接口getTcpMaxAccelerations()
* @param v (1mm,姿 1e-4
* rad,, rad/s.线, m/s)
* RobotConfig类中的接口getTcpMaxSpeeds()
* @param blend_radius m0.0011
* @param duration s \n
* 便
* 便 duration
* duration \n
* duration = 0
*
* duration不等于0a v
* @retval 0
* @retval AUBO_BAD_STATE(1)
* NormalReducedModeRecovery
* @retval AUBO_QUEUE_FULL(2)
* @retval AUBO_BUSY(3)
* @retval -AUBO_BAD_STATE(-1)
* 线线task_id
* Running
* @retval -AUBO_TIMEOUT(-4)
* @retval -AUBO_INVL_ARGUMENT(-5) pose
*
* @retval AUBO_REQUEST_IGNORE(13) pose
*
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* moveLine(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1: float,
* arg2: float, arg3: float, arg4: float) -> int
*
* @par Lua函数原型
* moveLine(pose: table, a: number, v: number, blend_radius: number,
* duration: number) -> nil
*
* @par Lua示例
* moveLine({0.58815,0.0532,0.62391,2.46,0.479,1.619},1.3,1.0,0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveLine","params":[[0.58815,0.0532,0.62391,2.46,0.479,1.619],1.2,0.25,0,0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Add linear motion
*
* @param pose Target pose
* @param a Acceleration (if the position change is less than 1mm and the
* posture change is greater than 1e-4 rad, this acceleration is treated as
* angular acceleration in rad/s^2; otherwise, as linear acceleration in
* m/s^2). The maximum value can be obtained via
* RobotConfig::getTcpMaxAccelerations().
* @param v Velocity (if the position change is less than 1mm and the
* posture change is greater than 1e-4 rad, this velocity is treated as
* angular velocity in rad/s; otherwise, as linear velocity in m/s). The
* maximum value can be obtained via RobotConfig::getTcpMaxSpeeds().
* @param blend_radius Blend radius, unit: m, value between 0.001 and 1
* @param duration Execution time, unit: s \n
* Normally, when speed and acceleration are given, the trajectory duration
* can be determined. If you want to extend the trajectory duration, set the
* duration parameter. Duration can extend the trajectory time, but cannot
* shorten it.\n When duration = 0, it means the execution time is not
* specified, and the time will be calculated based on speed and
* acceleration. If duration is not 0, a and v values will be ignored.
* @retval 0 Success
* @retval AUBO_BAD_STATE(1) The current safety mode is not Normal,
* ReducedMode, or Recovery
* @retval AUBO_QUEUE_FULL(2) Trajectory queue is full
* @retval AUBO_BUSY(3) The previous instruction is being executed
* @retval -AUBO_BAD_STATE(-1) Possible reasons include but are not limited
* to: thread has been detached, thread terminated, task_id not found, or
* the current robot mode is not Running
* @retval -AUBO_TIMEOUT(-4) Interface call timeout
* @retval -AUBO_INVL_ARGUMENT(-5) The length of the pose array is less than
* the degrees of freedom of the current robot arm
* @retval AUBO_REQUEST_IGNORE(13) The length of the pose array is too short
* and there is no need to stop at that point
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* moveLine(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1: float,
* arg2: float, arg3: float, arg4: float) -> int
*
* @par Lua function prototype
* moveLine(pose: table, a: number, v: number, blend_radius: number,
* duration: number) -> nil
*
* @par Lua example
* moveLine({0.58815,0.0532,0.62391,2.46,0.479,1.619},1.3,1.0,0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveLine","params":[[0.58815,0.0532,0.62391,2.46,0.479,1.619],1.2,0.25,0,0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int moveLine(const std::vector<double> &pose, double a, double v,
double blend_radius, double duration);
/**
* \chinese
* 线
*
* @param group_name
* @param pose 姿
* @param a
* @param v
* @param blend_radius
* @param duration
* @return
* \endchinese
* \english
* Linear motion synchronized with external axes
*
* @param group_name Name of the external axis group
* @param pose Target pose
* @param a Acceleration
* @param v Velocity
* @param blend_radius Blend radius
* @param duration Execution time
* @return
* \endenglish
*/
int moveLineWithAxisGroup(const std::vector<double> &pose, double a,
double v, double blend_radius, double duration,
const std::string &group_name,
const std::vector<double> &extq);
/**
* \chinese
*
*
* @param pose
* @param a
* @param v
* @param blend_radius
* @return 0
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua函数原型
* moveProcess(pose: table, a: number, v: number, blend_radius: number,
* duration: number) -> nil
*
* @par Lua示例
* moveProcess({0.58815,0.0532,0.62391,2.46,0.479,1.619},1.2,0.25,0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveProcess","params":[[0.58815,0.0532,0.62391,2.46,0.479,1.619],1.2,0.25,0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Add process motion
*
* @param pose
* @param a
* @param v
* @param blend_radius
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Lua function prototype
* moveProcess(pose: table, a: number, v: number, blend_radius: number,
* duration: number) -> nil
*
* @par Lua example
* moveProcess({0.58815,0.0532,0.62391,2.46,0.479,1.619},1.2,0.25,0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveProcess","params":[[0.58815,0.0532,0.62391,2.46,0.479,1.619],1.2,0.25,0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int moveProcess(const std::vector<double> &pose, double a, double v,
double blend_radius);
/**
* \chinese
* 线
*
* @param pose 姿
* @param a , m/s^2
* @param v , m/s
* @param duration s \n
* 便
* 便 duration
* duration \n
* duration = 0
*
* duration不等于0a v
* @return 0
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* resumeMoveLine(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float) -> int
*
* @par Lua函数原型
* resumeMoveLine(pose: table, a: number, v: number,duration: number) -> nil
*
* @par Lua示例
* resumeMoveLine({0.58815,0.0532,0.62391,2.46,0.479,1.619},1.2,0.25,0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeMoveLine","params":[[0.58815,0.0532,0.62391,2.46,0.479,1.619],1.2,0.25,0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Move to the pause point using linear motion.
*
* @param pose Target pose
* @param a Acceleration, unit: m/s^2
* @param v Velocity, unit: m/s
* @param duration Execution time, unit: s \n
* Normally, when speed and acceleration are given, the trajectory duration
* can be determined. If you want to extend the trajectory duration, set the
* duration parameter. Duration can extend the trajectory time, but cannot
* shorten it.\n When duration = 0, it means the execution time is not
* specified, and the time will be calculated based on speed and
* acceleration. If duration is not 0, a and v values will be ignored.
* @return Returns 0 on success; otherwise returns error code
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* resumeMoveLine(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float) -> int
*
* @par Lua function prototype
* resumeMoveLine(pose: table, a: number, v: number, duration: number) ->
* nil
*
* @par Lua example
* resumeMoveLine({0.58815,0.0532,0.62391,2.46,0.479,1.619},1.2,0.25,0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeMoveLine","params":[[0.58815,0.0532,0.62391,2.46,0.479,1.619],1.2,0.25,0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int resumeMoveLine(const std::vector<double> &pose, double a, double v,
double duration);
/**
* \chinese
*
*
* @todo
*
* @param via_pose 姿
* @param end_pose 姿
* @param a (via_pose与上一个路点位置变化小于1mm,姿 1e-4
* rad, , rad/s^2.线, m/s^2)
* @param v (via_pose与上一个路点位置变化小于1mm, 姿 1e-4
* rad, , rad / s.线, m / s)
* @param blend_radius : m
* @param duration : s \n
* 便
* 便 duration
* duration \n
* duration = 0
*
* duration不等于0a v
* @return 0
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* moveCircle(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* List[float], arg2: float, arg3: float, arg4: float, arg5: float) -> int
*
* @par Lua函数原型
* moveCircle(via_pose: table, end_pose: table, a: number, v: number,
* blend_radius: number, duration: number) -> nil
*
* @par Lua示例
* moveCircle({0.440164,-0.00249391,0.398658,2.45651,0,1.5708},{0.440164,0.166256,0.297599,2.45651,0,1.5708},1.2,0.25,0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveCircle","params":[[0.440164,-0.00249391,0.398658,2.45651,0,1.5708],[0.440164,0.166256,0.297599,2.45651,0,1.5708],1.2,0.25,0,0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Add circular arc motion
*
* @todo Can be composed of multiple arcs to form a circular motion
*
* @param via_pose The pose of the via point during the arc motion
* @param end_pose The pose of the end point of the arc motion
* @param a Acceleration (if the position change between via_pose and the
* previous waypoint is less than 1mm and the posture change is greater than
* 1e-4 rad, this acceleration is treated as angular acceleration in
* rad/s^2; otherwise, as linear acceleration in m/s^2)
* @param v Velocity (if the position change between via_pose and the
* previous waypoint is less than 1mm and the posture change is greater than
* 1e-4 rad, this velocity is treated as angular velocity in rad/s;
* otherwise, as linear velocity in m/s)
* @param blend_radius Blend radius, unit: m
* @param duration Execution time, unit: s \n
* Normally, when speed and acceleration are given, the trajectory duration
* can be determined. If you want to extend the trajectory duration, set the
* duration parameter. Duration can extend the trajectory time, but cannot
* shorten it.\n When duration = 0, it means the execution time is not
* specified, and the time will be calculated based on speed and
* acceleration. If duration is not 0, a and v values will be ignored.
* @return Returns 0 on success; otherwise returns error code
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* moveCircle(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* List[float], arg2: float, arg3: float, arg4: float, arg5: float) -> int
*
* @par Lua function prototype
* moveCircle(via_pose: table, end_pose: table, a: number, v: number,
* blend_radius: number, duration: number) -> nil
*
* @par Lua example
* moveCircle({0.440164,-0.00249391,0.398658,2.45651,0,1.5708},{0.440164,0.166256,0.297599,2.45651,0,1.5708},1.2,0.25,0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveCircle","params":[[0.440164,-0.00249391,0.398658,2.45651,0,1.5708],[0.440164,0.166256,0.297599,2.45651,0,1.5708],1.2,0.25,0,0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int moveCircle(const std::vector<double> &via_pose,
const std::vector<double> &end_pose, double a, double v,
double blend_radius, double duration);
/**
* \chinese
* moveCircle
*
* @param group_name
* @param via_pose 姿
* @param end_pose 姿
* @param a
* @param v
* @param blend_radius
* @param duration
* @return
* \endchinese
* \english
* moveCircle with external axes synchronized motion
*
* @param group_name Name of the external axis group
* @param via_pose The pose of the via point during the arc motion
* @param end_pose The pose of the end point of the arc motion
* @param a Acceleration
* @param v Velocity
* @param blend_radius Blend radius
* @param duration Execution time
* @return
* \endenglish
*/
int moveCircleWithAxisGroup(const std::vector<double> &via_pose,
const std::vector<double> &end_pose, double a,
double v, double blend_radius, double duration,
const std::string &group_name,
const std::vector<double> &extq);
/**
* \chinese
*
*
* @param mode \n
* 0:姿 \n
* 1:姿线,,姿姿 \n
* 2:姿姿,姿
* @return 0
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setCirclePathMode(self: pyaubo_sdk.MotionControl, arg0: int) -> int
*
* @par Lua函数原型
* setCirclePathMode(mode: number) -> nil
*
* @par Lua示例
* setCirclePathMode(1)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setCirclePathMode","params":[0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Set circle path mode
*
* @param mode Mode \n
* 0: Tool orientation remains unchanged relative to the arc path point
* coordinate system \n 1: Orientation changes linearly, rotating around a
* fixed axis in space, from the start orientation to the target orientation
* \n 2: Orientation changes from the start orientation, through the via
* point orientation, to the target orientation
* @return Returns 0 on success; otherwise returns an error code
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setCirclePathMode(self: pyaubo_sdk.MotionControl, arg0: int) -> int
*
* @par Lua function prototype
* setCirclePathMode(mode: number) -> nil
*
* @par Lua example
* setCirclePathMode(1)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setCirclePathMode","params":[0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int setCirclePathMode(int mode);
/**
* \chinese
*
*
* @param param
* @return 0
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* moveCircle2(self: pyaubo_sdk.MotionControl, arg0:
* arcs::common_interface::CircleParameters) -> int
*
* @par Lua函数原型
* moveCircle2(param: table) -> nil
*
* @par Lua示例
* moveCircle2({0.440164,-0.00249391,0.398658,2.45651,0,1.570},{0.440164,0.166256,0.297599,2.45651,0,1.5708},1.2,0.25,0,0,0,0,0,0)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveCircle2","params":[{"pose_via":[0.440164,-0.00249391,0.398658,2.45651,0,1.570],
* "pose_to":[0.440164,0.166256,0.297599,2.45651,0,1.5708],"a":1.2,"v":0.25,"blend_radius":0,"duration":0,"helix":0,
* "spiral":0,"direction":0,"loop_times":0}],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Advanced arc or circular motion
*
* @param param Circular motion parameters
* @return Returns 0 on success; otherwise returns an error code:
* AUBO_BAD_STATE
* AUBO_BUSY
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* moveCircle2(self: pyaubo_sdk.MotionControl, arg0:
* arcs::common_interface::CircleParameters) -> int
*
* @par Lua function prototype
* moveCircle2(param: table) -> nil
*
* @par Lua example
* moveCircle2({0.440164,-0.00249391,0.398658,2.45651,0,1.570},{0.440164,0.166256,0.297599,2.45651,0,1.5708},1.2,0.25,0,0,0,0,0,0)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveCircle2","params":[{"pose_via":[0.440164,-0.00249391,0.398658,2.45651,0,1.570],
* "pose_to":[0.440164,0.166256,0.297599,2.45651,0,1.5708],"a":1.2,"v":0.25,"blend_radius":0,"duration":0,"helix":0,
* "spiral":0,"direction":0,"loop_times":0}],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int moveCircle2(const CircleParameters &param);
/**
* \chinese
*
*
* @param name
* @param type \n
* 1: toppra \n
* 2: cubic_spline() \n
* 3: B样条插值
* @param size
* @return AUBO_OK(0)
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathBufferAlloc(self: pyaubo_sdk.MotionControl, arg0: str, arg1: int,
* arg2: int) -> int
*
* @par Lua函数原型
* pathBufferAlloc(name: string, type: number, size: number) -> nil
*
* @par Lua示例
* pathBufferAlloc("traje_name",5,100)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferAlloc","params":["rec",2,3],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Create a new path point buffer
*
* @param name Name of the path
* @param type Type of the path \n
* 1: toppra time-optimal path planning \n
* 2: cubic_spline (recorded trajectory) \n
* 3: Joint B-spline interpolation, at least three points
* @param size Buffer size
* @return Returns AUBO_OK(0) on success
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathBufferAlloc(self: pyaubo_sdk.MotionControl, arg0: str, arg1: int,
* arg2: int) -> int
*
* @par Lua function prototype
* pathBufferAlloc(name: string, type: number, size: number) -> nil
*
* @par Lua exmaple
* pathBufferAlloc("traje_name",5,100)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferAlloc","params":["rec",2,3],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int pathBufferAlloc(const std::string &name, int type, int size);
/**
* \chinese
*
*
* @param name
* @param waypoints
* @return 0
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathBufferAppend(self: pyaubo_sdk.MotionControl, arg0: str, arg1:
* List[List[float]]) -> int
*
* @par Lua函数原型
* pathBufferAppend(name: string, waypoints: table) -> nil
*
* @par Lua示例
* pathBufferAppend("traje_name",{{-0.000000,0.000009,-0.000001,0.000002,0.000002,0.000000},{-0.000001,0.000010,-0.000002,0.000000,0.000003,0.000002}})
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferAppend","params":["rec",[[-0.000000,0.000009,-0.000001,0.000002,0.000002,0.000000],[-0.000001,0.000010,-0.000002,0.000000,0.000003,0.000002]]],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Add waypoints to the path buffer
*
* @param name Name of the path buffer
* @param waypoints Waypoints
* @return Returns 0 on success; otherwise returns an error code
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathBufferAppend(self: pyaubo_sdk.MotionControl, arg0: str, arg1:
* List[List[float]]) -> int
*
* @par Lua function prototype
* pathBufferAppend(name: string, waypoints: table) -> nil
*
* @par Lua example
* pathBufferAppend("traje_name",{{-0.000000,0.000009,-0.000001,0.000002,0.000002,0.000000},{-0.000001,0.000010,-0.000002,0.000000,0.000003,0.000002}})
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferAppend","params":["rec",[[-0.000000,0.000009,-0.000001,0.000002,0.000002,0.000000],[-0.000001,0.000010,-0.000002,0.000000,0.000003,0.000002]]],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int pathBufferAppend(const std::string &name,
const std::vector<std::vector<double>> &waypoints);
/**
* \chinese
*
*
* @param name pathBufferAlloc新建的路径点缓存的名字
* @param a ,, rad/s^2
* @param v ,, rad/s
* @param t \n
* pathBufferAlloc
* pathBufferAlloc这个接口的类型:\n
* 1,\n
* 2,\n
* 3:t表示运动持续时间\n
* t=0, 使(使)\n
* t!=0, t需要设置为 *(points *
* interval,interval >= 0.01)
* @return 0
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathBufferEval(self: pyaubo_sdk.MotionControl, arg0: str, arg1:
* List[float], arg2: List[float], arg3: float) -> int
*
* @par Lua函数原型
* pathBufferEval(name: string, a: table, v: table, t: number) -> nil
*
* @par Lua示例
* pathBufferEval("traje_name",{1,1,1,1,1,1},{1,1,1,1,1,1},0.02)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferEval","params":["rec",[1,1,1,1,1,1],[1,1,1,1,1,1],0.02],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Perform computation and optimization (time-consuming operations). If the
* input parameters are the same, the calculation will not be repeated.
*
* @param name Name of the path point buffer created by pathBufferAlloc
* @param a Joint acceleration limits, must match the robot DOF, unit:
* rad/s^2
* @param v Joint velocity limits, must match the robot DOF, unit: rad/s
* @param t Time \n
* When allocating memory with pathBufferAlloc, the type must be specified.
* According to the type in pathBufferAlloc:\n
* Type 1: t means motion duration\n
* Type 2: t means sampling interval\n
* Type 3: t means motion duration\n
* If t=0, the internal default time is used (recommended)\n
* If t!=0, t should be set to number_of_points *
* interval_between_points (interval >= 0.01)
* @return Returns 0 on success; otherwise returns an error code
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathBufferEval(self: pyaubo_sdk.MotionControl, arg0: str, arg1:
* List[float], arg2: List[float], arg3: float) -> int
*
* @par Lua function prototype
* pathBufferEval(name: string, a: table, v: table, t: number) -> nil
*
* @par Lua example
* pathBufferEval("traje_name",{1,1,1,1,1,1},{1,1,1,1,1,1},0.02)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferEval","params":["rec",[1,1,1,1,1,1],[1,1,1,1,1,1],0.02],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int pathBufferEval(const std::string &name, const std::vector<double> &a,
const std::vector<double> &v, double t);
/**
* \chinese
* buffer是否有效
*
* buffer需要满足三个条件有效: \n
* 1buffer存在 \n
* 2buffer的点要大于等于buffer的大小 \n
* 3pathBufferEval
*
* @param name buffer的名字
* @return true; false
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathBufferValid(self: pyaubo_sdk.MotionControl, arg0: str) -> bool
*
* @par Lua函数原型
* pathBufferValid(name: string) -> boolean
*
* @par Lua示例
* buffer_status = pathBufferValid("traje_name")
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferValid","params":["rec"],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":false}
* \endchinese
* \english
* Whether the buffer with the specified name is valid
*
* The buffer must meet three conditions to be valid: \n
* 1. The buffer exists and memory has been allocated \n
* 2. The number of points passed into the buffer must be greater than or
* equal to the buffer size \n
* 3. pathBufferEval must be executed once
*
* @param name Name of the buffer
* @return Returns true if valid; false otherwise
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathBufferValid(self: pyaubo_sdk.MotionControl, arg0: str) -> bool
*
* @par Lua function prototype
* pathBufferValid(name: string) -> boolean
*
* @par Lua example
* buffer_status = pathBufferValid("traje_name")
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferValid","params":["rec"],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":false}
* \endenglish
*/
bool pathBufferValid(const std::string &name);
/**
* \chinese
*
*
* @param name
* @return 0
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathBufferFree(self: pyaubo_sdk.MotionControl, arg0: str) -> int
*
* @par Lua函数原型
* pathBufferFree(name: string) -> nil
*
* @par Lua示例
* pathBufferFree("traje_name")
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferFree","params":["rec"],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-5}
*
* \endchinese
* \english
* Release path buffer
*
* @param name Name of the path buffer
* @return Returns 0 on success; otherwise returns an error code
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathBufferFree(self: pyaubo_sdk.MotionControl, arg0: str) -> int
*
* @par Lua function prototype
* pathBufferFree(name: string) -> nil
*
* @par Lua example
* pathBufferFree("traje_name")
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferFree","params":["rec"],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":-5}
*
* \endenglish
*/
int pathBufferFree(const std::string &name);
/**
* \chinese
*
*
* @brief pathBufferFilter
*
* @param name
* @param order (2)
* @param fd (3-20)
* @param fs (20-500)
*
* @return 0
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathBufferFilter(self: pyaubo_sdk.MotionControl, arg0: str, arg1: int,
* arg2: float, arg3: float) -> int
*
* @par Lua函数原型
* pathBufferFilter(name: string, order: number, fd: number, fs:number) ->
* nil
*
* @par Lua示例
* pathBufferFilter("traje_name",2,5,125)
*
* \endchinese
* \english
* Joint space path filter
*
* @brief pathBufferFilter
*
* @param name Name of the path buffer
* @param order Filter order (usually 2)
* @param fd Cutoff frequency, the smaller the smoother but with more delay
* (usually 3-20)
* @param fs Sampling frequency of discrete data (usually 20-500)
*
* @return Returns 0 on success
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathBufferFilter(self: pyaubo_sdk.MotionControl, arg0: str, arg1: int,
* arg2: float, arg3: float) -> int
*
* @par Lua function prototype
* pathBufferFilter(name: string, order: number, fd: number, fs:number) ->
* nil
*
* @par Lua example
* pathBufferFilter("traje_name",2,5,125)
*
* \endenglish
*/
int pathBufferFilter(const std::string &name, int order, double fd,
double fs);
/**
* \chinese
*
*
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* pathBufferList(self: pyaubo_sdk.MotionControl) -> List[str]
*
* @par Lua函数原型
* pathBufferList() -> table
*
* @par Lua示例
* Buffer_table = pathBufferList()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferList","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":[]}
*
* \endchinese
* \english
* List all cached path names
*
* @return Returns all cached path names
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* pathBufferList(self: pyaubo_sdk.MotionControl) -> List[str]
*
* @par Lua function prototype
* pathBufferList() -> table
*
* @par Lua example
* Buffer_table = pathBufferList()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.pathBufferList","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":[]}
*
* \endenglish
*/
std::vector<std::string> pathBufferList();
/**
* \chinese
*
*
* @param name
* @return 0
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* movePathBuffer(self: pyaubo_sdk.MotionControl, arg0: str) -> int
*
* @par Lua函数原型
* movePathBuffer(name: string) -> nil
*
* @par Lua示例
* movePathBuffer("traje_name")
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.movePathBuffer","params":["rec"],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Execute the cached path
*
* @param name Name of the cached path
* @return Returns 0 on success; otherwise returns an error code
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* movePathBuffer(self: pyaubo_sdk.MotionControl, arg0: str) -> int
*
* @par Lua function prototype
* movePathBuffer(name: string) -> nil
*
* @par Lua example
* movePathBuffer("traje_name")
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.movePathBuffer","params":["rec"],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int movePathBuffer(const std::string &name);
/**
* \chinese
* 线
*
* @param pose 姿(,:
* 线)
* p1:线线,
* p2:线线,
* p3:线线,
* @param v
* @param a
* @param main_pipe_radius
* @param sub_pipe_radius
* @param normal_distance 线
* @param normal_alpha 线
*
* @return 0
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* moveIntersection(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float)
* -> int
*
* @par Lua函数原型
* moveIntersection(poses: table, a: number, v: number,
* main_pipe_radius: number, sub_pipe_radius: number, normal_distance:
* number, normal_alpha: number) -> nil \endchinese \english Intersection
* interface
*
* @param poses Consists of three taught poses (first, move to the starting
* point. The starting point requirement: the intersection of the plane
* passing through the main cylinder axis and parallel to the sub-cylinder
* axis with the sub-cylinder at the bottom) p1: Intersection of the plane
* passing through the sub-cylinder axis and parallel to the main cylinder
* axis with the sub-cylinder at the left top p2: Intersection of the plane
* passing through the sub-cylinder axis and parallel to the main cylinder
* axis with the main cylinder at the left bottom p3: Intersection of the
* plane passing through the sub-cylinder axis and parallel to the main
* cylinder axis with the main cylinder at the right bottom
* @param v Velocity
* @param a Acceleration
* @param main_pipe_radius Main cylinder radius
* @param sub_pipe_radius Sub cylinder radius
* @param normal_distance Distance between the two cylinder axes
* @param normal_alpha Angle between the two cylinder axes
*
* @return Returns 0 on success; otherwise returns an error code
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* moveIntersection(self: pyaubo_sdk.MotionControl, arg0: List[float], arg1:
* float, arg2: float, arg3: float, arg4: float, arg5: float, arg6: float)
* -> int
*
* @par Lua function prototype
* moveIntersection(poses: table, a: number, v: number,
* main_pipe_radius: number, sub_pipe_radius: number, normal_distance:
* number, normal_alpha: number) -> nil \endenglish
*/
int moveIntersection(const std::vector<std::vector<double>> &poses,
double a, double v, double main_pipe_radius,
double sub_pipe_radius, double normal_distance,
double normal_alpha);
/**
* \chinese
*
*
* @param acc : rad/s^2
* @return 0
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* stopJoint(self: pyaubo_sdk.MotionControl, arg0: float) -> int
*
* @par Lua函数原型
* stopJoint(acc: number) -> nil
*
* @par Lua示例
* stopJoint(2)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.stopJoint","params":[31],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Stop motion in joint space
*
* @param acc Joint acceleration, unit: rad/s^2
* @return Returns 0 on success; otherwise returns an error code
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* stopJoint(self: pyaubo_sdk.MotionControl, arg0: float) -> int
*
* @par Lua function prototype
* stopJoint(acc: number) -> nil
*
* @par Lua example
* stopJoint(2)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.stopJoint","params":[31],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int stopJoint(double acc);
/**
* \chinese
* (,resumeSpeedJoint接口移动到安全位置后需要停止时调用此接口)
*
* @param acc : rad/s^2
* @return 0
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* resumeStopJoint(self: pyaubo_sdk.MotionControl, arg0: float) -> int
*
* @par Lua函数原型
* resumeStopJoint(acc: number) -> nil
*
* @par Lua示例
* resumeStopJoint(31)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeStopJoint","params":[31],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endchinese
* \english
* Stop motion in joint space (used after moving to a safe position via
* resumeSpeedJoint following a collision during process execution)
*
* @param acc Joint acceleration, unit: rad/s^2
* @return Returns 0 on success; otherwise returns an error code
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* resumeStopJoint(self: pyaubo_sdk.MotionControl, arg0: float) -> int
*
* @par Lua function prototype
* resumeStopJoint(acc: number) -> nil
*
* @par Lua example
* resumeStopJoint(31)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeStopJoint","params":[31],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endenglish
*/
int resumeStopJoint(double acc);
/**
* \chinese
* moveLine/moveCircle
*
* @param acc , : m/s^2
* @param acc_rot
* @return 0
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* stopLine(self: pyaubo_sdk.MotionControl, arg0: float, arg1: float) -> int
*
* @par Lua函数原型
* stopLine(acc: number, acc_rot: number) -> nil
*
* @par Lua示例
* stopLine(10,10)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.stopLine","params":[10,10],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Stop motions in Cartesian space such as moveLine/moveCircle.
*
* @param acc Tool acceleration, unit: m/s^2
* @param acc_rot
* @return Returns 0 on success; otherwise returns an error code
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* stopLine(self: pyaubo_sdk.MotionControl, arg0: float, arg1: float) -> int
*
* @par Lua function prototype
* stopLine(acc: number, acc_rot: number) -> nil
*
* @par Lua example
* stopLine(10,10)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.stopLine","params":[10,10],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int stopLine(double acc, double acc_rot);
/**
* \chinese
* (,resumeSpeedLine接口移动到安全位置后需要停止时调用此接口)
*
* @param acc , : m/s^2
* @param acc_rot 姿: rad/s^2
* @return 0
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* resumeStopLine(self: pyaubo_sdk.MotionControl, arg0: float, arg1: float)
* -> int
*
* @par Lua函数原型
* resumeStopLine(acc: number, acc_rot: number) -> nil
*
* @par Lua示例
* resumeStopLine(10,10)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeStopLine","params":[10,10],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endchinese
* \english
* Stop motion in Cartesian space (used after moving to a safe position via
* resumeSpeedLine following a collision during process execution)
*
* @param acc Position acceleration, unit: m/s^2
* @param acc_rot Orientation acceleration, unit: rad/s^2
* @return Returns 0 on success; otherwise returns an error code
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* resumeStopLine(self: pyaubo_sdk.MotionControl, arg0: float, arg1: float)
* -> int
*
* @par Lua function prototype
* resumeStopLine(acc: number, acc_rot: number) -> nil
*
* @par Lua example
* resumeStopLine(10,10)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.resumeStopLine","params":[10,10],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":-1}
*
* \endenglish
*/
int resumeStopLine(double acc, double acc_rot);
/**
* \chinese
* : weaveStart weaveEnd moveLine/moveCircle params
*
*
* @param params Json字符串用于定义摆动参数
* {
* "type": <string>, // "SINE" "SPIRAL" "TRIANGLE" "TRAPEZOIDAL"
* "step": <num>,
* "amplitude": {<num>,<num>},
* "hold_distance": {<num>,<num>},
* "angle": <num>
* "direction": <num>
* }
* @return 0
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
* \endchinese
* \english
* Start weaving: moveLine/moveCircle between weaveStart and weaveEnd will
* perform weaving according to params
*
* @param params Json string to define weaving parameters
* {
* "type": <string>, // "SINE" "SPIRAL" "TRIANGLE" "TRAPEZOIDAL"
* "step": <num>,
* "amplitude": {<num>,<num>},
* "hold_distance": {<num>,<num>},
* "angle": <num>
* "direction": <num>
* }
* @return Returns 0 on success; otherwise returns an error code
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
* \endenglish
*/
int weaveStart(const std::string &params);
/**
* \chinese
*
*
* @return 0
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.weaveEnd","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* End weaving
*
* @return Returns 0 on success; otherwise returns an error code
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.weaveEnd","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int weaveEnd();
/**
* \chinese
*
*
* @param sample_time : m/s^2
* @return 0
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
* \endchinese
* \english
* Set the sampling interval for points on the future path
*
* @param sample_time Sampling interval, unit: m/s^2
* @return Returns 0 on success; otherwise returns an error code
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
* \endenglish
*/
int setFuturePointSamplePeriod(double sample_time);
/**
* \chinese
*
*
* @return (100ms * 10)
*
* @throws arcs::common_interface::AuboException
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getFuturePathPointsJoint","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":[]}
*
* \endchinese
* \english
* Get trajectory points on the future path
*
* @return Waypoints (100ms * 10)
*
* @throws arcs::common_interface::AuboException
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getFuturePathPointsJoint","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":[]}
*
* \endenglish
*/
std::vector<std::vector<double>> getFuturePathPointsJoint();
/**
* \chinese
*
*
* @param encoder_id
* @param tick_per_meter
* 线===>
* ===>
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setConveyorTrackEncoder(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* setConveyorTrackEncoder(encoder_id: bumber,tick_per_meter: number) -> int
*
* @par Lua示例
* num = setConveyorTrackEncoder(1,40000)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackEncoder","params":[1,40000],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Set conveyor encoder parameters
*
* @param encoder_id Reserved
* @param tick_per_meter
* Linear conveyor: pulses per meter
* Circular conveyor: pulses per revolution
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setConveyorTrackEncoder(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* setConveyorTrackEncoder(encoder_id: bumber,tick_per_meter: number) -> int
*
* @par Lua example
* num = setConveyorTrackEncoder(1,40000)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackEncoder","params":[1,40000],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int setConveyorTrackEncoder(int encoder_id, int tick_per_meter);
/**
* \chinese
*
*
* @note
*
* @param encoder_id
* 0-
* @param rotate_tool
* @return
*
* @throws arcs::common_interface::AuboException
* \endchinese
* \english
* Circular conveyor tracking
*
* @note Not implemented yet
*
* @param encoder_id
* 0 - integrated sensor
* @param rotate_tool
* @return
*
* @throws arcs::common_interface::AuboException
* \endenglish
*/
int conveyorTrackCircle(int encoder_id, const std::vector<double> &center,
bool rotate_tool);
/**
* \chinese
* 线
*
* @param encoder_id
* @param direction
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* conveyorTrackLine(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* conveyorTrackLine -> int
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.conveyorTrackLine","params":[1,[1.0,0.0,0.0,0.0,0.0,0.0]],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Linear conveyor tracking
*
* @param encoder_id Reserved
* @param direction The movement direction of the conveyor relative to the
* robot base coordinate system
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* conveyorTrackLine(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* conveyorTrackLine -> int
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.conveyorTrackLine","params":[1,[1.0,0.0,0.0,0.0,0.0,0.0]],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int conveyorTrackLine(int encoder_id, const std::vector<double> &direction);
/**
* \chinese
*
*
* @param encoder_id
* @param a
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* conveyorTrackStop(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* conveyorTrackStop -> int
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.conveyorTrackStop","params":[0,1.0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Stop conveyor tracking
*
* @param encoder_id Reserved
* @param a Reserved
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* conveyorTrackStop(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* conveyorTrackStop -> int
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.conveyorTrackStop","params":[0,1.0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int conveyorTrackStop(int encoder_id, double a);
/**
* \chinese
*
* true
* false
*
* @return
*
* @throws arcs::common_interface::AuboException
*
* @param encoder_id
*
* @par Python函数原型
* conveyorTrackSwitch(self: pyaubo_sdk.MotionControl) -> bool
*
* @par Lua函数原型
* conveyorTrackSwitch() -> boolean
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.conveyorTrackSwitch","params":[0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":true}
*
* \endchinese
* \english
* Switch conveyor tracking item.
* If the current item is being tracked, it will be dequeued and no longer
* tracked, returning true. If no item is currently being tracked, returns
* false.
*
* @return
*
* @throws arcs::common_interface::AuboException
*
* @param encoder_id Reserved
*
* @par Python function prototype
* conveyorTrackSwitch(self: pyaubo_sdk.MotionControl) -> bool
*
* @par Lua function prototype
* conveyorTrackSwitch() -> boolean
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.conveyorTrackSwitch","params":[0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":true}
*
* \endenglish
*/
bool conveyorTrackSwitch(int encoder_id);
/**
* \chinese
*
* @param encoder_id
* @return
* true
*
* 使true
* false
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* hasItemOnConveyorToTrack(self: pyaubo_sdk.MotionControl) -> bool
*
* @par Lua函数原型
* hasItemOnConveyorToTrack() -> boolean
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.hasItemOnConveyorToTrack","params":[0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":{true}}
* \endchinese
* \english
* Whether there is an item on the conveyor that can be tracked
* @param encoder_id Reserved
* @return
* If the first item in the queue is in tracking state, returns true.
* If the first item is not in tracking state, checks the rest of the queue
* for items within the start window. Items outside the start window are
* dequeued until an item is found within the window, which is then set to
* tracking state and returns true. If no item in the queue is within the
* start window, returns false.
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* hasItemOnConveyorToTrack(self: pyaubo_sdk.MotionControl) -> bool
*
* @par Lua function prototype
* hasItemOnConveyorToTrack() -> boolean
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.hasItemOnConveyorToTrack","params":[0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":{true}}
* \endenglish
*/
bool hasItemOnConveyorToTrack(int encoder_id);
/**
* \chinese
*
*
* @param encoder_id
* @param item_id ID
* @param offset
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* conveyorTrackCreatItem(self: pyaubo_sdk.MotionControl, arg0: int,
* arg1:int, arg2: List[float]) -> int
*
* @par Lua函数原型
* conveyorTrackCreatItem(encoder_id: number, item_id: number, offset:
* table) -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.conveyorTrackCreatItem","params":[0,2,
* {0.0,0.0,0.0,0.0,0.0,0.0}],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0.0}
* \endchinese
* \english
* Add an item to the conveyor queue
*
* @param encoder_id Reserved
* @param item_id Item ID
* @param offset Offset of the current item position relative to the
* template item position
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* conveyorTrackCreatItem(self: pyaubo_sdk.MotionControl, arg0: int,
* arg1:int, arg2: List[float]) -> int
*
* @par Lua function prototype
* conveyorTrackCreatItem(encoder_id: number, item_id: number, offset:
* table) -> number
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.conveyorTrackCreatItem","params":[0,2,
* {0.0,0.0,0.0,0.0,0.0,0.0}],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0.0}
* \endenglish
*/
int conveyorTrackCreatItem(int encoder_id, int item_id,
const std::vector<double> &offset);
/**
* \chinese
*
*
* @param encoder_id
* @param comp
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setConveyorTrackCompensate(self: pyaubo_sdk.MotionControl, arg0: int,
* arg1: float) -> int
*
* @par Lua函数原型
* setConveyorTrackCompensate(comp: number) -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackCompensate","params":[0,
* 0.1],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Set the compensation value for conveyor tracking
*
* @param encoder_id Reserved
* @param comp Conveyor compensation value
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setConveyorTrackCompensate(self: pyaubo_sdk.MotionControl, arg0: int,
* arg1: float) -> int
*
* @par Lua function prototype
* setConveyorTrackCompensate(comp: number) -> number
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackCompensate","params":[0,
* 0.1],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int setConveyorTrackCompensate(int encoder_id, double comp);
/**
* \chinese
*
*
* @param encoder_id
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* isConveyorTrackSync(self: pyaubo_sdk.MotionControl, arg0: int) -> bool
*
* @par Lua函数原型
* isConveyorTrackSync(encoder_id: number) -> bool
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isConveyorTrackSync","params":[0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":false}
*
* \endchinese
* \english
* Determine whether the conveyor and the robot arm have reached relative
* rest
*
* @param encoder_id Reserved
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* isConveyorTrackSync(self: pyaubo_sdk.MotionControl, arg0: int) -> bool
*
* @par Lua function prototype
* isConveyorTrackSync(encoder_id: number) -> bool
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isConveyorTrackSync","params":[0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":false}
*
* \endenglish
*/
bool isConveyorTrackSync(int encoder_id);
/**
* \chinese
*
*
* @param encoder_id
* @param limit
* ,
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setConveyorTrackLimit(self: pyaubo_sdk.MotionControl, arg0: int, arg1:
* double) -> int
*
* @par Lua函数原型
* setConveyorTrackLimit(encoder_id: number, limit: number) -> int
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackLimit","params":[0,
* 1.5],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Set the maximum distance limit for conveyor tracking
*
* @param encoder_id Reserved
* @param limit
* Maximum distance limit for conveyor tracking, unit: meter
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setConveyorTrackLimit(self: pyaubo_sdk.MotionControl, arg0: int, arg1:
* double) -> int
*
* @par Lua function prototype
* setConveyorTrackLimit(encoder_id: number, limit: number) -> int
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackLimit","params":[0,
* 1.5],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int setConveyorTrackLimit(int encoder_id, double limit);
/**
* \chinese
*
*
* @param encoder_id
* @param min_window
* ,
* @param max_window
* ,
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setConveyorTrackStartWindow(self: pyaubo_sdk.MotionControl, arg0: int,
* arg1: double, arg2: double) -> int
*
* @par Lua函数原型
* setConveyorTrackStartWindow(encoder_id: number, min_window: number,
* max_window: number) -> int
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackStartWindow","params":[0,
* 0.2, 1.0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Set the start window for conveyor tracking
*
* @param encoder_id Reserved
* @param min_window
* Start position of the window, unit: meter
* @param max_window
* End position of the window, unit: meter
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setConveyorTrackStartWindow(self: pyaubo_sdk.MotionControl, arg0: int,
* arg1: double, arg2: double) -> int
*
* @par Lua function prototype
* setConveyorTrackStartWindow(encoder_id: number, min_window: number,
* max_window: number) -> int
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackStartWindow","params":[0,
* 0.2, 1.0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int setConveyorTrackStartWindow(int encoder_id, double window_min,
double window_max);
/**
* \chinese
*
*
* @param encoder_id
* @param offset
* ,
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setConveyorTrackSensorOffset(self: pyaubo_sdk.MotionControl, arg0: int,
* arg1: double) -> int
*
* @par Lua函数原型
* setConveyorTrackSensorOffset(encoder_id: number, offset: number) -> int
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackSensorOffset","params":[0,
* 0.2],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Set the distance from the conveyor teaching position to the sync switch
*
* @param encoder_id Reserved
* @param offset
* Distance from the conveyor teaching position to the sync switch, unit:
* meter
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setConveyorTrackSensorOffset(self: pyaubo_sdk.MotionControl, arg0: int,
* arg1: double) -> int
*
* @par Lua function prototype
* setConveyorTrackSensorOffset(encoder_id: number, offset: number) -> int
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackSensorOffset","params":[0,
* 0.2],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int setConveyorTrackSensorOffset(int encoder_id, double offset);
/**
* \chinese
*
*
* @param encoder_id
* @param distance
* ,
* @param time
* ,
*
* distance和time设置数值大于0即为生效
* distance与time同时设置时distance
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setConveyorTrackSyncSeparation(self: pyaubo_sdk.MotionControl, arg0: int,
* arg1: double, arg2: double) -> int
*
* @par Lua函数原型
* setConveyorTrackSyncSeparation(encoder_id: number, distance: number,
* time: number) -> int
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackSyncSeparation","params":[0,
* 0.05, 0.2],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Set conveyor sync separation, used to filter out unwanted signals from
* the sync switch.
*
* @param encoder_id Reserved
* @param distance
* The minimum distance to travel after a sync signal appears before
* accepting a new sync signal as a valid object, unit: meter
* @param time
* The minimum time to elapse after a sync signal appears before accepting a
* new sync signal as a valid object, unit: second
*
* If distance and time are both set greater than 0, the setting takes
* effect. If both distance and time are set, distance takes precedence.
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setConveyorTrackSyncSeparation(self: pyaubo_sdk.MotionControl, arg0: int,
* arg1: double, arg2: double) -> int
*
* @par Lua function prototype
* setConveyorTrackSyncSeparation(encoder_id: number, distance: number,
* time: number) -> int
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setConveyorTrackSyncSeparation","params":[0,
* 0.05, 0.2],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int setConveyorTrackSyncSeparation(int encoder_id, double distance,
double time);
/**
* \chinese
*
*
* @param encoder_id
* @return
* true :
* false :
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* isConveyorTrackExceed(self: pyaubo_sdk.MotionControl, arg0: int) -> bool
*
* @par Lua函数原型
* isConveyorTrackExceed(encoder_id: number) -> bool
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isConveyorTrackExceed","params":[0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":false}
* \endchinese
* \english
* Whether the workpiece on the conveyor has moved beyond the maximum limit
*
* @param encoder_id Reserved
* @return
* true : The movement distance exceeds the maximum limit
* false : The movement distance does not exceed the maximum limit
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* isConveyorTrackExceed(self: pyaubo_sdk.MotionControl, arg0: int) -> bool
*
* @par Lua function prototype
* isConveyorTrackExceed(encoder_id: number) -> bool
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isConveyorTrackExceed","params":[0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":false}
* \endenglish
*/
bool isConveyorTrackExceed(int encoder_id);
/**
* \chinese
*
*
* @param encoder_id
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* conveyorTrackClearItems(self: pyaubo_sdk.MotionControl, arg0: int) -> int
*
* @par Lua函数原型
* conveyorTrackClearItems(encoder_id: number) -> int
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.conveyorTrackClearItems","params":[0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
* \english
* Clear all items in the conveyor queue
*
* @param encoder_id Reserved
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* conveyorTrackClearItems(self: pyaubo_sdk.MotionControl, arg0: int) -> int
*
* @par Lua function prototype
* conveyorTrackClearItems(encoder_id: number) -> int
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.conveyorTrackClearItems","params":[0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endenglish
*/
int conveyorTrackClearItems(int encoder_id);
/**
* \chinese
*
*
* @param encoder_id
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getConveyorTrackQueue(self: pyaubo_sdk.MotionControl, arg0: int) ->
* List[int]
* @par Lua函数原型
* getConveyorTrackQueue(encoder_id: number) -> table
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getConveyorTrackQueue","params":[0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":{[-500,-200,150,-50]}}
* \endchinese
* \english
* Get encoder values of the conveyor queue
*
* @param encoder_id Reserved
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getConveyorTrackQueue(self: pyaubo_sdk.MotionControl, arg0: int) ->
* List[int]
* @par Lua function prototype
* getConveyorTrackQueue(encoder_id: number) -> table
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getConveyorTrackQueue","params":[0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":{[-500,-200,150,-50]}}
* \endenglish
*/
std::vector<int> getConveyorTrackQueue(int encoder_id);
/**
* \chinese
* id
*
* @param encoder_id
* @return
* idnext item返回 -1
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getConveyorTrackNextItem(self: pyaubo_sdk.MotionControl, arg0: int) ->
* int
* @par Lua函数原型
* getConveyorTrackNextItem(encoder_id: number) -> int
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getConveyorTrackNextItem","params":[0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":{10}}
* \endchinese
* \english
* Get the ID of the next item on the conveyor to be tracked
*
* @param encoder_id Reserved
* @return
* Returns the item ID; returns -1 if there is no next item
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getConveyorTrackNextItem(self: pyaubo_sdk.MotionControl, arg0: int) ->
* int
* @par Lua function prototype
* getConveyorTrackNextItem(encoder_id: number) -> int
*
* @par JSON-RPC Request Example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getConveyorTrackNextItem","params":[0],"id":1}
*
* @par JSON-RPC Response Example
* {"id":1,"jsonrpc":"2.0","result":{10}}
* \endenglish
*/
int getConveyorTrackNextItem(int encoder_id);
/**
* \chinese
* 线
*
* @param param
* @param blend_radius
* @param v
* @param a
* @param t
* @return 0
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveSpiral",
* "params":[{"spiral":0.005,"helix":0.005,"angle":18.84,"plane":0,"frame":[0,0,0,0,0,0]},0,0.25,1.2,0],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Spiral motion
*
* @param param Encapsulated parameters
* @param blend_radius
* @param v
* @param a
* @param t
* @return Returns 0 on success; otherwise returns an error code
* AUBO_BUSY
* AUBO_BAD_STATE
* -AUBO_INVL_ARGUMENT
* -AUBO_BAD_STATE
*
* @throws arcs::common_interface::AuboException
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.moveSpiral",
* "params":[{"spiral":0.005,"helix":0.005,"angle":18.84,"plane":0,"frame":[0,0,0,0,0,0]},0,0.25,1.2,0],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int moveSpiral(const SpiralParameters &param, double blend_radius, double v,
double a, double t);
/**
* \chinese
*
*
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* getLookAheadSize(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* getLookAheadSize() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getLookAheadSize","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":1}
*
* \endchinese
* \english
* Get look-ahead segment size
*
* @return Returns the look-ahead segment size
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* getLookAheadSize(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* getLookAheadSize() -> number
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.getLookAheadSize","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":1}
*
* \endenglish
*/
int getLookAheadSize();
/**
* \chinese
*
* 1.,,,,,;
* 2.,,,.
*
* @return 0
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* setLookAheadSize(self: pyaubo_sdk.MotionControl, arg0: int) -> int
*
* @par Lua函数原型
* setLookAheadSize(eqradius: number) -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setLookAheadSize","params":[1],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Set look-ahead segment size
* 1. For tasks requiring high speed smoothness, such as CNC machining,
* gluing, welding, etc., a longer look-ahead segment size can provide
* better speed planning and smoother motion.
* 2. For fast-response tasks such as picking, a shorter look-ahead segment
* size is preferred to improve response speed, but may cause large speed
* fluctuations due to insufficiently timely path feeding.
*
* @return Returns 0 on success
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* setLookAheadSize(self: pyaubo_sdk.MotionControl, arg0: int) -> int
*
* @par Lua function prototype
* setLookAheadSize(eqradius: number) -> number
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setLookAheadSize","params":[1],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int setLookAheadSize(int size);
/**
* \chinese
*
*
* @param params Json字符串用于定义摆动参数
* {
* "frequency": <num>,
* "amplitude": {<num>,<num>}
* }
*
* @return 0
*
* @throws arcs::common_interface::AuboException
* \endchinese
* \english
* Update frequency and amplitude during weaving process
*
* @param params Json string used to define weaving parameters
* {
* "frequency": <num>,
* "amplitude": {<num>,<num>}
* }
*
* @return Returns 0 on success
*
* @throws arcs::common_interface::AuboException
* \endenglish
*/
int weaveUpdateParameters(const std::string &params);
/**
* \chinese
*
*
* @param stiffness [0 -> 1]
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* enableJointSoftServo(self: pyaubo_sdk.RobotConfig, arg0: List[float]) ->
* int
*
* @par Lua函数原型
* enableJointSoftServo(stiffness: table) -> int
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.RobotConfig.enableJointSoftServo","params":[[0.0,0.0,0.0,0.0,0.0,0.0]],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
* Set joint current loop stiffness coefficient
*
* @param stiffness Stiffness coefficient for each joint, as a percentage [0
* -> 1]. The larger the value, the stiffer the joint.
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* enableJointSoftServo(self: pyaubo_sdk.RobotConfig, arg0: List[float]) ->
* int
*
* @par Lua function prototype
* enableJointSoftServo(stiffness: table) -> int
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.RobotConfig.enableJointSoftServo","params":[[0.0,0.0,0.0,0.0,0.0,0.0]],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int enableJointSoftServo(const std::vector<double> &stiffness);
/**
* \chinese
*
*
* @return 0
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* disableJointSoftServo(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* disableJointSoftServo() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.disableJointSoftServo","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":1}
* \endchinese
* \english
* Disable joint current loop stiffness coefficient
*
* @return Returns 0 on success, otherwise error code
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* disableJointSoftServo(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua function prototype
* disableJointSoftServo() -> number
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.disableJointSoftServo","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":1}
* \endenglish
*/
int disableJointSoftServo();
/**
* \chinese
* 使
*
* @return 使truefalse
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* isJointSoftServoEnabled(self: pyaubo_sdk.MotionControl) -> bool
*
* @par Lua函数原型
* isJointSoftServoEnabled() -> boolean
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isJointSoftServoEnabled","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":1}
* \endchinese
* \english
* Determine whether the joint current loop stiffness coefficient is
* enabled.
*
* @return Returns true if enabled, otherwise returns false.
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* isJointSoftServoEnabled(self: pyaubo_sdk.MotionControl) -> bool
*
* @par Lua function prototype
* isJointSoftServoEnabled() -> boolean
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isJointSoftServoEnabled","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":1}
* \endenglish
*/
bool isJointSoftServoEnabled();
/**
* \chinese
*
*
* @param omega ,.0
* \n
* @param zeta ,.0
* \n
* @param level
* (1~3),.0
* \n
* @retval 0
* @retval AUBO_BAD_STATE(1)
* NormalReducedModeRecovery
* @retval AUBO_QUEUE_FULL(2)
* @retval AUBO_BUSY(3)
* @retval -AUBO_BAD_STATE(-1)
* 线线task_id
* Running
* @retval -AUBO_TIMEOUT(-4)
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* enableVibrationSuppress(self: pyaubo_sdk.MotionControl, arg0:
* list[float], arg1: list[float], arg2: int) -> int
*
* @par Lua函数原型
* enableVibrationSuppress(omega: table, zeta: table, level: number) -> nil
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.enableVibrationSuppress","params":[[0.5,0.5,0.5,0.5,0.5,0.5],[0.5,0.5,0.5,0.5,0.5,0.5],2],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
*
* \endchinese
*/
int enableVibrationSuppress(const std::vector<double> &omega,
const std::vector<double> &zeta, int level);
/**
* \chinese
*
*
* @return 使truefalse
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* disbaleVibrationSuppress(self: pyaubo_sdk.MotionControl) -> int
*
* @par Lua函数原型
* disbaleVibrationSuppress() -> number
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.disbaleVibrationSuppress","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":1}
* \endchinese
*/
int disbaleVibrationSuppress();
/**
* \chinese
*
*
* @param enable
*
* @throws arcs::common_interface::AuboException
*
* @par Lua函数原型
* setTimeOptimalEnable() -> bool
*
* @par Lua示例
* setTimeOptimalEnable(true)
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setTimeOptimalEnable","params":[true],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":0}
* \endchinese
* \english
*
* @param enable
*
* @throws arcs::common_interface::AuboException
*
* @par Lua function prototype
* setTimeOptimalEnable() -> number
*
* @par Lua example
* setTimeOptimalEnable(true)
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.setTimeOptimalEnable","params":[true],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":0}
* \endenglish
*/
int setTimeOptimalEnable(bool enable);
/**
* \chinese
*
* true -
* false -
*
* @return
*
* @throws arcs::common_interface::AuboException
*
* @par Python函数原型
* isTimeOptimalEnabled(self: pyaubo_sdk.MotionControl) -> float
*
* @par Lua函数原型
* isTimeOptimalEnabled() -> number
*
* @par Lua
* num = isTimeOptimalEnabled()
*
* @par JSON-RPC请求示例
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isTimeOptimalEnabled","params":[],"id":1}
*
* @par JSON-RPC响应示例
* {"id":1,"jsonrpc":"2.0","result":1.0}
* \endchinese
* \english
* Get the time optimal algorithm state:
* true - enable
* false - disable
*
* @return Returns the time optimal algorithm state
*
* @throws arcs::common_interface::AuboException
*
* @par Python function prototype
* isTimeOptimalEnabled(self: pyaubo_sdk.MotionControl) -> bool
*
* @par Lua function prototype
* isTimeOptimalEnabled() -> boolean
*
* @par Lua example
* flag = isTimeOptimalEnabled()
*
* @par JSON-RPC request example
* {"jsonrpc":"2.0","method":"rob1.MotionControl.isTimeOptimalEnabled","params":[],"id":1}
*
* @par JSON-RPC response example
* {"id":1,"jsonrpc":"2.0","result":true}
* \endenglish
*/
bool isTimeOptimalEnabled();
protected:
void *d_;
};
using MotionControlPtr = std::shared_ptr<MotionControl>;
} // namespace common_interface
} // namespace arcs
#endif // AUBO_SDK_MOTION_CONTROL_INTERFACE_H