mujoco_traffic_light_stop
MuJoCo 写的红绿灯小车,红灯停绿灯行,黄灯慢下来。
环境
- Ubuntu 20.04
- Python 3.8
- MuJoCo 2.3.7
- NumPy
依赖
pip install mujoco==2.3.7 numpy
实现思路
场景搭建
场景在scene.xml中定义: - 地面:12m×6m平面,摩擦系数1.2 - 红绿灯杆:位于x=3m处,垂直排列红黄绿三个球形指示灯 - 小车:位于x=-6m处,单自由度沿x轴滑动,带阻尼0.8,质量1.2kg - 执行器:1个直线电机驱动小车,gear=1.0
控制逻辑
- 信号灯按固定周期循环:红灯8秒→黄灯2秒→绿灯5秒,总周期15秒
- 距离停止线2米开始判断灯色:
- 绿灯:施加0.6N正推力正常行驶
- 黄灯:施加0.3N正推力,比正常推力小,缓慢行驶
- 红灯:施加-2.0N刹车力,直到小车速度接近0后锁死
- 同步修改三个指示灯的rgba颜色,未点亮的灯调暗到0.25倍亮度,直观显示当前灯色
运行
cd src/ground/mujoco_traffic_light_stop
python3 main.py
预期现象
- 红绿灯循环:红灯8s → 黄灯2s → 绿灯5s
- 小车从x=-6位置开始向右行驶
- 到达停止线前:
- 红灯:小车稳稳刹车停住,不会冲过停止线
- 黄灯:小车缓慢行驶
- 绿灯:小车继续向右行驶
已知限制
- 小车只有前后直线运动,没有转向
- 红绿灯是固定时间循环,没有车流量检测
- 没有相机和传感器,是直接读qpos位置
效果


声明
本项目使用了AI辅助编写代码和文档,作者对全部内容负责。