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

Add a Gazebo plugin to better match driver interfaces #51

Draft
wants to merge 5 commits into
base: dev/noetic
Choose a base branch
from

Commits on Sep 17, 2021

  1. Improve joint simulation

    Add gazebo_ros_control PID gains
    Tuned manually to make movement via the teleop interface behave well
    Wheels still unspecified because they cause the robot to collapse
    Use effort joint interface for the gripper so that gripper contacts are well simulated
    nickswalker committed Sep 17, 2021
    Configuration menu
    Copy the full SHA
    0bf3b6f View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2021

  1. Use effort control for all arm joints

    Removes most of the instability in simulation behavior when lifting objects
    nickswalker committed Nov 1, 2021
    Configuration menu
    Copy the full SHA
    cfc40d0 View commit details
    Browse the repository at this point in the history
  2. Increase mass of base

    Makes tipping behavior in simulation more plausible
    I assume that the mass of an assembled base is at least this heavy, given that the robot is around 50lbs total
    nickswalker committed Nov 1, 2021
    Configuration menu
    Copy the full SHA
    2ef81b3 View commit details
    Browse the repository at this point in the history
  3. Use a single controller for the simulation

    This better matches the physical robot, though this interface doesn't handle the virtual joints that the robot uses
    nickswalker committed Nov 1, 2021
    Configuration menu
    Copy the full SHA
    9da8b84 View commit details
    Browse the repository at this point in the history
  4. Add custom Gazebo plugin

    This plug in is a modified version of the original ros_control plugin and that plugin's "default hardware plugin" (confusing, I know)
    The modified model plugin provides a /runstop service to match the real robot's driver, and hooks this up to ros_controls existing estop implementation
    The modified hardware plugin provides the mode switching services that the real robot has (mocked for now) and publishes joint states that include the virtual joints used by the real platform. The wrist extension joint behaves the same as the driver implementation. The rotation and translation joints aren't hooked up yet, and it may be difficult to provide their functionality without forking the actual "follow_joint_trajectory" implementation, which expects only joints that are present in the URDF
    Mirror the real platform setup and use a joint state publisher node to republish the subset of joints that match the URDF
    nickswalker committed Nov 1, 2021
    Configuration menu
    Copy the full SHA
    56c3e4c View commit details
    Browse the repository at this point in the history