Skip to content

A simple ROS Gazebo package for Franka Panda robot arm.

License

Notifications You must be signed in to change notification settings

jelenatabak/franka_gazebo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

A simple ROS Gazebo package for Franka Panda robot arm.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • CMake 58.0%
  • Python 42.0%