Giter Site home page Giter Site logo

franka_gazebo's Introduction

franka_gazebo

A simple ROS Gazebo package for Franka Panda robot arm.

Original URDF/XACRO description files and robot meshes were taken from official Franka Emika github repo. This package adds missing inertial and gazebo-specific tags to URDF/XACRO descriptions so Panda can be simulated in Gazebo.

Calculating inertial properties

MeshLab was used to calculate inertial properties (volume, center of mass and inertia tensor) of each link using provided 3D models. For instructions on how to do this, see this tutorial.

In order to get higher accuracy inertial properties, each link was scaled by a factor of 10 before calculation.

Some of the provided meshes had errors that prevented inertial properties to be calculated. If that happens, try to apply the following filters:

  1. Filters > Cleaning and Repairing > Merge close vertices
  2. Filters > Cleaning and Repairing > Remove duplicate face
  3. Filters > Cleaning and Repairing > Remove duplicate vertex
  4. Filters > Remeshing, Simplification and Reconstruction > Close holes

After applying each of the filters, try to calculate inertias. Often, even the first filter fixes the problem.

Mass of each link was calculated like this: mass of the link = volume of the link / total volume * total mass

Total mass is 18 kg (from the offical datasheet), and the total volume is calculated by adding volumes of each link.

There is a python script where you can enter inertial data calculated by MeshLab along with used scaling factor and it will print out XML style inertial tags that can be copied directly to URDF/XACRO file.

Using Franka Panda in Gazebo

It is also possible to move Panda arm in Gazebo thanks to the position_controllers/JointPositionController in each joint. PID parameters were set to enable stable control, but they can be further optimized.

Two launch files are provided in this package, one for just the arm and the other for the arm with the attached gripper. They spawn the robot model in Gazebo and start the controllers.

Launch file panda_arm_hand.launch includes an example controller that sends sinusoidal position commands to each joint. Make sure that Gazebo is already running by launching your desired world, for example:

roslaunch gazebo_ros empty_world.launch.

franka_gazebo's People

Contributors

mkrizmancic avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.