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

[BUG] Terrible control on freight robot without casters #115

Open
marcelino-pensa opened this issue Apr 15, 2022 · 0 comments
Open

[BUG] Terrible control on freight robot without casters #115

marcelino-pensa opened this issue Apr 15, 2022 · 0 comments
Labels

Comments

@marcelino-pensa
Copy link

Describe the bug
I've been struggling with commanding the freight robot in gazebo. I had noticed that the full fetch robot worked fine, so I started looking into the differences between them until I could determine the issue.
As it turns out, the freight robot just needed some casters to be controlled reasonably.

To Reproduce
To reproduce the error, build fetch_gazebo on branch gazebo11 for ROS Noetic on Ubuntu 20.04.

  • On one terminal, launch the simulation:
roslaunch fetch_gazebo playground.launch robot:=freight
  • On a second terminal, launch teleop:
rosrun teleop_twist_keyboard teleop_twist_keyboard.py

Request the robot to move forward by pressing i on the keyboard.

Expected behavior
The robot should go forward.

Screenshots

Robot without casters (it doesn't even move forward, it ends up curving over time and has lots of jitter):
ezgif-4-041b3d2647

Robot with casters (similar to the navigation of the full robot):
ezgif-4-973b32ae12

catkin workspace (please complete the following information):

  • fetch_gazebo version: gazebo11
  • Ubuntu version: 20.04
  • ROS version: Noetic

Solution
Add the following to freight.gazebo.xacro:

  <xacro:macro name="caster" params="prefix joint_x joint_y">
  <link name="${prefix}_caster_link">
    <visual>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <sphere radius="0.0601"/> <!-- 0.06033 -->
      </geometry>
      <material name="">
        <color rgba="0.086 0.506 0.767 1"/>
      </material>
    </visual>
    <collision>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <geometry>
        <sphere radius="0.0601"/>
      </geometry>
    </collision>
    <inertial>
      <inertia ixx="1" ixy="0" ixz="0" iyy="1" iyz="0" izz="1"/>
      <origin rpy="0 0 0" xyz="0 0 0"/>
      <mass value="0.01"/>
    </inertial>
  </link>
  <gazebo reference="${prefix}_caster_link">
    <mu1>0.1</mu1>
    <mu2>0.1</mu2>
    <kp>100000000</kp>
    <kd>10.0</kd>
    <maxVel>10</maxVel>
    <minDepth>0.001</minDepth>
  </gazebo>
  <joint name="${prefix}_caster_joint" type="fixed">
    <parent link="base_link"/>
    <child link="${prefix}_caster_link"/>
    <origin rpy="0 0 0" xyz="${joint_x} ${joint_y} 0.055325"/>
    <axis xyz="0 1 0"/>
  </joint>
  </xacro:macro>
  <xacro:caster prefix="fl" joint_x="0.15" joint_y="0.12"/>
  <xacro:caster prefix="fr" joint_x="0.15" joint_y="-0.12"/>
  <xacro:caster prefix="br" joint_x="-0.2" joint_y="0.12"/>
  <xacro:caster prefix="bl" joint_x="-0.2" joint_y="-0.12"/>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant