Skip to content
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

urdfからwrlへの変換で関節軸がおかしい #51

Open
fkanehiro opened this issue Dec 10, 2015 · 3 comments
Open

urdfからwrlへの変換で関節軸がおかしい #51

fkanehiro opened this issue Dec 10, 2015 · 3 comments

Comments

@fkanehiro
Copy link
Owner

下のようなurdfを変換すると、円柱の軸周りに関節が回転することを期待しますが、それとは90度異なる方向周りに回転します。
おそらくrpyがaxisに適用されているのではないかと思いますが、urdfもwrlも子リンクでの相対表現なので変換は不要と思います。

更にrootジョイントがfixedではなくfreeになります。

<?xml version="1.0" encoding="utf-8"?>
<robot name="robot">
        <link name="Root_joint_link">
                <inertial>
                        <mass value="1"/>
                        <origin xyz="0 0 0" rpy="0 -0 0"/>
                        <inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1\
"/>
                </inertial>
                <visual>
                        <origin xyz="0 0 0" rpy="0 -0 0"/>
                        <geometry>
                                <box size="0.4 0.2 0.3" />
                        </geometry>
                </visual>
        </link>
        <link name="Hip_joint_link">
                <inertial>
                        <mass value="1"/>
                        <origin xyz="0 0 0" rpy="0 -0 0"/>
                        <inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1\
"/>
                </inertial>
                <visual>
                        <origin xyz="0 0 0" rpy="0 -0 0"/>
                        <geometry>
                                <cylinder radius="0.1" length="0.4" />
                        </geometry>
                </visual>
        </link>
        <link name="root"/>
        <joint name="Hip_joint_joint" type="revolute">
                <origin xyz="0.1 0 -0.1" rpy="0 -1.5708 0"/>
                <axis xyz="0 0 1"/>
                <parent link="Root_joint_link"/>
                <child link="Hip_joint_link"/>
                <limit effort="-1" velocity="-1" lower="-1" upper="1"/>
        </joint>
        <joint name="Root_joint_joint" type="fixed">
                <origin xyz="0 0 0" rpy="0 -0 0"/>
                <axis xyz="0 0 0"/>
                <parent link="root"/>
                <child link="Root_joint_link"/>
        </joint>
</robot>
@fkanehiro
Copy link
Owner Author

http://wiki.ros.org/urdf/XML/joint
を見ると、joint_frame=child_frameでjoint axisはchild_frameでの表現ということなのですが、
https://github.com/fkanehiro/simtrans/blob/master/simtrans/sdf.py#L198
のuse_parentが1となるために親リンクでの表現として処理されるようですね。
use_parentはなぜ1となっているのでしょう?

@fkanehiro
Copy link
Owner Author

gzでurdfからsdfに変換した時にuse_parent_model_frameが1になっている。

@fkanehiro
Copy link
Owner Author

use_parent_model_frameが1になっているが、axisもそれに合わせた値になっている。
またmodel.pyのAxisDataも親リンクでの表現ということになっているのでurdf->sdf->AxisDataまでの処理は現状のものでOKで問題はwrlに出力する際に子リンクでの表現に直していないことか。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant