Comments (5)
Your motivation, as stated, does not make sense.
I'd like to calculate the velocity of the joints given the velocity of the "torso".
This is clearly impossible, the velocity of the torso does not uniquely determine the velocity of all the joints. Try clarifying what you want and we might be able to help.
from mujoco.
Thank you for your answer.
Yes, you are right I was wrong to indicate the joint name, I meant "root" and not "torso". As far as I know, when we talk about redundant systems, the assignment is not unique, and a given velocity in the Cartesian corresponds to an infinite number of joint configurations. However, if we consider, for instance, a manipulator where we have the Cartesian velocity of the end-effector, it is possible, using the inverse Jacobian, to also trace the velocities relative to the joints. I'm therefore wondering if it is possible in the halfcheetah contest to do something similar: given a velocity at 'root', calculate the relative velocities at the joints. It's currently unclear to me how to calculate the Jacobian correctly. In tests run with the code posted above, I actually run the inverse of the Jacobian multiplied by a velocity in the Cartesian at the "root," and I correctly get back the first three components, which in the documentation should correspond to X, Z sliding velocities and rate of rotation on Y of the "root", while the other velocities at the joints are zero. How can I correctly calculate the complete Jacobian to find the velocities at all joints? In mujoco's documentation, the function mj_jac requires specifying a "const mjtNum point[3]" and an "int body", but I don't understand how to compute the complete Jacobian for all joints.
Thanks again for your help
from mujoco.
if we consider, for instance, a manipulator where we have the Cartesian velocity of the end-effector, it is possible, using the inverse Jacobian, to also trace the velocities relative to the joints.
Yes, because the velocity of the end effector is a function of the joint velocities, if there is a smooth function, it has partial derivatives, the Jacobian exists.
I'm therefore wondering if it is possible in the halfcheetah contest to do something similar: given a velocity at 'root', calculate the relative velocities at the joints.
No, it is not possible. The root velocity is not a function of the joint velocities, but rather the other way around. The equivalent to the arm scenario is the Jacobian of the halfcheetah's foot w.r.t all joints, including the root. I understand that this would be nice to have, but it is not possible, as stated.
The only thing that would conceivably work is to use a data-based approach: measure lots of data of the moving cheetah and try to fit a non-parametric function to the data that attempts to predict what you want. This may or may not work well, depending on your dataset and ML proficiency. YMMV, good luck.
from mujoco.
@yuvaltassa What if we assume a no-slip condition with the foot/feet in contact with the ground? Would then the end effector Jacobians be related to the CoM motion Jacobian (-1 times)?
from mujoco.
@Balint-H, yes and no, the clue is in your own question. One could assume a no-slip condition with a foot, in which case you have a simple kinematic chain, but you have to pick a foot. If there are
from mujoco.
Related Issues (20)
- [<Actuator>] Custom Control Range Mapping for Actuators in MJCF XML HOT 2
- MuJoCo ROS Integration - segmentation faults in model instance (from version 3.1.1 -> ^3.1.2) HOT 1
- Camera Rendering Incomplete After Modifying znear and zfar
- D4RL mujoco datasets compatibility between versions HOT 1
- MuJoCo cup model penetrating floor/table HOT 3
- Issues with Point Cloud Visibility in Camera's Field of View Using MuJoCo
- Document MJX "broadphase" fields
- Simulating tension only cables with variable lengths
- Disabling contact rendering for Touch Sensor Grid plugin HOT 1
- Human musculoskeletal motion simulation using mujoco HOT 1
- Build from Source incl. Python Bindings HOT 1
- unity 'mujoco.elasticity.cable' error HOT 2
- `mj_copyData` not copying contact details? HOT 3
- Getting contact information and z-position from external rendering software HOT 2
- Changing the geom mass fails to affect simulation properties? HOT 2
- How to set free joint in keyframe
- Saving the xml with updates after mj_step
- Transforming contact forces from the contact frame to the local frame of a geom involved in said contact/collision?
- differentiable physics tutorial missing module brax
- Error: engine error: edge ordering is incoherent between flex and plugin / mujoco.elasticity.solid
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mujoco.