TL-tl_driver服务与话题说明书

连接管理接口

机械臂连接

功能描述 建立机械臂网络通信连接
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-连接成功,false-连接失败

命令示例

ros2 service call /tl_driver/connect_arm std_srvs/srv/Trigger "{}"

机械臂断开连接

功能描述 断开机械臂网络通信连接
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-断开连接成功,false-断开连接失败

命令示例

ros2 service call /tl_driver/disconnect_arm std_srvs/srv/Trigger "{}"

机械臂上电

功能描述 机械臂使能上电
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-上电成功,false-上电失败

命令示例

ros2 service call /tl_driver/power_on std_srvs/srv/Trigger "{}"

机械臂下电

功能描述 机械臂使能下电
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-下电成功,false-下电失败

命令示例

ros2 service call /tl_driver/power_off std_srvs/srv/Trigger "{}"

日志管理接口

日志下载

功能描述 下载指定数量的日志到指定文件夹
通信机制 ROS2服务
参数说明 LogDownload.srv
int32 count:日志数量
string directory_path:保存目录路径
返回值 true-下载成功,false-下载失败

命令示例

ros2 service call /tl_driver/log_download tl_ros2_interface/srv/LogDownload "{count: 1, directory_path: '/home/ubuntu/桌面'}"

信息查询接口

查询关节角度

功能描述 查询关节角度
通信机制 ROS2话题
参数说明 无参数
返回值 关节角度(sensor_msgs::msg::JointState)

命令示例

ros2 topic echo /joint_states

查询末端位姿

功能描述 查询机械臂末端位置
通信机制 ROS2话题
参数说明 无参数
返回值 末端位姿(CartesianPose.msg)

命令示例

ros2 topic echo /tcp_pose

查询运行速度

功能描述 查询机械臂运行速度
通信机制 ROS2服务
参数说明 GetSpeed.srv
返回值 true-查询成功,false-查询失败
float64 speed:运行速度

命令示例

ros2 service call /tl_driver/get_speed tl_ros2_interface/srv/GetSpeed "{}"

查询控制器序列号ID

功能描述 查询控制器序列号ID
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-查询成功,false-查询失败
查询成功时返回控制器序列号ID

命令示例

ros2 service call /tl_driver/get_controller_id std_srvs/srv/Trigger "{}"

查询机械臂状态

功能描述 查询机械臂详细状态
通信机制 ROS2服务
参数说明 GetRobotState.srv
int32 channel:查询通道
bool stop:是否停止发送
int32 mode:查询模式(0-只回复一次 1-持续回复)
int32 interval:仅mode=1时有效,回复时间范围[10,60000]ms
bool io_state:查询IO
int32 position:0-关节坐标 1-直角坐标
bool detail_motion_pos:机械臂的运动点位
int32 pos_sum:当查询机械臂运动点位时,posSum为每帧数据回复的点位数目
string[] io_port:IO端口,可查询的最大数量不可大于IO实际个数 例子:[ “DI1”, “DI16”, “DO1”, “DO3”, “DO17”]
string[] optional:查询运动点位返回的坐标类型 "ACS"-关节参数 "MCS"-直角参数 "time"-时间戳 "reset"-重置点位记录
返回值 true-查询成功,false-查询失败
查询成功时返回对应的查询信息

命令示例

