环境配置与测试¶
本页用于说明开发所需依赖、工具链和测试说明。
环境配置¶
工作站采用的环境是Ubuntu22.04,IsaacSim 5.0.0, IsaacLab 2.2.0。
主板的环境是Orin AGX Ubuntu22.04,因为不依赖ROS2等,所以主板环境并不受限制,可以换其他主板或者其他版本Ubuntu系统。
测试工具¶
每一个代码仓库里都有测试代码,比如deploy的仓库里有很多测试代码,都是为Sim2Real服务的。
deploy 仓库里常用的测试、验证和分析脚本主要在 scripts 目录:
真机电机与姿态检查¶
- scripts/mos9_motor_connectivity_init_test.py:用于只初始化 encos-driver 并读取一次全部电机状态,快速检查电机数量、通信链路和基础反馈是否正常。
- scripts/test_all_motors.py:用于在真实硬件上回放参考关节轨迹并记录位置、速度和力矩数据,验证整机多电机联调效果并输出测试图表。
- scripts/test_single_motor.py:用于初始化单电机测试环境并预留单电机位置指令实验入口,便于后续做单关节连线与控制调试。
- scripts/mos9_all_zero_slow.py:用于以较小增益和缓慢轨迹把全部电机回到零位,方便整机上电后的安全复位。
- scripts/mos9_init_pose.py:用于把机器人缓慢移动到站立初始姿态,作为部署或测试前的统一准备动作。
- scripts/mos9_set_zero_by_joint.py:用于按关节名单独设置编码器零位,便于装配后校零和单关节误差修正。
Sim2Real 与策略回放¶
- scripts/mos9_sim2real_bridge.py:用于把 MuJoCo 轨迹命令转发到真机并记录真机与仿真差异,是基础的 Sim2Real 回放桥接脚本。
- scripts/mos9_sim2real_bridge_with_imu.py:用于在 Sim2Real 轨迹回放时同步记录和滤波 IMU 数据,便于联合分析关节响应与机身姿态。
- scripts/mos9_amp_deploy.py:用于在真机上闭环部署 AMP 的 ONNX 策略,并结合 IMU 反馈进行整机控制测试。
- scripts/mos9_mimic_deploy.py:用于在真机上闭环部署 Mimic 的 ONNX 策略,并记录部署过程中的策略输入输出与电机数据。
- scripts/mos9_amp_sim2sim_mujoco.py:用于在 MuJoCo 中回放 AMP 策略并测试不同速度指令下的仿真行为,是上真机前的 sim2sim 验证脚本。
- scripts/mos9_hanging_action_replay_mujoco.py:用于在 MuJoCo 吊挂场景中直接回放离线动作序列,检查动作数据本身是否稳定可执行。
- scripts/mos9_hanging_joint_test_mujoco.py:用于在 MuJoCo 吊挂场景中不经过策略、直接测试关节 PD 控制和参考轨迹跟踪效果。
- scripts/mos9_hanging_policy_test_mujoco.py:用于在 MuJoCo 吊挂场景中运行 ONNX 策略,检查策略在受限条件下的输出稳定性和可执行性。
IMU 与观测分析¶
- scripts/imu_real_only_plot.py:用于从 IPC 读取真机 IMU 数据并对不同截止频率的滤波结果作图,比较姿态与角速度信号质量。
- scripts/imu_sim.py:用于在 MuJoCo 中模拟 IMU 姿态对齐过程,验证坐标系、四元数和角速度变换是否正确。
- scripts/imu_sim_with_real.py:用于把真机 IPC 的 IMU 数据接入 MuJoCo 对比仿真 IMU,检查实际传感器与仿真模型的一致性。
- scripts/analyze_action_imu_correlation.py:用于分析策略动作与 IMU 欧拉角、角速度之间的相关性,定位动作和机身姿态耦合关系。
- scripts/analyze_action_jump_obs_contrib.py:用于分析策略动作突变时哪些观测维度贡献最大,帮助排查观测设计或传感器噪声问题。
电机系统辨识与日志处理¶
- scripts/estimate_motor_delay.py:用于从部署日志中估计电机响应延迟,帮助标定控制回路中的时延参数。
- scripts/identify_kp_kd_from_npz.py:用于从 Sim2Real 或部署日志里拟合各关节的 kp 和 kd,评估真机电机控制器与仿真参数的一致性。
- scripts/sysid_chirp.py:用于给单电机生成线性扫频激励的系统辨识测试入口,便于采集频响数据做控制参数辨识。
- scripts/mos9_fk_npz.py:用于在 Isaac Sim 中回放动作 npz 并导出仿真状态日志,验证动作数据和模型运动学是否匹配。
- scripts/replay_mos9_fk_motion.py:用于在 Isaac Sim 中可视化回放 FK 动作 npz,快速人工检查动作序列是否合理。