
- #Dog simulator videos how to#
- #Dog simulator videos manual#
- #Dog simulator videos code#
Group the parts that belong to the same link into a single stl.
#Dog simulator videos how to#
How to manually create a new URDF for updated versions : The mirrored version of the leg have been done manually and is not faithful to the original cad which is not mirrored.Self collision between two connected links will be constrained by using "revolute" joints instead of "continuous" one with proper angle limit.
The model currently work with self_collisions, but if I had the rings of the body it is self colliding when it shouldn't, probably some pybullet optimization to the convex hull make it self collide. The ball screw mecanism has not been implemented as a simplification instead we control the joint angle. The masses and inertial matrices are not correct. #Dog simulator videos manual#
Due to the manual import and joint positionning it's not accurate for the moment.
STL files are derivatives of GPL V3 so inherit. Do the training and real world testing :). More custom environments and objectives. Joint positions (and joint velocities) and Orientation of the base are inputs. Continuous actions control the absolute joint position directly. Simulation is stopped if base is inclined too much, or base altitude go too low. EnvOpenDogForwardSimple : Reward at each timestep based on the x axis forward distance during the step. Continuous action to control the relative joint position (which make it a lot harder to run :) ) (Hard to learn without Hindsight Experience Replay). EnvOpenDogForward : Reward at the end only, fully deterministic, goal is to reach the further in the x direction, simulation is stopped if base is inclined too much, or base altitude go too low. EnvOpenDogStand : Reward at the end only, fully deterministic, goal is to reach a specific base altitude after 3 second. If it numerically diverge when run for a long time, you probably need to add weight decay (can't find the corresponding documentation in tensorforce), or scale down the inputs, or schedule reduce the optimizer step size. (If you get hit by this tensorforce issue : tensorforce/tensorforce#391 then use CPU instead of GPU). #Dog simulator videos code#
Training with PPO using : trainEnvWithPPO.py (Edit the file to show/hide the GUI, and enable CPU/GPU) Code currently running and showing some good will. Training with CMA-ES the "openai Gym" environment whose goal is to have the center of mass of the body at a specific height after 3s : trainEnvWithES.py (Currently running on a single core and solving the stand task in ~15 minutes and show good will for the forward task) (Edit the file to show/hide the GUI, and enable CPU/GPU) Progress is saved, so you can run it fast without the GUI, then run with the GUI to see the result. Random agent on "openai Gym" environment : RunGymEnv.py. For reinforcement learning you will need openai gym, tensorflow and pycma (for ES), tensorforce (for PPO). Then you can play and try make the robot walk.
Randomize various constants (like gravity, inertia matrices.,time jitter) to make it robust so we can transfer it to the real world robot.įor the reinforcement learning, currently using es code a little modified from. Develop custom policy model then solve it using either a variant of Evolution Strategies (currently implemented as it is easier), or PPO. The general architecture will be pretty classic in the line of : See what computing power we really need. Hopefully we will be able to learn some controller for smooth movement. We will try to simulate to see if it'll be able to get up on his own. Teach opendog various task from high level objectives.