ros2 service call /tl_driver/get_robot_state tl_ros2_interface/srv/GetRobotState \
"{
    channel: 1, 
    stop: false, 
    mode: 0, 
    interval: 10, 
    io_state: false, 
    position: 0, 
    detail_motion_pos: false, 
    pos_sum: 1, 
    io_port: [\"DO1\"], 
    optional: [\"ACS\"]
}"

查询库版本信息

功能描述 查询API库版本相关信息
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-查询成功,false-查询失败
查询成功时返回库版本信息

命令示例

ros2 service call /tl_driver/get_library_version std_srvs/srv/Trigger "{}"

查询关节参数

功能描述 查询机械臂关节参数
通信机制 ROS2服务
参数说明 GetRobotJointParam.srv
int32 id:关节序号
返回值

true-查询成功,false-查询失败
查询成功时返回关节参数

RobotJointParam.msg(机械臂关节信息)
float64 reduction_ratio:关节减速比
int32 encoder_resolution:编码器位数
float64 pos_sw_limit:轴正限位
float64 neg_sw_limit:轴反限位
float64 rated_rot_speed:电机额定正转速
float64 rated_derot_speed:电机额定反转速
float64 max_rot_speed:电机最大正转速
float64 max_derot_speed:电机最大反转速
float64 rated_vel:额定正速度
float64 rated_devel:额定反速度
float64 max_acc:最大加速度
float64 max_deacc:最大减速度
int32 direction:模型方向

命令示例

ros2 service call /tl_driver/get_robot_joint_param tl_ros2_interface/srv/GetRobotJointParam "{id: 1}"

查询关节温度

功能描述 查询关节温度
通信机制 ROS2服务
参数说明 GetJointTemperature.srv
返回值 true-查询成功,false-查询失败
float64[] temperatures:各个关节温度

命令示例

ros2 service call /tl_driver/get_joint_temperature tl_ros2_interface/srv/GetJointTemperature "{}"

查询关节电压

功能描述 查询关节电压
通信机制 ROS2服务
参数说明 GetJointVoltage.srv
返回值 true-查询成功,false-查询失败
float64[] joint_voltage:机械臂本体各关节电压
float64[] positioner_voltage:外部轴各关节电压

命令示例

ros2 service call /tl_driver/get_joint_voltage tl_ros2_interface/srv/GetJointVoltage "{}"

查询电机电流

功能描述 查询独立轴当前电机电流
通信机制 ROS2服务
参数说明 GetMotorCurrent.srv
返回值 true-查询成功,false-查询失败
float64[] current_motor:机械臂独立轴电机电流

命令示例

ros2 service call /tl_driver/get_motor_current tl_ros2_interface/srv/GetMotorCurrent "{}"

查询关节软件版本号

功能描述 查询指定关节(轴)软件版本号
通信机制 ROS2服务
参数说明 GetJointSoftwareVersion.srv
int32 axis_num:关节(轴)号
返回值 true-查询成功,false-查询失败
查询成功时返回指定关节软件版本号

命令示例

ros2 service call /tl_driver/get_joint_software_version tl_ros2_interface/srv/GetJointSoftwareVersion "{axis_num: 1}"

查询算法库版本

功能描述 查询算法库版本信息
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-查询成功,false-查询失败
查询成功时返回算法库版本信息

命令示例

ros2 service call /tl_driver/get_nexmotion_lib_version std_srvs/srv/Trigger "{}"

查询当前坐标系

功能描述 查询当前坐标系
通信机制 ROS2服务
参数说明 GetCurrentCoord.srv
返回值 true-查询成功,false-查询失败
int32 coord:坐标系序号(0-关节 1-直角 2-工具 3-用户)

命令示例

ros2 service call /tl_driver/get_current_coord tl_ros2_interface/srv/GetCurrentCoord "{}"

查询坐标系编号

功能描述 查询工具坐标系和用户坐标系编号
通信机制 ROS2服务
参数说明 GetCoordNum.srv
返回值 true-查询成功,false-查询失败
int32 tool_num:工具坐标系序号
int32 user_num:用户坐标系序号

命令示例

ros2 service call /tl_driver/get_coord_num tl_ros2_interface/srv/GetCoordNum "{}"

查询机械臂DH参数

功能描述 查询机械臂DH参数
通信机制 ROS2服务
参数说明 GetDHParam.srv
返回值 true-查询成功,false-查询失败
RobotDHParam.msg

命令示例

ros2 service call /tl_driver/get_dh_param tl_ros2_interface/srv/GetDHParam

查询所有作业文件名称

功能描述 查询所有作业文件名称
通信机制 ROS2服务
参数说明 GetAllJobFileName.srv
返回值 true-查询成功,false-查询失败
JobFileName.msg
string[] file_name:作业文件名称

命令示例

ros2 service call /tl_driver/get_all_job_filename tl_ros2_interface/srv/GetAllJobFileName "{}"

查询目标位姿可达状态

功能描述 查询目标位姿可达状态
通信机制 ROS2服务
参数说明 GetPosReachable.srv
float64[] pos:查询位姿
string move_type:运动方式
返回值 true-目标位姿可达,false-目标位姿不可达

命令示例

ros2 service call /tl_driver/get_pos_reachable tl_ros2_interface/srv/GetPosReachable \
'{
    pos: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -57.14, -32.93, 19.74, -89.89, -19.77, 0.0], 
    move_type: "MOVJ"
}'

