Mechanism Segments
Learn how to configure your mechanism segments
4 minute read
1. Collect DH parameters:
Retrieve the DH parameters from your robot model:
Example:
2. Collect the Mass, center of mass and inertia per Segment:
Calculate the Mass
, Center of Mass
and inertia
per segment of your robot.
Example:
Axis: | mass(kg): | center of mass(m): (x, y, z) | inertia(kg.m^2):(Ixx, Iyy, Izz) | |
---|---|---|---|---|
Joint1 | 5.096092 | -0.00004, -0.01290, -0.01726 | 0.0127270, 0.0096427, 0.0119825 | |
Joint2 | 10.70249 | -0.21335, 0.00000, 0.13058 | 0.0215573, 0.4351312, 0.4335571 | |
Joint3 | 4.341977 | -0.20021, 0.00000, 0.03962 | 0.0074610, 0.1187431, 0.1173773 | |
Joint4 | 1.835048 | -0.00019, -0.01377, -0.00809 | 0.0030334, 0.0021003, 0.0024817 | |
Joint5 | 1.877054 | 0.00014, 0.01278, -0.00773 | 0.0034297, 0.0021536, 0.0028632 | |
Joint6 | 0.449071 | 0.00000, -0.00009, -0.03035 | 0.0003376, 0.0003316, 0.0003881 | |
Tool | 0.000000 | 0.00000, 0.00000, 0.00000 | 0.0000000, 0.0000000, 0.0000000 |
Converted Example to Motorcortex Frame (z-up, y-left x-front):
Axis: | mass(kg): | center of mass(m): (x, y, z) | inertia(kg.m^2):(Ixx, Iyy, Izz) | |
---|---|---|---|---|
Joint1 | 5.096092 | 0.00004, 0.01290, -0.01726 | 0.0127270, 0.0096427, 0.0119825 | |
Joint2 | 10.70249 | 0.00000, 0.13058, -0.21335 | 0.0215573, 0.4335571, 0.4351312 | |
Joint3 | 4.341977 | 0.00000, 0.03962, -0.20021 | 0.0074610, 0.1173773, 0.1187431 | |
Joint4 | 1.835048 | 0.00019, -0.01377, -0.00809 | 0.0030334, 0.0024817, 0.0021003 | |
Joint5 | 1.877054 | -0.00014, 0.01278, 0.00773 | 0.0034297, 0.0021536, 0.0028632 | |
Joint6 | 0.449071 | 0.00000, -0.03035, -0.00009 | 0.0003376, 0.0003881, 0.0003316 | |
Tool | 0.000000 | 0.00000, 0.00000, 0.00000 | 0.0000000, 0.0000000, 0.0000000 |
3. Basic mech-parameters.xml
- Fill in the mech-parameter file based on the collected data.
Basic Example:
<?xml version="1.0"?>
<robot name="Dobot-CR5" numberDoFs="6" type="anthropomorphic2">
<segment number="1">
<tippose>
<position x="0.0" y="0.0" z="0.147"></position>
</tippose>
<jointaxis> rot_z </jointaxis>
</segment>
<segment number="2">
<tippose>
<position x="0.0" y="0.0" z="0.427"></position>
</tippose>
<jointaxis> rot_y </jointaxis>
</segment>
<segment number="3">
<tippose>
<position x="0.0" y="0.0" z="0.357"></position>
</tippose>
<jointaxis> rot_y </jointaxis>
</segment>
<segment number="4">
<tippose>
<position x="0.0" y="0.141" z="0.0"></position>
</tippose>
<jointaxis> rot_y </jointaxis>
</segment>
<segment number="5">
<tippose>
<position x="0.0" y="0.0" z="0.116"></position>
</tippose>
<jointaxis> rot_z </jointaxis>
</segment>
<segment number="6">
<tippose>
<position x="-0.0" y="0.105" z="0.0"></position>
</tippose>
<jointaxis> rot_y </jointaxis>
</segment>
<tool name="tool">
<tippose>
<position x ="0" y="0" z="0"></position>
</tippose>
</tool>
</robot>
4. Advanced mech-parameters.xml
- Fill in the mech-parameter file based on the collected data.
Advanced Example:
<?xml version="1.0"?>
<robot name="Dobot-CR5" numberDoFs="6" type="anthropomorphic2">
<segment number="1">
<tippose>
<position x="0.0" y="0.0" z="0.147"></position>
</tippose>
<jointaxis> rot_z </jointaxis>
<mass>
5.0960923
</mass>
<cog>
<position x="0.00004" y="0.01290" z="-0.01726" />
</cog>
<inertia>
<Ixx> 0.0127270 </Ixx>
<Ixy> 0.000 </Ixy>
<Ixz> 0.000 </Ixz>
<Iyx> 0.000 </Iyx>
<Iyy> 0.0096427 </Iyy>
<Iyz> 0.000 </Iyz>
<Izx> 0.000 </Izx>
<Izy> 0.000 </Izy>
<Izz> 0.0119825 </Izz>
</inertia>
</segment>
<segment number="2">
<tippose>
<position x="0.0" y="0.0" z="0.427"></position>
</tippose>
<jointaxis> rot_y </jointaxis>
<mass>
10.7024900
</mass>
<cog>
<position x="0" y="0.13058" z="-0.21335" />
</cog>
<inertia>
<Ixx> 0.0215573 </Ixx>
<Ixy> 0.000 </Ixy>
<Ixz> 0.000 </Ixz>
<Iyx> 0.000 </Iyx>
<Iyy> 0.4335571 </Iyy>
<Iyz> 0.000 </Iyz>
<Izx> 0.000 </Izx>
<Izy> 0.000 </Izy>
<Izz> 0.4351312 </Izz>
</inertia>
</segment>
<segment number="3">
<tippose>
<position x="0.0" y="0.0" z="0.357"></position>
</tippose>
<jointaxis> rot_y </jointaxis>
<mass>
4.3419774
</mass>
<cog>
<position x="0" y="0.03962" z="-0.20021" />
</cog>
<inertia>
<Ixx> 0.0074610 </Ixx>
<Ixy> 0.000 </Ixy>
<Ixz> 0.000 </Ixz>
<Iyx> 0.000 </Iyx>
<Iyy> 0.1173773 </Iyy>
<Iyz> 0.000 </Iyz>
<Izx> 0.000 </Izx>
<Izy> 0.000 </Izy>
<Izz> 0.1187431 </Izz>
</inertia>
</segment>
<segment number="4">
<tippose>
<position x="0.0" y="0.141" z="0.0"></position>
</tippose>
<jointaxis> rot_y </jointaxis>
<mass>
1.8350479
</mass>
<cog>
<position x="0.00019" y="-0.01377" z="-0.00809" />
</cog>
<inertia>
<Ixx> 0.0030334 </Ixx>
<Ixy> 0.000 </Ixy>
<Ixz> 0.000 </Ixz>
<Iyx> 0.000 </Iyx>
<Iyy> 0.0024817 </Iyy>
<Iyz> 0.000 </Iyz>
<Izx> 0.000 </Izx>
<Izy> 0.000 </Izy>
<Izz> 0.0021003 </Izz>
</inertia>
</segment>
<segment number="5">
<tippose>
<position x="0.0" y="0.0" z="0.116"></position>
</tippose>
<jointaxis> rot_z </jointaxis>
<mass>
1.8770536
</mass>
<cog>
<position x="-0.00014" y="0.01278" z="0.00773" />
</cog>
<inertia>
<Ixx> 0.0034297 </Ixx>
<Ixy> 0.000 </Ixy>
<Ixz> 0.000 </Ixz>
<Iyx> 0.000 </Iyx>
<Iyy> 0.0021536 </Iyy>
<Iyz> 0.000 </Iyz>
<Izx> 0.000 </Izx>
<Izy> 0.000 </Izy>
<Izz> 0.0028632 </Izz>
</inertia>
</segment>
<segment number="6">
<tippose>
<position x="-0.0" y="0.105" z="0.0"></position>
</tippose>
<jointaxis> rot_y </jointaxis>
<mass>
0.4490706
</mass>
<cog>
<position x="0" y="-0.03035" z="-0.00009" />
</cog>
<inertia>
<Ixx> 0.0003376 </Ixx>
<Ixy> 0.000 </Ixy>
<Ixz> 0.000 </Ixz>
<Iyx> 0.000 </Iyx>
<Iyy> 0.0003881 </Iyy>
<Iyz> 0.000 </Iyz>
<Izx> 0.000 </Izx>
<Izy> 0.000 </Izy>
<Izz> 0.0003316 </Izz>
</inertia>
</segment>
<tool name="tool">
<tippose>
<position x ="0" y="0" z="0"></position>
</tippose>
<mass>
0.000
</mass>
<inertia>
<Ixx> 0.000 </Ixx>
<Ixy> 0.000 </Ixy>
<Ixz> 0.000 </Ixz>
<Iyx> 0.000 </Iyx>
<Iyy> 0.000 </Iyy>
<Iyz> 0.000 </Iyz>
<Izx> 0.000 </Izx>
<Izy> 0.000 </Izy>
<Izz> 0.000 </Izz>
</inertia>
<cog>
<position x ="0" y="0" z="0"> </position>
</cog>
</tool>
</robot>