主题
第一次连接
设备由交付人员完成配置。客户代码使用默认构造即可。升降机构应在可靠支撑的机械最低位置启动,上行路径无阻碍。 连接后先检查位置反馈,运动前显式调用 enable();已使能的升降连接后保持当前位置,位置异常时先联系技术支持。
连接整机或组件
同时使用多个组件时创建一个 HW1(),通过它访问组件,不再独立创建重复控制对象。每台设备同一时刻只运行一个控制程序,运行示例前退出其他控制应用。
python
from libark.robot.hw1 import HW1
with HW1() as robot:
print(robot.connected)
print(robot.dual_arm.left.get_state().pos)
print(robot.dual_arm.right.get_state().pos)
print(robot.chassis.get_state().pose)
print(robot.lift.get_height())
print(robot.power.get_state())只使用一个组件时,可选择以下任一入口,分别运行:
python
from libark.robot.hw1.arm import Arm, DualArm
from libark.robot.hw1.chassis import Chassis
from libark.robot.hw1.lift import Lift
from libark.robot.hw1.power import Power
from libark.robot.hw1.remote import RemoteControl
arm = Arm("left") # 或 Arm("right")
dual_arm = DualArm()
chassis = Chassis()
lift = Lift()
power = Power()
remote = RemoteControl()构造对象不连接、不使能。推荐 with Arm("left") as arm: 等形式;进入时 connect(),正常退出或代码异常时先停止再清理连接,不自动失能。需要失能时在退出前调用 disable()。退出后重新使用请创建新对象。
Power 只读取电量、电压和报警,没有使能、停止或急停方法。完整 HW1 会把 Power 作为 必需组件,首次读取失败时整机连接失败;运行中读取失败会在状态中报告,不会自动触发运动停止。 RemoteControl 只读取归一化遥控输入,不直接控制运动;当前需独立创建,不属于 HW1()。
第一次运动
使能、检查状态,再调用高层位置运动;SDK 内部完成周期发送。完整脚本见 单关节示例。
python
from libark.robot.hw1.arm import Arm
with Arm("left") as arm:
arm.enable()
state = arm.get_state()
if not state.ok:
raise RuntimeError("反馈不完整,请联系技术支持")
target = list(state.q7)
target[2] += 0.02 # j3,单位 rad
arm.move_joints(target, speed_percent=20)move_joints() 默认等待反馈满足到位条件并返回 True;末端、升降与底盘位置运动同样在成功后返回 True。夹爪闭合也可能在满足接触条件时成功返回,实际开口可能大于目标,详见SDK API。blocking=False 返回支持等待和取消的任务。七关节与夹爪可以同时运动。MIT 周期控制另见进阶控制。
整机 enable() 会使能全部运动组件。仅需控制单个组件时调用它的 enable(),例如 robot.dual_arm.left.enable()。连接、使能或清理失败会抛异常,整机操作可能汇总为 ExceptionGroup;保留完整错误信息联系技术支持。