机械臂基础功能设置接口

设置运行速度

功能描述 设置机械臂运行速度
通信机制 ROS2服务
参数说明 SetSpeed.srv
float64 speed:运行速度
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_speed tl_ros2_interface/srv/SetSpeed "{speed: 20.0}"

设置控制器有线网口IP

功能描述 设置控制器有线网口IP
通信机制 ROS2服务
参数说明 SetControllerIP.srv
string name:配置名称
string addr:IP地址
string gateway:网关
string dns:DNS域名
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_controller_ip tl_ros2_interface/srv/SetControllerIP \
"{
    name: 'eth0',
    addr: '192.168.1.13',
    gateway: '',
    dns: ''
}"

设置关节参数

功能描述 设置机械臂关节参数
通信机制 ROS2服务
参数说明

SetRobotJointParam.srv
int32 id:关节序号
RobotJointParam.msg

相关参数查阅查询关节参数返回值部分

返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_robot_joint_param tl_ros2_interface/srv/SetRobotJointParam \
"{
    id: 1,
    param:
    {
        reduction_ratio: 1.0,
        encoder_resolution: 19,
        pos_sw_limit: 179.0,
        neg_sw_limit: -179.0,
        rated_rot_speed: 30.0,
        rated_derot_speed: -30.0,
        max_rot_speed: 1.0,
        max_derot_speed: -1.0,
        rated_vel: 180.0,
        rated_devel: -180.0,
        max_acc: 1.5,
        max_deacc: -1.5,
        direction: -1
    }
}"

设置机械臂默认DH参数

功能描述 设置机械臂默认DH参数
通信机制 ROS2服务
参数说明 RestoreDefaultDHParam.srv
返回值 true-恢复成功,false-恢复失败

命令示例

ros2 service call /tl_driver/restore_default_dh_param tl_ros2_interface/srv/RestoreDefaultDHParam "{robot_num: 1}"

设置机械臂默认笛卡尔参数

功能描述 设置机械臂默认笛卡尔参数
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_default_cartesian_param std_srvs/srv/Trigger "{}"

坐标转换

功能描述 坐标系数据转换
通信机制 ROS2服务
参数说明 CoordTransform.srv
int32 origin_coord:原始坐标系序号
int32 target_coord:目标坐标系序号
int32 form:形态
float64[] origin_pos:原始坐标系位姿
float64[] reference_pos:参考位姿
返回值 true-写入成功,false-写入失败
float64[] target_pos:目标坐标系位姿

命令示例

ros2 service call /tl_driver/coord_transform tl_ros2_interface/srv/CoordTransform \
'{
    origin_coord: 0, 
    target_coord: 1, 
    form: 0, 
    origin_pos: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0], 
    reference_pos: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
}'

设置机械臂DH参数

功能描述 设置机械臂DH参数
通信机制 ROS2服务
参数说明 SetDHParam.srv
RobotDHParam.msg(机械臂DH参数)
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_dh_param tl_ros2_interface/srv/SetDHParam \
"{
    param:
    {
        l1: 127.5
    }
}"

作业运动控制接口

向作业文件插入一条moveJ关节运动

功能描述 向作业文件插入一条moveJ关节运动
通信机制 ROS2服务
参数说明 JobInsertMove.msg(作业文件插入运动控制参数)
int32 line:插入行序号
MoveCommand cmd:运动指令
返回值 无返回值

命令示例

targetPosType=0为自定义数组 posInfo[14] [0]坐标系 0:关节 1:直角 2:工具 3:用户 [1]:0 角度制 1弧度制 [2]形态 [3]工具手坐标序号 [4]用户坐标序号 [5][6] 备用 [7-13] 点位信息

ros2 topic pub --once /tl_driver/job_insert_moveJ tl_ros2_interface/msg/JobInsertMove "{
  line: 1,
  cmd: {
    target_pos_value: [
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
    ],
    target_pos_name: '',
    target_pos_type: 0,
    coord: 0,
    velocity: 20.0,
    velocity_sync: 0.0,
    acc: 20.0,
    dec: 20.0,
    pl: 0,
    time: 0,
    tool_num: 0,
    user_num: 0,
    posidtype: 0,
    configuration: 0,
    spin: 0,
    para_sync: false
  }
}"

