-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Question regarding orientation as observation #12
Comments
@Danfoa Hi Daniel, I would like to follow up on this question and very appreciate your help! |
Hi @supersglzc, Apologies for the late response. The main issue with the orientation configuration is that it evolves in the Lie group In practice, this means that the elements of See, for instance, the example code here: MorphoSymm/morpho_symm/robot_symmetry_visualization.py Lines 106 to 116 in b84c19c
(PS: Run this script with your robot, it should directly verify if the euler rep for your robot is appropiatedly defined) Hence, the main issue you face is that to include the orientation information in the input of a neural network (NN), you typically need a "flat" representation of the orientation. This is not only a requirement of most NNs but also necessary because The way I see it, you have two options:
The representation where flattening is done by stacking the column vectors This flat vector transforms according to the provided representation See how this representation is defined here. If you use the Let me know if this helps :) |
Hi Daneil @Danfoa,
First of all thank you for the amazing work! I am trying to build an equivariant policy. I have to include the orientation information in the observation space. I did this by first converting the object orientation from quaternion to euler angles and specify this part of observation as
rep_euler_xyz = G.representations['euler_xyz']
in_field_type = FieldType(gspace, [..., rep_euler_xyz, ...])]
.However, after training the policy, it cannot work as expected. If I remove the orientation in my observation space, but only left with object positions and joint positions/velocities, everything works fine.
I am using C2 group for simple reflection about the y-axis plane. Is the problem could be my euler angles are in radian or I have to use G.representations['SO3_flat'] and convert the quaternion to a rotation matrix?
Thanks,
Steven
The text was updated successfully, but these errors were encountered: