# 目录导航
pwd # 当前路径
ls -la # 详细信息列表
cd /path/to/dir # 切换目录
cd .. # 返回上级
cd ~ # 返回家目录
# 文件管理
touch file.txt # 创建空文件
nano file.txt # 终端文本编辑器
cat file.txt # 查看文件内容
# 权限管理
chmod +x script.py # 添加可执行权限
sudo <command> # 以管理员身份执行
机器人控制涉及两个核心空间概念:
用各关节的角度(或位移)描述机器人状态:
θ = [θ₁, θ₂, θ₃, θ₄, θ₅, θ₆] (6自由度机械臂)
用末端执行器的位置和姿态描述:
P = [x, y, z, roll, pitch, yaw]
💡 实际工程中:轨迹规划通常在笛卡尔空间设计(如画直线),然后通过逆运动学转换为关节角度指令,发送给电机。
已知:各关节角度 θ₁…θₙ 求:末端执行器的笛卡尔位置 (x, y, z) 和姿态
FK: θ → (x, y, z, roll, pitch, yaw)
FK 计算是确定的——给定关节角度,末端位置唯一确定。通过 DH 参数法或乘积指数公式递推计算。
已知:期望的末端位置 (x, y, z) 和姿态 求:各关节角度 θ₁…θₙ
IK: (x, y, z, roll, pitch, yaw) → θ
IK 计算是非线性的——
指挥 Panda 机械臂末端画圆——机械臂末端沿圆形轨迹运动。
# 伪代码:笛卡尔空间画圆 → IK 求解 → 关节控制
import numpy as np
radius = 0.1 # 圆半径 (m)
center = [0.5, 0.0, 0.4] # 圆心在机械臂前方
for angle in np.linspace(0, 2*np.pi, 100):
# 1. 笛卡尔空间:计算圆周上的目标点
x = center[0] + radius * np.cos(angle)
y = center[1] + radius * np.sin(angle)
z = center[2]
# 2. 逆运动学:转换为关节角度
joint_angles = inverse_kinematics(x, y, z)
# 3. 发送关节指令
robot.set_joint_positions(joint_angles)
⚠️ 画正圆比较困难,因为 IK 求解在极端位置可能不收敛。建议先用椭圆或八边形近似。

| 问题 | 原因 | 解决方案 |
|---|---|---|
| 机械臂画不出正圆 | IK 解在圆周某些点不连续 | 增加轨迹点数,降低速度,或者画多边形近似 |
| 机械臂抖动 | 关节速度指令不平滑 | 对关节角度序列做插值/平滑滤波 |
| 末端达不到目标位置 | 目标超出工作空间 | 缩小圆半径或调整圆心位置 |
| IK 求解器报错 | 初始猜测角度不合适 | 使用当前关节角度作为 IK 求解的初始值 (seed) |
本周从理论到实践完整覆盖了机器人运动学的核心内容:
这些知识是后续四足机器人步态规划和仿真控制的理论基础。