targetPosType=1,需要设置targetPosName为"P0001",默认中间三个0,此时target_pos_value根据实际机械臂轴数来设定参数数量,输入关节角度

ros2 topic pub --once /tl_driver/job_insert_moveJ tl_ros2_interface/msg/JobInsertMove "{
  line: 1,
  cmd: {
    target_pos_value: [
      10.0, 20.0, 0.0, 0.0, 0.0, 0.0
    ],
    target_pos_name: 'P0001',
    target_pos_type: 1,
    coord: 0,
    velocity: 20.0,
    velocity_sync: 0.0,
    acc: 20.0,
    dec: 20.0,
    pl: 0,
    time: 0,
    tool_num: 0,
    user_num: 0,
    posidtype: 0,
    configuration: 0,
    spin: 0,
    para_sync: false
  }
}"

向作业文件插入一条moveL关节运动

功能描述 向作业文件插入一条moveL关节运动
通信机制 ROS2话题
参数说明 JobInsertMove.msg
int32 line:插入行序号
MoveCommand cmd:运动指令
返回值 无返回值

命令示例

ros2 topic pub --once /tl_driver/job_insert_moveL tl_ros2_interface/msg/JobInsertMove "{
  line: 1,
  cmd: {
    target_pos_value: [
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
    ],
    target_pos_name: '',
    target_pos_type: 0,
    coord: 0,
    velocity: 20.0,
    velocity_sync: 0.0,
    acc: 20.0,
    dec: 20.0,
    pl: 0,
    time: 0,
    tool_num: 0,
    user_num: 0,
    posidtype: 0,
    configuration: 0,
    spin: 0,
    para_sync: false
  }
}"

向作业文件插入一条增量指令IMove

功能描述 向作业文件插入一条增量指令IMove
通信机制 ROS2话题
参数说明 JobInsertMove.msg
int32 line:插入行序号
MoveCommand cmd:运动指令
返回值 无返回值

命令示例

ros2 topic pub --once /tl_driver/job_insert_imove tl_ros2_interface/msg/JobInsertMove "{
  line: 1,
  cmd: {
    target_pos_value: [
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
    ],
    target_pos_name: '',
    target_pos_type: 0,
    coord: 0,
    velocity: 20.0,
    velocity_sync: 0.0,
    acc: 20.0,
    dec: 20.0,
    pl: 0,
    time: 0,
    tool_num: 0,
    user_num: 0,
    posidtype: 0,
    configuration: 0,
    spin: 0,
    para_sync: false
  }
}"

向作业文件插入一条moveC关节运动

功能描述 向作业文件插入一条moveC关节运动
通信机制 ROS2话题
参数说明 JobInsertMove.msg
int32 line:插入行序号
MoveCommand cmd:运动指令
返回值 无返回值

命令示例

ros2 topic pub --once /tl_driver/job_insert_moveC tl_ros2_interface/msg/JobInsertMove "{
  line: 1,
  cmd: {
    target_pos_value: [
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
      0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0
    ],
    target_pos_name: '',
    target_pos_type: 0,
    coord: 0,
    velocity: 20.0,
    velocity_sync: 0.0,
    acc: 20.0,
    dec: 20.0,
    pl: 0,
    time: 0,
    tool_num: 0,
    user_num: 0,
    posidtype: 0,
    configuration: 0,
    spin: 0,
    para_sync: false
  }
}"

运行作业文件

功能描述 运行作业文件
通信机制 ROS2话题
参数说明 JobRun.srv
string job_name:作业名称
返回值 true-运行成功,false-运行失败

命令示例

ros2 service call /tl_driver/job_run tl_ros2_interface/srv/JobRun "{job_name: '回零点'}"

实时运动控制接口

MoveJ运动控制

