cmvr-es/third_party/AuboSdk/linux/include/rsdef.h

1584 lines
54 KiB
C
Raw Normal View History

2025-11-17 13:48:22 +08:00
#ifndef RSDEF_H
#define RSDEF_H
#include <vector>
#include "rstype.h"
#include "AuboRobotMetaType.h"
#define TRUE 1
#define FALSE 0
#define RS_SUCC 0
#define RS_FAILED -1
#define MAX_RS_INSTANCE 32
#define POS_SIZE 3
#define ORI_SIZE 4
#define INERTIA_SIZE 6
#define JOINT_RADIAN_SIZE 6
#define RS_UNUSED(x) (void)x;
//#define _DEBUG
using namespace aubo_robot_namespace;
typedef CoordCalibrateByJointAngleAndTool CoordCalibrate;
typedef struct
{
CoordCalibrate user_coord;
char used;
} CustomUserCoord;
typedef struct
{
double rotateAxis[3];
} Move_Rotate_Axis;
typedef struct
{
wayPoint_S waypoint[8];
int solution_count;
} ik_solutions;
#ifdef __cplusplus
extern "C" {
#endif
// library initialize and uninitialize
/**
* @brief
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_initialize(void);
/**
* @brief
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_uninitialize(void);
// robot service context
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_create_context(
RSHD *rshd /*returned context handle*/);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_destory_context(RSHD rshd);
// login logout
/**
* @brief
* @param rshd
* @param addr IP地址
* @param port
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_login(RSHD rshd, const char *addr,
int port);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_logout(RSHD rshd);
/**
* @brief
* @param rshd
* @param status true 线 false 线
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_login_status(RSHD rshd, bool *status);
// set move profile
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_init_global_move_profile(RSHD rshd);
// joint max acc,velc
/**
* @brief
* @param rshd
* @param max_acc (rad/ss)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_global_joint_maxacc(
RSHD rshd, const JointVelcAccParam *max_acc);
/**
* @brief
* @param rshd
* @param max_velc (rad/s)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_global_joint_maxvelc(
RSHD rshd, const JointVelcAccParam *max_velc);
/**
* @brief
* @param rshd
* @param max_acc (rad/s^2)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_global_joint_maxacc(
RSHD rshd, JointVelcAccParam *max_acc);
/**
* @brief
* @param rshd
* @param max_velc (rad/s)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_global_joint_maxvelc(
RSHD rshd, JointVelcAccParam *max_velc);
// end line max acc,velc
/**
* @brief 线
* @param rshd
* @param max_acc 线(m/s^2)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_global_end_max_line_acc(RSHD rshd,
double max_acc);
/**
* @brief 线
* @param rshd
* @param max_velc 线(m/s)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_global_end_max_line_velc(
RSHD rshd, double max_velc);
/**
* @brief 线
* @param rshd
* @param max_acc 线(m/s^2)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_global_end_max_line_acc(
RSHD rshd, double *max_acc);
/**
* @brief 线
* @param rshd
* @param max_velc 线(m/s)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_global_end_max_line_velc(
RSHD rshd, double *max_velc);
// end line max acc,velc
/**
* @brief
* @param rshd
* @param max_acc (rad/s^2)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_global_end_max_angle_acc(
RSHD rshd, double max_acc);
/**
* @brief
* @param rshd
* @param max_velc (rad/s)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_global_end_max_angle_velc(
RSHD rshd, double max_velc);
/**
* @brief
* @param rshd
* @param max_acc (m/s^2)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_global_end_max_angle_acc(
RSHD rshd, double *max_acc);
/**
* @brief
* @param rshd
* @param max_velc (m/s)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_global_end_max_angle_velc(
RSHD rshd, double *max_velc);
/**
* @brief
* @param rshd
* @param joint_range
* ±175°使rad
* @param enable 使 true false
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_robot_joint_motion_range(
RSHD rshd, RangeOfMotion joint_range[ARM_DOF], bool enable = true);
// robot move
/**
* @brief
* @param rshd
* @param joint_radian (rad)
* @param isblock isblock==true
* isblock==false
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_joint(RSHD rshd,
double joint_radian[ARM_DOF],
bool isblock = true);
/**
* @brief
* @param rshd
* @param move_profile
* @param joint_radian (rad)
* @param isblock isblock==true
* isblock==false
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_joint_ex(RSHD rshd,
MoveProfile_t *move_profile,
double joint_radian[ARM_DOF],
bool isblock = true);
/**
* @brief
* @param rshd
* @param joint_radian (rad)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_follow_mode_move_joint(
RSHD rshd, double joint_radian[ARM_DOF]);
/**
* @brief 姿线
* @param rshd
* @param joint_radian (rad)
* @param isblock isblock==true
* isblock==false
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_line(RSHD rshd,
double joint_radian[ARM_DOF],
bool isblock = true);
/**
* @brief 姿线
* @param rshd
* @param move_profile
* @param joint_radian (rad)
* @param isblock isblock==true
* isblock==false
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_line_ex(RSHD rshd,
MoveProfile_t *move_profile,
double joint_radian[ARM_DOF],
bool isblock = true);
/**
* @brief rs_move_rotate_to_waypoint保持当前位置变换姿态旋转运动至目标路点
* @param rshd
* @param target_waypiont
* @param isblock isblock==true
* isblock==false
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_rotate_to_waypoint(
RSHD rshd, aubo_robot_namespace::wayPoint_S *target_waypiont,
bool isblock = true);
/**
* @brief 姿
* @param rshd
* @param user_coord
* @param rotate_axis :(x,y,z) (1,0,0)沿Y轴转动
* @param rotate_angle rad
* @param isblock isblock==true
* isblock==false
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_rotate(
RSHD rshd, const CoordCalibrate *user_coord,
const Move_Rotate_Axis *rotate_axis, double rotate_angle,
bool isblock = true);
/**
* rs_get_rotate_target_waypiont
* 姿姿
* @param rshd
* @param originateWayPointOnBaseCoord
* @param rotateAxisOnBaseCoord
* @param rotateAngle
* @param targetWayPointOnBaseCoord
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_rotate_target_waypiont(
RSHD rshd,
const aubo_robot_namespace::wayPoint_S *originateWayPointOnBaseCoord,
const double rotateAxisOnBaseCoord[], double rotateAngle,
aubo_robot_namespace::wayPoint_S *targetWayPointOnBaseCoord);
/**
* @brief rs_get_rotateaxis_user_to_Base
*
* @param rshd
* @param oriOnUserCoord 姿
* @param rotateAxisOnUserCoord
* @param rotateAxisOnBaseCoord
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_rotateaxis_user_to_Base(
RSHD rshd, const aubo_robot_namespace::Ori *oriOnUserCoord,
const double rotateAxisOnUserCoord[], double rotateAxisOnBaseCoord[]);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_remove_all_waypoint(RSHD rshd);
/**
* @brief
* @param rshd
* @param joint_radian (rad)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_add_waypoint(RSHD rshd,
double joint_radian[ARM_DOF]);
/**
* @brief
* @param rshd
* @param radius (m)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_blend_radius(RSHD rshd, double radius);
/**
* @brief
* @param rshd
* @param times times大于0时times次
* times等于0时
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_circular_loop_times(RSHD rshd,
int times);
/**
* @brief
* @param rshd
* @param user_coord
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_user_coord(
RSHD rshd, const CoordCalibrate *user_coord);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_base_coord(RSHD rshd);
/**
* @brief
* @param rshd
* @param user_coord
* @return RS_SUCC : 0 :
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_check_user_coord(
RSHD rshd, const CoordCalibrate *user_coord);
/**
* @brief
* @param rshd
* @param user_coord
* @param bInWPos
* @param bInWOri 姿
* @param wInBPos
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_user_coord_calibrate(
RSHD rshd, const CoordCalibrate *user_coord, double bInWPos[3],
double bInWOri[9], double wInBPos[3]);
/**
* @brief rs_tool_calibration   姿
* @param toolCalibrate
* @param toolInEndDesc       
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_tool_calibration(
RSHD rshd, const ToolCalibrate &toolCalibrate,
ToolInEndDesc &toolInEndDesc);
/**
* @brief
* @param rshd
* @param relative (x, y, z) (m)
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_relative_offset_on_base(
RSHD rshd, const MoveRelative *relative);
/**
* @brief
* @param rshd
* @param relative (x, y, z) (m)
* @param user_coord
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_relative_offset_on_user(
RSHD rshd, const MoveRelative *relative, const CoordCalibrate *user_coord);
/**
* @brief
* @param rshd
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_no_arrival_ahead(RSHD rshd);
/**
* @brief
* @param rshd
* @param distance 
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_arrival_ahead_distance(RSHD rshd,
double distance);
/**
* @brief
* @param rshd
* @param sec  
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_arrival_ahead_time(RSHD rshd,
double sec);
/**
* @brief
* @param rshd
* @param distance 
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_arrival_ahead_blend(RSHD rshd,
double radius);
/**
* @brief
* @param rshd
* @param sub_move_mode :
* 2:
* 3:
* @param isblock isblock==true
* isblock==false
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_track(RSHD rshd,
move_track sub_move_mode,
bool isblock = true);
/**
* @brief
* 姿线,
* @param rshd
* @param target
* @param tool
* @param isblock isblock==true
* isblock==false
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_line_to(RSHD rshd, const Pos *target,
const ToolInEndDesc *tool,
bool isblock = true);
/**
* @brief 姿
* @param rshd
* @param target
* @param tool
* @param isblock isblock==true
* isblock==false
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_joint_to(RSHD rshd, const Pos *target,
const ToolInEndDesc *tool,
bool isblock = true);
/**
* @brief
* @param rshd
* @param user_coord
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_teach_coord(
RSHD rshd, const CoordCalibrate *teach_coord);
/**
* @brief
* @param rshd
* @param mode :JOINT1,JOINT2,JOINT3, JOINT4,JOINT5,JOINT6,
* :MOV_X,MOV_Y,MOV_Z 姿:ROT_X,ROT_Y,ROT_Z
* @param dir true false
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_teach_move_start(RSHD rshd, teach_mode mode,
bool dir);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_teach_move_stop(RSHD rshd);
/**
* @brief 线
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_clear_offline_track(RSHD rshd);
/**
* @brief 线
* @param rshd
* @param waypoints (3000)
* @param waypoint_count
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_append_offline_track_waypoint(
RSHD rshd, const JointParam waypoints[], int waypoint_count);
/**
* @brief 线
* @param rshd
* @param filename
* ,(),
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_append_offline_track_file(
RSHD rshd, const char *filename);
/**
* @brief 线
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_startup_offline_track(RSHD rshd);
/**
* @brief 线
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_stop_offline_track(RSHD rshd);
/**
* @brief 线
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_startup_excit_traj_track(
RSHD rshd, const char *trackfile, char type, char subtype);
/**
* @brief
* @param rshd
* @param second
* @param RS_SUCC
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_track_playback_cycle(RSHD rshd,
double second);
/**
* @brief rs_get_dynidentify_results
* @param param
* @param len
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT bool rs_get_dynidentify_results(
RSHD rshd, std::vector<int> &paramVector);
/**
* @brief TCP2CANBUS透传模式
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_enter_tcp2canbus_mode(RSHD rshd);
/**
* @brief 退TCP2CANBUS透传模式
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_leave_tcp2canbus_mode(RSHD rshd);
/**
* @brief CANBUS
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_waypoint_to_canbus(
RSHD rshd, double joint_radian[ARM_DOF]);
/**
* @brief CANBUS
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_waypoints_to_canbus(
RSHD rshd, double joint_radian[][ARM_DOF], int waypint_count);
/**
* @brief      姿
* @param rshd
* @param joint_radian (rad)
* @param waypoint ,,姿
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_forward_kin(
RSHD rshd, const double joint_radian[ARM_DOF], wayPoint_S *waypoint);
/**
* @brief
* (x,y,z)姿(w,x,y,z)
* @param rshd
* @param joint_radian (rad)
* @param pos :
* @param ori 姿
* @param waypoint
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_inverse_kin(RSHD rshd,
double joint_radian[ARM_DOF],
const Pos *pos, const Ori *ori,
wayPoint_S *waypoint);
/**
* @brief
* (x,y,z)姿(w,x,y,z)
* @param rshd
* @param pos :
* @param ori 姿
* @param ik_solutions
* 88
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_inverse_kin_closed_form(
RSHD rshd, const Pos *pos, const Ori *ori, ik_solutions *solutions);
/**
* @brief
* :
* 姿  姿
*
*  1: (0,0,0)
*
* (0,0,0)姿  姿
*
*     2:   userCoord.coordType =
* BaseCoordinate
* 姿  姿
*
* @param rshd
* @param pos_onbase x,y,z (m)
* @param ori_onbase 姿(w, x, y, z)
* @param user_coord
* @param tool_pos
* @param pos_onuser ,
* @param ori_onuser 姿,
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_base_to_user(
RSHD rshd, const Pos *pos_onbase, const Ori *ori_onbase,
const CoordCalibrate *user_coord, const ToolInEndDesc *tool_pos,
Pos *pos_onuser, Ori *ori_onuser);
/**
* @brief
* @param rshd
* @param pos_onuser
* @param ori_onuser 姿
* @param user_coord
* @param tool_pos
* @param pos_onbase
* @param ori_onbase 姿
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_user_to_base(
RSHD rshd, const Pos *pos_onuser, const Ori *ori_onuser,
const CoordCalibrate *user_coord, const ToolInEndDesc *tool_pos,
Pos *pos_onbase, Ori *ori_onbase);
/**
* @brief  姿
* @param rshd
* @param flange_center_pos_onbase
* @param flange_center_ori_onbase 姿
* @param tool
* @param tool_end_pos_onbase
* @param tool_end_ori_onbase 姿
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_base_to_base_additional_tool(
RSHD rshd, const Pos *flange_center_pos_onbase,
const Ori *flange_center_ori_onbase, const ToolInEndDesc *tool,
Pos *tool_end_pos_onbase, Ori *tool_end_ori_onbase);
/**
* @brief rs_get_target_waypoint_by_position   
* @param sourceWayPointOnBaseCoord     
* @param userCoordSystem           
* @param toolEndPosition           
* @param toolInEndDesc            
* @param targetWayPointOnBaseCoord    
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_target_waypoint_by_position(
RSHD rshd,
const aubo_robot_namespace::wayPoint_S &sourceWayPointOnBaseCoord,
const aubo_robot_namespace::CoordCalibrateByJointAngleAndTool
&userCoordSystem,
const aubo_robot_namespace::Pos &toolEndPosition,
const aubo_robot_namespace::ToolInEndDesc &toolInEndDesc,
aubo_robot_namespace::wayPoint_S &targetWayPointOnBaseCoord);
/**
* @brief
* @param rshd
* @param rpy 姿
* @param ori 姿
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_rpy_to_quaternion(RSHD rshd, const Rpy *rpy,
Ori *ori);
/**
* @brief
* @param rshd
* @param ori 姿
* @param rpy 姿
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_quaternion_to_rpy(RSHD rshd, const Ori *ori,
Rpy *rpy);
/**
* @brief
* @param rshd
* @param tool
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_tool_end_param(
RSHD rshd, const ToolInEndDesc *tool);
// end tool parameters
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_none_tool_dynamics_param(RSHD rshd);
/**
* @brief
* @param rshd
* @param tool
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_tool_dynamics_param(
RSHD rshd, const ToolDynamicsParam *tool);
/**
* @brief
* @param rshd
* @param tool
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_tool_dynamics_param(
RSHD rshd, ToolDynamicsParam *tool);
/**
* @brief
* @param rshd
* @param tool
* @return RS_SUCC
* @note rs_get_tool_dynamics_param获取的位置值单位是mm
* rs_set_tool_dynamics_param统一
*/
inline int rs_get_tool_dynamics_param2(RSHD rshd, ToolDynamicsParam *tool)
{
int retval = rs_get_tool_dynamics_param(rshd, tool);
tool->positionX /= 1000.;
tool->positionY /= 1000.;
tool->positionZ /= 1000.;
return retval;
}
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_none_tool_kinematics_param(RSHD rshd);
/**
* @brief
* @param rshd
* @param tool
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_tool_kinematics_param(
RSHD rshd, const ToolKinematicsParam *tool);
/**
* @brief
* @param rshd
* @param tool
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_tool_kinematics_param(
RSHD rshd, ToolKinematicsParam *tool);
// robot control
/**
* @brief
* @param rshd
* @param tool_dynamics
* @param colli_class
* @param read_pos
* @param static_colli_detect
* @param board_maxacc
* @param state
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_robot_startup(
RSHD rshd, const ToolDynamicsParam *tool_dynamics, uint8 colli_class,
bool read_pos, bool static_colli_detect, int board_maxacc,
ROBOT_SERVICE_STATE *state);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_robot_shutdown(RSHD rshd);
/**
* @brief
* @param rshd
* @param jerkRatio [0.1,20]
* @param double acc 6
* 1使acc[0]
* 2使acc[0,5]
* @param size 6
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_reduce_para(RSHD rshd,
const double jerkRatio,
const double acc[],
int size);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_stop(RSHD rshd);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_fast_stop(RSHD rshd);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_pause(RSHD rshd);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_continue(RSHD rshd);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_collision_recover(RSHD rshd);
/**
* @brief
* @param rshd
* @param state
* :RobotStatus.Stopped
* :RobotStatus.Running
* :RobotStatus.Paused
* :RobotStatus.Resumed
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_robot_state(RSHD rshd,
RobotState *state);
/**
* @brief
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT bool rs_enter_reduce_mode(RSHD rshd);
/**
* @brief 退
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT bool rs_exit_reduce_mode(RSHD rshd);
/**
* @brief IO
* @param rshd
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT bool rs_project_startup(RSHD rshd);
/**
* @brief IO
* @param rshd
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT bool rs_project_stop(RSHD rshd);
// tool interface
// robot parameters
/**
* @brief
* @param rshd
* @param mode
* 仿:RobotRunningMode.RobotModeSimulator
* :RobotRunningMode.RobotModeReal
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_work_mode(RSHD rshd,
RobotWorkMode mode);
/**
* @brief
* @param rshd
* @param mode
* 仿:RobotRunningMode.RobotModeSimulator
* :RobotRunningMode.RobotModeReal
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_work_mode(RSHD rshd,
RobotWorkMode *mode);
/**
* @brief
* @param rshd
* @param gravity
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_gravity_component(
RSHD rshd, RobotGravityComponent *gravity);
/**
* @brief
* @param rshd
* @param grade 010
* @param mode
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_collision_class(RSHD rshd, int grade);
SERVICE_INTERFACE_ABI_EXPORT int rs_set_collision_class2(RSHD rshd, int grade,
CollisionMode mode);
/**
* @brief
* @param rshd
* @param grade 0~10
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_collision_class(RSHD rshd, int *grade);
/**
* @brief
* @param rshd
* @param dev
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_device_info(RSHD rshd,
RobotDevInfo *dev);
/**
* @brief
* @param rshd
* @param exist true false
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_is_have_real_robot(RSHD rshd, bool *exist);
/**
* @brief
* @param rshd
* @param isonline true false
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_is_online_mode(RSHD rshd, bool *isonline);
/**
* @brief
* @param rshd
* @param ismaster true false
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_is_online_master_mode(RSHD rshd,
bool *ismaster);
/**
* @brief
* @param rshd
* @param jointStatus
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_joint_status(
RSHD rshd, JointStatus jointStatus[ARM_DOF]);
/**
* @brief
* @param rshd
* @param waypoint
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_current_waypoint(RSHD rshd,
wayPoint_S *waypoint);
/**
* @brief
* @param rshd
* @param info
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_diagnosis_info(
RSHD rshd, RobotDiagnosis *robotDiagnosisInfo);
/**
* @brief
* @param rshd
* @param err_code
* @return ErrnoSucc;
*/
SERVICE_INTERFACE_ABI_EXPORT const char *rs_get_error_information_by_errcode(
RSHD rshd, RobotErrorCode err_code);
/**
* @brief socket链接状态
* @param rshd
* @param connected true false
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_socket_status(RSHD rshd,
bool *connected);
/**
* @brief
* @param rshd
* @param endspeed m/s
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_robot_end_speed(RSHD rshd,
float *endspeed);
// IO interaface
/**
* @brief IO集合的配置信息
* @param rshd
* @param type IO类型
* @param config IO配置信息集合
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_board_io_config(
RSHD rshd, RobotIoType type, std::vector<RobotIoDesc> *config);
/**
* @brief IO类型和地址设置IO状态
* @param rshd
* @param type IO类型
* @param name IO名称
* @param val IO状态
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_board_io_status_by_name(
RSHD rshd, RobotIoType type, const char *name, double val);
/**
* @brief IO类型和地址设置IO状态
* @param rshd
* @param type IO类型
* @param addr IO状态
* @param val IO状态
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_board_io_status_by_addr(
RSHD rshd, RobotIoType type, int addr, double val);
/**
* @brief IO类型和地址获取IO状态
* @param rshd
* @param type IO类型
* @param name IO名称
* @param val IO状态
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_board_io_status_by_name(
RSHD rshd, RobotIoType type, const char *name, double *val);
/**
* @brief IO类型和地址获取IO状态
* @param rshd
* @param type IO类型
* @param addr IO地址
* @param val
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_board_io_status_by_addr(
RSHD rshd, RobotIoType type, int addr, double *val);
// tool device interface
/**
* @brief
* @param rshd
* @param type ower_type:
* 0:.OUT_0V
* 1:.OUT_12V
* 2:.OUT_24V
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_tool_power_type(RSHD rshd,
ToolPowerType type);
/**
* @brief
* @param rshd
* @param type ower_type:
* 0:.OUT_0V
* 1:.OUT_12V
* 2:.OUT_24V
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_tool_power_type(RSHD rshd,
ToolPowerType *type);
/**
* @brief IO的类型
* @param rshd
* @param addr
* @param type 0: 1:
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_tool_io_type(RSHD rshd,
ToolDigitalIOAddr addr,
ToolIOType type);
/**
* @brief
* @param rshd
* @param voltage
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_tool_power_voltage(RSHD rshd,
double *voltage);
/**
* @brief IO状态
* @param rshd
* @param name IO名称
* @param val IO状态
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_tool_io_status(RSHD rshd,
const char *name,
double *val);
/**
* @brief IO状态
* @param rshd
* @param name IO名称
* @param status IO状态
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_tool_do_status(RSHD rshd,
const char *name,
IO_STATUS status);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_client_status_pause(RSHD rshd);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_client_status_continue(RSHD rshd);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_client_status_stop(RSHD rshd);
/**
* @brief
* @param rshd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_client_status_run(RSHD rshd);
/**
* @brief
* @param data
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_robot_orpe_stop(RSHD rshd, uint8 data);
/**
* @brief rs_robot_control
* @param rshd
* @param cmd
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_robot_control(RSHD rshd,
RobotControlCommand cmd);
/**
* @brief
* @param param
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_robot_recognition_param(
RSHD rshd, const RobotRecongnitionParam *param);
/**
* @brief
* @param type
* @param param
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_robot_recognition_param(
RSHD rshd, int type, RobotRecongnitionParam *param);
/**
* @brief
* @param rshd
* @param safetyConfig
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_robot_safety_config(
RSHD rshd, RobotSafetyConfig *param);
/**
* @brief
* @param rshd
* @param safetyConfig
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_robot_safety_config(
RSHD rshd, RobotSafetyConfig *param);
/**
* @brief
* @param rshd
* @param safetyStatus
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_robot_safety_status(
RSHD rshd, OrpeSafetyStatus *param);
//#ifndef FOR_FORCE_LIBRARY
/**
* @brief
* @param rshd
* @param param
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_robot_base_parameters(
RSHD rshd, const RobotBaseParameters *param);
/**
* @brief
* @param rshd
* @param param
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_robot_base_parameters(
RSHD rshd, RobotBaseParameters *param);
/**
* @brief
* @param rshd
* @param param
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_robot_joints_parameter(
RSHD rshd, const RobotJointsParameter *param);
/**
* @brief
* @param rshd
* @param param
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_robot_joints_parameter(
RSHD rshd, RobotJointsParameter *param);
/**
* @brief
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_robot_refresh_robot_arm_paramter(
RSHD rshd);
//#else
/**
* @brief
* @param rshd
* @param config
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_regulate_speed_param(
RSHD rshd, const RegulateSpeedModeParamConfig_t *config);
/**
* @brief
* @param rshd
* @param config
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_regulate_speed_param(
RSHD rshd, RegulateSpeedModeParamConfig_t *config);
/**
* @brief 使/
* @param rshd
* @param enbaleFlag
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_enable_regulate_speed_mode(RSHD rshd,
bool enbaleFlag);
/**
* @brief "主动探寻力"
* @param rshd
* @param forceLimit
* @param distLimit
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_force_control_mode_explore_force_param(
RSHD rshd, double *forceLimit, double *distLimit);
/**
* @brief "主动探寻力"
* @param rshd
* @param forceLimit
* @param distLimit
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_set_force_control_mode_explore_force_param(
RSHD rshd, double forceLimit, double distLimit);
/**
* @brief 使/
* @param rshd
* @param enbaleFlag
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_enable_force_control_mode(RSHD rshd,
bool enbaleFlag);
/**
* @brief
* @param rshd
* @param
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_get_realtime_force_data(
RSHD rshd, double forceData[6]);
/**
* @brief (+姿)
* @param rshd
* @param filePath
* @param poseType 姿
* @param referPointJointAngle
* @param toolInEndDesc
* @param wayPointVector
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_parse_file_as_roadpoint_collection(
RSHD rshd, const char *filePath,
aubo_robot_namespace::POSITION_ORIENTATION_TYPE poseType,
const double *referPointJointAngle,
const aubo_robot_namespace::ToolInEndDesc *toolInEndDesc,
aubo_robot_namespace::wayPoint_S wayPoint[], int waypointSize,
int *sizeReturn);
/**
* @brief
* @param rshd
* @param filePath
* @param referPointJointAngle
* @param toolInEndDesc
* @param firstWayPoint
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_parse_roadpoint_file_and_cache_result(
RSHD rshd, const char *filePath, const double *referPointJointAngle,
aubo_robot_namespace::ToolInEndDesc *toolInEndDesc,
aubo_robot_namespace::wayPoint_S *firstWayPoint);
/**
* @brief
* rs_parse_roadpoint_file_and_cache_result的结果
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_move_cached_track(RSHD rshd);
//#endif
// callback
/**
* @brief
* @param rshd
* @param ptr
* @param arg
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_setcallback_realtime_roadpoint(
RSHD rshd, const RealTimeRoadPointCallback ptr, void *arg);
/**
* @brief
* @param rshd
* @param ptr
* @param arg
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_setcallback_realtime_joint_status(
RSHD rshd, const RealTimeJointStatusCallback ptr, void *arg);
/**
* @brief
* @param rshd
* @param ptr
* @param arg
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_setcallback_realtime_end_speed(
RSHD rshd, const RealTimeEndSpeedCallback ptr, void *arg);
/**
* @brief
* @param rshd
* @param ptr
* @param arg
*
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_setcallback_robot_event(
RSHD rshd, const RobotEventCallback ptr, void *arg);
/**
* @brief
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_setcallback_robot_loginfo(
RSHD rshd, const RobotLogPrintCallback ptr, void *arg);
/**
* @brief MOVEP运动进度信息的回调函数
* @return
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_setcallback_movep_step_num(
RSHD rshd, const RealTimeMovepStepNumNotifyCallback ptr, void *arg);
// enable push information
/**
* @brief
* @param rshd
* @param enable true表示允许 false表示不允许
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_enable_push_realtime_roadpoint(RSHD rshd,
bool enable);
/**
* @brief
* @param rshd
* @param enable true表示允许 false表示不允许
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_enable_push_realtime_joint_status(
RSHD rshd, bool enable);
/**
* @brief
* @param rshd
* @param enable true表示允许 false表示不允许
* @return RS_SUCC
*/
SERVICE_INTERFACE_ABI_EXPORT int rs_enable_push_realtime_end_speed(RSHD rshd,
bool enable);
// other
SERVICE_INTERFACE_ABI_EXPORT const char *rs_str_error(RSHD rshd, int err);
SERVICE_INTERFACE_ABI_EXPORT void print_plan(const CoordCalibrate *user_coord);
SERVICE_INTERFACE_ABI_EXPORT void print_move_relative_offset(
const MoveRelative *relative);
SERVICE_INTERFACE_ABI_EXPORT void print_waypoint(wayPoint_S *waypoint);
SERVICE_INTERFACE_ABI_EXPORT void print_tool_dynamics(
ToolDynamicsParam *tool_dynamics);
#ifdef __cplusplus
}
#endif
#endif // RSDEF_H