We want a simulation environment to test our policies with.
You will note this is not an empty repository. Feel free to take some inspiration from it, but it is very nonfunctional.
This simulation environment will need to validate against some kind of metadata (for now treat as a json) for:
- policy frequency (e.g. 50Hz)
- Real joint ID to neural network ordering (e.g. map motor id 1 to neural network index 2)
- This will include how many joints there are
Then we need defined input getters e.g.:
- get_joint_positions()
- get_joint_velocities()
- get_gyroscope()
- etc...
This will pull the requisite data from mjData or whatever it is
And we need defined output setters:
- send_joint_position_commands()
This will send the torque ctrl to the motors in simulation via mjData
We will need to also model the PD feedback loop on the Unitree motors inside our simulation evaluation
Other simulation setters:
- being able to configure joint parameters e.g.
- set_pd(joint_id)
- set_joint_limits(joint_id)
Finally, we also need user input to control the robot via simulation.
Down the line, we will want to also track metrics like robot velocities and compare it to command velocities.
We want a simulation environment to test our policies with.
You will note this is not an empty repository. Feel free to take some inspiration from it, but it is very nonfunctional.
This simulation environment will need to validate against some kind of metadata (for now treat as a json) for:
Then we need defined input getters e.g.:
This will pull the requisite data from
mjDataor whatever it isAnd we need defined output setters:
This will send the torque
ctrlto the motors in simulation viamjDataWe will need to also model the PD feedback loop on the Unitree motors inside our simulation evaluation
Other simulation setters:
Finally, we also need user input to control the robot via simulation.
Down the line, we will want to also track metrics like robot velocities and compare it to command velocities.