功能描述 机械臂MoveJ运动控制
通信机制 ROS2话题
参数说明 MoveCommand.msg
float64[] target_pos_value:目标位姿
string target_pos_name:目标位姿名称
int32 target_pos_type:目标位姿类型
int32 coord:坐标系序号
float64 velocity:运行速度
float64 velocity_sync:速度同步
float64 acc:加速度
float64 dec:减速度
int32 pl:平滑度
int32 time:提前执行时间
int32 tool_num:工具坐标系编号
int32 user_num:用户坐标系编号
int32 posidtype:变量类型
int32 configuration:形态
int32 spin:MOVCA指令使用(0-姿态不变 1-六轴不转 2-六轴旋转)
bool para_sync:外部轴是否同步
返回值 无返回值

命令示例

ros2 topic pub --once /tl_driver/moveJ tl_ros2_interface/msg/MoveCommand \
"{
    target_pos_value: [90.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    target_pos_name: '',
    target_pos_type: 0,
    coord: 0,
    velocity: 20.0,
    velocity_sync: 0.0,
    acc: 20.0,
    dec: 20.0,
    pl: 0,
    time: 0,
    tool_num: 0,
    user_num: 0,
    posidtype: 0,
    configuration: 0,
    spin: 0,
    para_sync: false
}"

MoveL运动控制

功能描述 机械臂MoveL运动控制
通信机制 ROS2话题
参数说明 MoveCommand.msg
返回值 无返回值

命令示例

ros2 topic pub --once /tl_driver/moveL tl_ros2_interface/msg/MoveCommand \
"{
    target_pos_value: [10.0, 230.0, 245.0, -3.14, 0.0, -1.57, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0],
    target_pos_name: '',
    target_pos_type: 0,
    coord: 1,
    velocity: 20.0,
    velocity_sync: 0.0,
    acc: 20.0,
    dec: 20.0,
    pl: 0,
    time: 0,
    tool_num: 0,
    user_num: 0,
    posidtype: 0,
    configuration: 0,
    spin: 0,
    para_sync: false
}"

坐标系与工具管理接口

设置工具手参数

功能描述 设置工具手相关参数
通信机制 ROS2服务
参数说明 SetToolParam.srv
int32 tool_num:工具手编号
ToolParam.msg(工具手参数)
float64 x:x轴方向偏移
float64 y:y轴方向偏移
float64 z:z轴方向偏移
float64 a:绕a轴旋转
float64 b:绕b轴旋转
float64 c:绕c轴旋转
payload_mass:负载质量
payload_inertia:负载惯性
payload_mass_center_x:负载质心x
payload_mass_center_y:负载质心y
payload_mass_center_z:负载质心z
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_tool_param tl_ros2_interface/srv/SetToolParam \
'{
    tool_num: 1, 
    param: 
    {
        x: 100.0, 
        y: 20.0, 
        z: 50.0, 
        a: 0.1, 
        b: 0.2, 
        c: 0.3, 
        payload_mass: 1.5, 
        payload_inertia: 0.01, 
        payload_mass_center_x: 5.0, 
        payload_mass_center_y: 5.0, 
        payload_mass_center_z: 10.0
    }
}'

工具手参数标定

功能描述 工具手参数标定
通信机制 ROS2服务
参数说明 ToolHandCalib.srv
int32 tool_num:工具坐标系序号
int32 point_num:标定点数
返回值 true-标定成功,false-标定失败

命令示例

ros2 service call /tl_driver/tool_hand_calib tl_ros2_interface/srv/ToolHandCalib "{tool_num: 3}"

设置用户坐标系

功能描述 设置用户坐标系相关参数
通信机制 ROS2服务
参数说明 SetUserCoord.srv
int32 user_num:用户坐标系编号
CartesianPose.msg(直接坐标系参数)
header:坐标系和时间戳
geometry_msgs/Point/position:直接坐标系位置
geometry_msgs/Vector3/rpy:欧拉角
float64 arm_angle:臂角
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_user_coord tl_ros2_interface/srv/SetUserCoord \
"{
    user_num: 1, 
    pos: 
    {
        header: 
        {
            frame_id: 'base_link'
        }, 
        position: 
        {
            x: 200.0, 
            y: 100.0, 
            z: 50.0
        }, 
        rpy: 
        {
            x: 0.1, 
            y: 0.2, 
            z: 0.3
        }, 
        arm_angle: 0.0
    }
}"

设置坐标系编号

