# changing the dimention of the base link moved the robot upward from the ground

I have a mobile robot "husky" I have the following things in a urdf file:

    <!-- Size of the base-->
<property name="base_x_size" value="0.98740000" />
<property name="base_y_size" value="0.57090000" />
<property name="base_z_size" value="0.24750000" />


In the same urdf file I have this information related to the base link:

<link name="base_link">
<inertial>
<mass value="{base_mass}" /> <!--This is the pose of the inertial reference frame, relative to the link reference frame. The origin of the inertial reference frame needs to be at the center of gravity. The axes of the inertial reference frame do not need to be aligned with the principal axes of the inertia.--> <origin xyz="{base_x_com} ${base_y_com}${base_z_com}" />
<!--The 3x3 rotational inertia matrix. Because the rotational inertia matrix is symmetric, only 6 above-diagonal elements of this matrix are specified here, using the attributes ixx, ixy, ixz, iyy, iyz, izz.-->
<inertia ixx="${base_ixx_com_cs}" ixy="${base_ixy_com_cs}" ixz="${base_ixz_com_cs}" iyy="${base_iyy_com_cs}" iyz="${base_iyz_com_cs}" izz="${base_izz_com_cs}" />
</inertial>

<visual>
<origin xyz="0 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://husky_description/meshes/base_test.stl" />
</geometry>
<material name="Black" />
</visual>

<collision name="colloision">
<origin xyz="0 0 ${wheel_x_size/2 - base_z_origin_to_wheel_origin - 0.02}" rpy="0 0 0 " /> <geometry> <box size = "${base_x_size+0.02} ${base_y_size}${base_z_size + 0.02}"/>
<!--making it slightly bigger in x and z direction-->
</geometry>
<max_contacts>10</max_contacts>

</collision>


I changed in the stl file the dimension of the base_link there fore I have to change in the urdf file the following

 <property name="base_z_size" value="1.24750000" />


The problem is that the mobile robot now is flying by 1 meter above the ground.

how can I change the dimension of the base_link and keep the mobile robot in the ground

edit retag close merge delete

Sort by » oldest newest most voted

First, I changed the

<!-- Size of the base-->
<property name="base_x_size" value="0.98740000" />
<property name="base_y_size" value="0.57090000" />
<property name="base_z_size" value="0.24750000" />


to the same thing I changed in the .stl file. So the this I am seeing is the same as the thing is constructed.

<property name="base_x_size" value="0.98740000"/>
<property name="base_y_size" value="0.57090000"/>
<property name="base_z_size" value="10"/>


To the same thing I changed in the .stl file. So the this I am seeing is the same as the thing is constructed. Second, I changed origin of collision from

   <origin xyz="0 0 \${wheel_x_size/2 - base_z_origin_to_wheel_origin - 0.02}" rpy="0 0 0 " />


to

 <origin xyz="0 0 5" rpy="0 0 0 "/>


and it worked, I dont know how but it did work.

more

The Clearpath Husky has a base_footprint which is the projection of the base_link on the floor. So if you change the base_link to be 1m higher, you will have to reflect that change where the base_footprint is defined as well in the URDF.

more

I didnt try this but I solved the problem.. I will add the answer.

( 2014-10-09 03:26:56 -0500 )edit