Week 5 作业记录:Linux 目录操作、PyBullet 与机械臂运动学
1. 学习目标
- 熟悉 Linux 基础目录操作和命令行工作流。
- 使用 PyBullet 搭建机械臂仿真环境。
- 理解机械臂的关节空间、笛卡尔空间、正运动学和逆运动学。
- 控制 Franka Panda 机械臂画圆和画直线。
2. 实验文件
robot_sim.py:交互式机械臂控制,包含 IK 与关节控制模式。robot_sim2.py:自动绘制圆形与直线轨迹。
3. Linux 操作记录
常用命令:
pwd
ls
cd week5
python3 robot_sim.py
python3 robot_sim2.py
这些命令用于定位目录、查看文件和运行课程实验代码。
4. 运动学实验设计
4.1 关节空间控制
关节空间控制直接设置每个关节角度,例如 J0 到 J6。这种方式容易理解单个关节的影响,但末端执行器轨迹不一定是直线。
4.2 笛卡尔空间控制与 IK
笛卡尔空间控制直接给定末端执行器目标位置 [x, y, z],再通过逆运动学计算关节角度:
joint_poses = p.calculateInverseKinematics(
pandaId,
11,
[tx, ty, tz],
p.getQuaternionFromEuler([math.pi, 0, 0])
)
4.3 轨迹绘制
robot_sim2.py 中将圆形轨迹拆成多个采样点,并持续调用 IK 计算每个点对应的关节角度。直线轨迹则通过关节角度插值完成。
5. 实验结果

6. 核心理解
- 正运动学:已知关节角度,计算末端位置。
- 逆运动学:已知末端目标位置,反求关节角度。
- 机械臂轨迹控制需要考虑关节限位、末端姿态和插值平滑性。
- PyBullet 可以快速验证机器人运动学程序,减少真实硬件调试风险。
7. 问题与解决
- IK 结果不稳定时,需要加入关节上下限、
restPoses和迭代次数限制。 - 轨迹不平滑时,可以增加采样点数量或降低每步移动距离。
8. 本周总结
本周从 Linux 操作进入机械臂仿真,完成了关节空间和笛卡尔空间两种控制方式的对比,并通过画圆、画直线理解了机器人运动学。