功能描述 设置工具坐标系和用户坐标系编号
通信机制 ROS2服务
参数说明 SetCoordNum.srv
int32 tool_num:工具坐标系序号
int32 user_num:用户坐标系序号
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_coord_num tl_ros2_interface/srv/SetCoordNum "{tool_num: 1, user_num: 2}"

设置当前坐标系

功能描述 设置当前坐标系
通信机制 ROS2服务
参数说明 SetCurrentCoord.srv
int32 coord:坐标系序号(0-关节 1-直角 2-工具 3-用户)
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_current_coord tl_ros2_interface/srv/SetCurrentCoord "{coord: 1}"

示教操作接口

开始点动

功能描述 开始点动机械臂
通信机制 ROS2服务
参数说明 Jogging.srv
int32 axis:关节轴号
bool direction:关节运动方向(true-正方向 false-反方向)
返回值 true-点动成功,false-点动失败

命令示例

ros2 service call /tl_driver/start_jogging tl_ros2_interface/srv/Jogging "{axis: 3, direction: 1}"

停止点动

功能描述 停止点动机械臂
通信机制 ROS2服务
参数说明 Jogging.srv
int32 axis:关节轴号
返回值 true-停止点动成功,false-停止点动失败

命令示例

ros2 service call /tl_driver/stop_jogging tl_ros2_interface/srv/Jogging "{axis: 3}"

设置拖拽模式

功能描述 设置机械臂拖拽模式
通信机制 ROS2服务
参数说明 SetDragMode.srv
int32 mode:拖拽模式(0-无 1-3D鼠标 2-力矩模式 3-位置)
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_drag_mode tl_ros2_interface/srv/SetDragMode "{mode: 3}"

查看拖拽状态

功能描述 查询拖拽是否结束
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-拖拽结束,false-拖拽未结束

命令示例

ros2 service call /tl_driver/get_drag_status std_srvs/srv/Trigger "{}"

拖拽轨迹保存

功能描述 拖拽轨迹保存
通信机制 ROS2服务
参数说明 TrackSave.srv
string traj_name:保存轨迹名称
返回值 true-保存成功,false-保存失败

命令示例

ros2 service call /tl_driver/track_save tl_ros2_interface/srv/TrackSave "{traj_name: 'traj_test'}"

拖拽轨迹回放

功能描述 拖拽轨迹回放
通信机制 ROS2服务
参数说明 TrackPlayback.srv
int32 vel:轨迹回放速度
返回值 true-轨迹回放成功,false-轨迹回放失败 

命令示例

ros2 service call /tl_driver/track_playback tl_ros2_interface/srv/TrackPlayback "{vel: 20}"

错误处理与零位标定接口

清除错误

功能描述 清除错误
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-清除错误成功,false-清除错误失败

命令示例

ros2 service call /tl_driver/clear_error std_srvs/srv/Trigger "{}"

设置关节零点

功能描述 设置关节零点
通信机制 ROS2服务
参数说明 SetAxisZeroPos.srv
int32 axis:关节轴号
返回值 true-设置成功,false-设置失败
注意 设置关节零点需要先进行power_off,完成设置后再power_on

命令示例

ros2 service call /tl_driver/set_axis_zero_pos tl_ros2_interface/srv/SetAxisZeroPos "{axis: 1}"

全局路点管理接口

查询全局位点

功能描述 查询全局位点
通信机制 ROS2服务
参数说明 GetGlobalPos.srv
string pos_name:位点名称
返回值 true-查询成功,false-查询失败
float64[] pos_info:位点信息

命令示例

ros2 service call /tl_driver/get_global_pos tl_ros2_interface/srv/GetGlobalPos "{pos_name: 'GP0002'}"

设置全局位点

功能描述 设置全局位点
通信机制 ROS2服务
参数说明 SetGlobalPos.srv
string pos_name:位点名称
float64[] pos_info:位点信息
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_global_pos tl_ros2_interface/srv/SetGlobalPos \
'{
    pos_name: "GP0002", 
    pos_info: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 57.14, -32.93, 19.74, -89.89, -19.77, 0.0]
}'

模式与IO控制接口

设置当前运行模式

功能描述 设置当前运行模式
通信机制 ROS2服务
参数说明 SetCurrentMode.srv
int32 mode:模式序号(0-示教 1-远程 2-运行)
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_current_mode tl_ros2_interface/srv/SetCurrentMode "{mode: 2}"

