主题
末端位姿与轨迹规划
只计算轨迹
python
from libark.robot.hw1.arm import Arm
with Arm("left") as arm:
arm.enable()
current = arm.get_end_pose()
target = current.model_copy(update={"z_m": current.z_m + 0.005})
plan = arm.plan_to_pose(target, speed_percent=20) # 只规划,不移动
print(plan.duration_s, len(plan.points))get_end_pose() 返回简单 CartesianPose,具体坐标系和单位见SDK API。plan_to_pose(pose, speed_percent=30) 返回 ArmTrajectory,points 是不可变轨迹点序列;每点含 time_s(从零开始,严格递增)和七维 joint_angles_rad。duration_s 为只读持续时间属性;这些模型可用 model_dump() / model_dump_json() 导出。move_to_pose() 会基于执行前反馈重新规划,不直接执行此前返回的记录。
双臂纯规划使用 dual_arm.plan_to_pose(left_pose, right_pose, speed_percent=30),返回 DualArmTrajectory(left, right);左右轨迹共享持续时间,duration_s 为共同时间。规划与执行不包含全身协调或碰撞避免。
使用默认运动学与轨迹参数即可。规划失败时本次轨迹不发送;保留错误信息联系支持,不通过反复扩大目标绕过失败。后台任务的等待、取消和到位条件见SDK API。Python 周期调度不保证硬实时,状态快照不能用于确认电机反馈是否持续更新。
运动路径的区别见 笛卡尔运动。