"""PD control of a simple pendulum — modern MuJoCo example.""" import numpy as np import mujoco import mujoco.viewer XML = """ """ def main(): model = mujoco.MjModel.from_xml_string(XML) data = mujoco.MjData(model) # PD gains kp, kd = 50.0, 10.0 target_angle = np.pi / 4 # 45 degrees with mujoco.viewer.launch_passive(model, data) as viewer: while viewer.is_running() and data.time < 10.0: # PD controller angle = data.qpos[0] velocity = data.qvel[0] data.ctrl[0] = kp * (target_angle - angle) - kd * velocity mujoco.mj_step(model, data) viewer.sync() if __name__ == "__main__": main()