- 选型指南
- 概述
- 入门指南
- 机械臂参数
- 示教器使用
-
二次开发
-
API(C++)
- 快速开始
- 接口说明
- 7000端口接口说明
- 使用示例
- 返回值说明
-
API(Python)
- 快速开始
- 接口说明
- 7000端口接口说明
- 使用示例
- 返回值说明
- ROS2开发
-
API(C++)
- 相关下载
实时运动控制接口
头文件:include/tl_interface.h
1. robot_movej - 关节空间运动到目标位姿
方法:robot_movej(SOCKETFD socketFd,MoveCmd moveCmd);
功能描述:立即下发关节角度数据,驱动机械臂实时运动到目标位置(在线点对点控制)。不依赖作业文件(该功能需要在示教模式下使用)。
参数:
- socketFd:已连接的句柄。
- moveCmd:运动指令结构体,包含目标位置和运动参数。
- targetPosValue 点位数组,n个轴就赋值前n位数组,其余置0。
- vel 速度,参数范围:0<vel≤100 单位 %。
- coord 坐标系,参数范围:0≤coord≤3。
- acc 加速度,参数范围:0<acc≤100。
- dec 减速度,参数范围:0<dec≤100。
- isSync 是否同步模式 true同步 false不同步。
返回值:
- 0:成功
- 非 0:失败
使用示例:注意使用时要先上电
Python
# ---- MoveJ运动控制 ----
print("[INFO]**********MoveJ运动控制**********")
cmd = MoveCmd()
cmd.targetPosType = PosType_PType
cmd.targetPosName = ""
cmd.coord = 0 # 关节坐标系
cmd.velocity = 40 # 关节速度百分比 (1,100]
cmd.acc = 10
cmd.dec = 10
cmd.pl = 0 # 平滑参数 [0,5]
cmd.targetPosValue = VectorDouble([
20.0, 10.0, -10.0,
0.0, 0.0, 0.0, 0.0]) # 关节坐标下单位为度
ret = robot_movej(socket_fd, cmd)
if ret != SUCCESS:
print("[ERROR] MoveJ运动控制失败,程序退出!")
return -1
# 等待运动到位
wait_motion_done(socket_fd, 30)
print("[INFO] MoveJ运动控制成功")
2. robot_movel - 笛卡尔空间直线运动到目标位姿
方法:robot_movel(SOCKETFD socketFd, MoveCmd moveCmd);
功能描述:在笛卡尔空间中,控制机械臂从当前位姿沿直线运动至目标位姿。(该功能需要在示教模式下使用)。
参数:
- socketFd:已连接的句柄(机器人连接成功后返回的 ID)。
- move_cmd:运动指令结构体,包含笛卡尔目标位姿及运动参数。
- coord = 1(直角坐标系)。
- targetPosValue 7维:X(mm),Y(mm),Z(mm),RX(rad),RY(rad),RZ(rad),0X(mm),Y(mm),Z(mm),RX(rad),RY(rad),RZ(rad),0。
- vel 速度,参数范围:0<vel≤100 单位 %。
- coord 坐标系,参数范围:0≤coord≤3。
- acc 加速度,参数范围:0<acc≤100。
- dec 减速度,参数范围:0<dec≤100。
返回值:
- 0:成功
- 非 0:失败
使用示例:注意使用时要先上电
Python
# ---- MoveL运动控制 ----
print("[INFO] **********MoveL运动控制**********")
cmd.targetPosName = ""
cmd.coord = 1 # 直角坐标系
cmd.targetPosValue = VectorDouble([
280, 90.0, 270,
3.14, 0.0, 0.0]) # 直角坐标下位移单位是mm,旋转单位是弧度
ret = robot_movel(socket_fd, cmd)
if ret != SUCCESS:
print("[ERROR] MoveL运动控制失败,程序退出!")
return -1
# 等待运动到位
wait_motion_done(socket_fd, 30)
print("[INFO] MoveL运动控制成功")
3. robot_go_home - 机器人回原点(home)
方法:robot_go_home(socketFd);
功能描述:回到设定的零点。
参数:
- socketFd:已连接的句柄。
返回值:
- 0:成功
- 非 0:失败
使用示例:
Python
import tl_interface as tl
socket_fd = tl.connect_robot("192.168.1.13", "6001")
ret = tl.robot_go_home(socket_fd)
if ret == 0:
print("机器人已回原点")
4. robot_go_to_reset_position - 机器人回到复位位置
方法:robot_go_to_reset_position(socketFd);
功能描述:回到控制器预设的复位点(若控制器未配置复位点,接口可能返回错误码)。
参数:
- socketFd:已连接的句柄。
返回值:
- 0:成功
- 非 0:失败
使用示例:
Python
import tl_interface as tl
socket_fd = tl.connect_robot("192.168.1.13", "6001")
ret = tl.robot_go_to_reset_position(socket_fd)