设置数字输出

功能描述 设置数字输出
通信机制 ROS2服务
参数说明 SetDigitalOutput.srv
int32 port:端口号
int32 value:端口输出状态(0或1)
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/set_digital_output tl_ros2_interface/srv/SetDigitalOutput "{port: 1, value: 1}"

查询数字输入输出状态

功能描述 查看数字输入输出状态
通信机制 ROS2服务
参数说明 GetDigitalInputOutput.srv
返回值 true-查询成功,false-查询失败
int32[] input:数字输入状态
int32[] output:数字输出状态

命令示例

ros2 service call /tl_driver/get_digital_input_output tl_ros2_interface/srv/GetDigitalInputOutput "{}"

modbus通信接口

写Modbus

功能描述 Modbus数据写入
通信机制 ROS2服务
参数说明 ModbusWrite.srv
int32 master_id:主站ID
int32 addr:主站地址
int32[] data:写入数据
ModbusMasterParam.msg(Modbus主站参数)
string type:主站类型
bool start_addr:起始地址
ModbusTCPParam.msg(ModbusTCP通信参数)
string ip:IP地址
int32 port:端口号
ModbusRTUParam.msg(ModbusRTU通信参数)
int32 slave_id:从站ID
int32 port:从站端口
int32 baudrate:波特率
int32 data_bit:数据位
int32 stop_bit:停止位
string check_bit:校验位
返回值 true-写入成功,false-写入失败

命令示例

ros2 service call /tl_driver/modbus_write tl_ros2_interface/srv/ModbusWrite \
"{
    master_id: 1,
    addr: 1135,
    data: [0, 0, 0, 0, 0],
    master_param: 
    {
        type: 'RTU',
        start_addr: true,
        rtu: 
        {
            slave_id: 2,
            port: 2,
            baudrate: 115200,
            data_bit: 8,
            stop_bit: 1,
            check_bit: 'N'
        }
    }
}"

读Modbus

功能描述 Modbus数据读取
通信机制 ROS2服务
参数说明 ModbusRead.srv
int32 master_id:主站ID
int32 addr:主站地址
int32 quantity:读取数量
tl_ros2_interface/ModbusMasterParam master_param:Modbus主站参数
其它相关参数可参考写Modbus部分
返回值 true-读取成功,false-读取失败

命令示例

ros2 service call /tl_driver/modbus_read tl_ros2_interface/srv/ModbusRead \
"{
    master_id: 1,
    addr: 1135,
    quantity: 5,
    master_param: 
    {
        type: 'RTU',
        start_addr: true,
        rtu: 
        {
            slave_id: 2,
            port: 2,
            baudrate: 115200,
            data_bit: 8,
            stop_bit: 1,
            check_bit: 'N'
        }
    }
}"

队列运动接口

设置MoveJ队列运动模式

功能描述 设置MoveJ队列运动模式
通信机制 ROS2服务
参数说明 QueueMotionSetStatus.srv
bool status:队列运动模型状态开关(true-打开 false-关闭)
返回值 true-设置成功,false-设置失败

命令示例

ros2 service call /tl_driver/queue_motion_set_status tl_ros2_interface/srv/QueueMotionSetStatus "{status: true}"

MoveJ队列运动

功能描述 MoveJ队列运动
通信机制 ROS2服务
参数说明 QueueMotionMoveJ.srv
bool is_continue:是否连续运动
MoveCommand.msg(运动控制命令参数)
cmd的参数较多,此处不一一列举,相关参数请查询API函数接口
返回值 true-运动成功,false-运动失败

命令示例

ros2 service call /tl_driver/queue_motion_movej tl_ros2_interface/srv/QueueMotionMoveJ \
"{
    is_continue: false,
    cmd: 
    {
        target_pos_value: [0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0], 
        velocity: 20.0, 
        acc: 20.0, 
        dec: 20.0
    }
}"

停止MoveJ队列运动模式

功能描述 停止MoveJ队列运动模式
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-停止成功,false-停止失败

命令示例

ros2 service call /tl_driver/queue_motion_stop std_srvs/srv/Trigger "{}"

7000端口

打开关节跟踪模式

