DeepMimic
DeepMimic copied to clipboard
Some questions about the character files
@xbpeng Hi
I wonder what the numbers from "LimLow0" to "TorqueLim" in "Joints" mean. And then, I also wonder what the numbers from "Param0" to "Param2" in "BodyDefs" mean.
Is "AttachX" the initial value of x axis?
Is "AttachThetaX" the initia roll value?
Thanks in advance.
Yes that's right, AttachX is the body's position relative to the joint, and AttachThetaX is the orientation of the body also wrt to the joint. Param0-2 are used to specify the size of the shape. For a box, Param0-2 corresponds to the size of the box along the x, y, and z axis. Similarly LimLow and LimHigh are used to specify the joint limits. But for spherical joints, joint limits are not implemented, so they are not really used. LimLow0 and LimHigh0 can be used to specify joint limits for revolute joints.
Yes that's right, AttachX is the body's position relative to the joint, and AttachThetaX is the orientation of the body also wrt to the joint. Param0-2 are used to specify the size of the shape. For a box, Param0-2 corresponds to the size of the box along the x, y, and z axis. Similarly LimLow and LimHigh are used to specify the joint limits. But for spherical joints, joint limits are not implemented, so they are not really used. LimLow0 and LimHigh0 can be used to specify joint limits for revolute joints.
@xbpeng Hi, thanks for your patience. Excuse me, there are some questions I ask you:
- How can I change the ground height or root coordinate in character files? I try to adjust the root coordinate in the text files but it can't be changed
- What else I need add to character files when building the atlas manually except for the content in humanoid3d.txt?
Thanks in advance.
You can't adjust the root height in the character file. The position of the root is determined by the simulation and is not a fixed property of the character's body. You need to set that in the simulation using cSimCharacter::SetPos().
If you want to build an atlas model, then modifying the character file should be enough. If you want better rendering you might need to add meshes to the rendering code. But this shouldn't effect the dynamics of the simulation.
You can't adjust the root height in the character file. The position of the root is determined by the simulation and is not a fixed property of the character's body. You need to set that in the simulation using cSimCharacter::SetPos().
If you want to build an atlas model, then modifying the character file should be enough. If you want better rendering you might need to add meshes to the rendering code. But this shouldn't effect the dynamics of the simulation.
OK. Thanks for your patient replies! Thank you very much! I will try the solutions.
@xbpeng Hi!
Excuse me that I want to ask you some questions as followed :
- I revise the humanoid3d.txt but it floats in the air. Can the dynamics of the simulation be normal when I adjust the ground height util the foot of model can touch the ground? When I run the humanoid's policies in this model without training, the model will shake and not finish the whole motion.
- How can I change the num_agents shown as the picture? I want to integrate a more diverse corpus of skills and try to add one more line of agent_files in the humanoid3d.txt but it does't work.
- What does the function and PhaseSize mean? It is about the input state data.
- What does the plus one mean? It is also about the input state data.
Thank a lot in advance!
-
If you change the character, then the policies trained for the old character will not work. You will need to retrain policies for the new character. For the character floating in the air, shouldn't physics bring the character back onto the ground? If you change the character's morphology then the reference motions will likely also need to be adjusted. You can change the root position of the reference motion in each frame to lower the root height back onto the ground. The format for the reference motion is in the README.
-
Using multiple agents it not really supported in the code. It will require a lot of changes to incorporate that support, so I probably can't go over all the details involved there.
-
Phase refers to the phase variable that is provided as input to the policy. The phase size will just be 1 if the phase variable is enabled, and 0 if it is disabled.
-
+1 is for the root height in the input state features.
@xbpeng Hi!
-
I have tried to use cSimCharacter::SetPos() to set the root height and bring the character onto the ground, but setting [0, -10, 0, 0] is ineffective while setting [0, 10, 0, 0] can bring the character higher. The character still floats.
-
Why need to use the phase variable and +1 for root height in the input state features?
@xbpeng
Hi, Jason. I got correct result once I change the root position of the reference motion in each frame.
Thanks a lot. Thanks for your patient replies.