Installation : RAISIM [link] + (linux)
- Move to
YOUR_PATH/raisimLib/raisimGymTorch/raisimGymTorch/
- Clone the repository in
YOUR_PATH/raisimLib/raisimGymTorch/raisimGymTorch/
- Move [hexapod] directory to
YOUR_PATH/raisimLib/rsc/
- Set up environment
cd YOUR_PATH/raisimLib/raisimGymTorch/
python setup.py develop
- Train/Test
cd YOUR_PATH/raisimLib/raisimGymTorch/env/envs/hexapod_command_locomotion
(Training) python runner.py
(Test) python tester.py -w [model_PATH]
- (optional) Deployment
cd YOUR_PATH/raisimLib/raisimGymTorch/env/envs/hexapod_command_locomotion
python deploy.py -w [model_PATH]
Robot Hardware : PhantomX-MK3 [INFO]
Communication : Dynamixel SDK(#18 of AX-12A) & PC by U2D2 [INFO]
Solidworks to URDF : All links and joints are manually reverse engineered using assembly file from GRABCAD [link]
ASSUMTION 1 : The main cause of the Sim-to-Real gap is the inaccuracy of motor modeling and the latency of the timestep. [Related Paper]
ASSUMTION 2 : By matching the time step of the simulation and the actual robot equally at 0.05 seconds, it can be assumed that the Sim-to-Real gap is caused only by the inaccuracy of motor modeling.
Setting : With the main body of the robot is fixed, the same action sequence is applied to the simulation and the actual robot.
RL algorithm : PPO
State : Current Joint position(18) + Action history(18*3) + Command(3)
Command : One hot vector (100 : go-straight , 010 : turn left , 001 : turn right)
Action : Joint position(18)
- Joint position is continuous (−150 ≤ 𝜃 ≤ 150) degree considering AX-12A motor spec sheet [INFO]
Video : YOUTUBE link
You can watch video through the link above!