功能描述 打开关节跟踪模式
通信机制 ROS2服务
参数说明 OpenServoJ.srv
float64[] vmax:最大速度
float64[] amax:最大加速度
float64[] jmax:最大加加速度
返回值 true-打开成功,false-打开失败

命令示例

ros2 service call /tl_driver/open_servoj tl_ros2_interface/srv/OpenServoJ \
"{
    vmax: [300, 300, 300, 300, 300, 300, 300],
    amax: [3000, 3000, 3000, 3000, 3000, 3000, 3000],
    jmax: [50000, 50000, 50000, 50000, 50000, 50000, 50000]
}"
  • 注意: 该模式只能在连接端口7000后使用。在使用该功能前最好先增加机械臂运行速度,如果运行速度太小的话会出现关节不动或者关节运行较慢的情况。

关闭关节跟踪模式

功能描述 关闭关节跟踪模式
通信机制 ROS2服务
参数说明 std_srvs::srv::Trigger
返回值 true-关闭成功,false-关闭失败

命令示例

ros2 service call /tl_driver/close_servoj std_srvs/srv/Trigger "{}"

发送跟踪关节位置

功能描述 发送跟踪关节位置
通信机制 ROS2话题
参数说明 std_msgs::msg::Float64MultiArray
float64[] data:目标关节角度
返回值 无返回值

命令示例

ros2 topic pub /tl_driver/set_servoj_pos std_msgs/msg/Float64MultiArray \ 
"{
    layout: 
    {
        dim: [], 
        data_offset: 0
    }, 
    data: [0.0, 0.0, 0.0, 0.0, 0.0, 20.0, 0.0]
}"

位姿转换工具接口

四元数转欧拉角

功能描述 四元数转欧拉角
通信机制 ROS2服务
参数说明 GetPosTransform.srv
float64[] input:四元数输入(长度为4,顺序为wxyz)
返回值 true-转换成功,false-转换失败
float64[] output:欧拉角输出(长度为3)

命令示例

ros2 service call /tl_driver/get_quat2rpy tl_ros2_interface/srv/GetPosTransform \
"{
    input: [-0.080, 0.919, 0.365, 0.122]
}"

欧拉角转四元数

功能描述 欧拉角转四元数
通信机制 ROS2服务
参数说明 GetPosTransform.srv
float64[] input:欧拉角输入(长度为3)
返回值 true-转换成功,false-转换失败
float64[] output:四元数输出(长度为4)

命令示例

ros2 service call /tl_driver/get_rpy2quat tl_ros2_interface/srv/GetPosTransform \
"{
    input: [-2.9, 0.167, -0.777]
}"

欧拉角转旋转矩阵

功能描述 欧拉角转旋转矩阵
通信机制 ROS2服务
参数说明 GetPosTransform.srv
float64[] input:欧拉角输入(长度为3)
返回值 true-转换成功,false-转换失败
float64[] output:旋转矩阵输出(长度为9)

命令示例

ros2 service call /tl_driver/get_rpy2r tl_ros2_interface/srv/GetPosTransform \
"{
    input: [-2.9, 0.167, -0.777]
}"

位姿转旋转矩阵

功能描述 位姿转旋转矩阵
通信机制 ROS2服务
参数说明 GetPosTransform.srv
float64[] input:位姿输入(长度为16)
返回值 true-转换成功,false-转换失败
float64[] output:旋转矩阵输出(长度为9)

命令示例

ros2 service call /tl_driver/get_tr2r tl_ros2_interface/srv/GetPosTransform \
"{
    input: [0.703, 0.691, 0.166, 0.000, 0.652, -0.720, 0.236, 0.000, 0.283, -0.057, -0.957, 0.000, 0.000, 0.000, 0.000, 1.000]
}"

旋转矩阵转位姿

功能描述 旋转矩阵转位姿
通信机制 ROS2服务
参数说明 GetPosTransform.srv
float64[] input:旋转矩阵输入(长度为9)
返回值 true-转换成功,false-转换失败
float64[] output:位姿输出(长度为16)

命令示例

ros2 service call /tl_driver/get_r2tr tl_ros2_interface/srv/GetPosTransform \
"{
    input: [0.703, 0.691, 0.166, 0.652, -0.720, 0.236, 0.283, -0.057, -0.957]
}"