How to create URDF models for Franka robots
First, clone the franka_description
repository:
git clone https://github.com/frankaemika/franka_description.git
After that, use the scripts/create_urdf.sh
script to create the URDFs.
You need to make different choices here:
- Robot type:
multi_arm
,fr3
(Franka Research 3),fp3
(Franka Panda 3) orfer
. Recommended: The robot you’re using. - With or without end-effector:
--robot-ee
with one of the following options:franka_hand
(for the Franka Hand)cobot_pump
none
(no endeffector, recommended unless you use one of the listed end-effectors)
Furthermore, you can add the --with-sc
flag to include the self-collision model in the URDF. This is always recommended.
Also, you have to choose how to load the 3D geometry meshes which make up the URDF geometry:
- By default, the STL generator will use paths such as
package://franka_description/meshes/robot_arms/fr3/visual/link5.dae
. - You can also add
--abs-path --host-dir [HOST_DIR]
. One example would be to use relative paths using--abs-path --host-dir .
.
The image will use a ROS docker image to build the models, so you need to install Docker, but you don’t need to install anything else.
The resulting URDFs will be saved in the urdfs
subdirectory of the repository.
Example commands:
How to create a Franka Research 3 URDF (no end-effector)
# This will create urdfs/fr3.urdf
./scripts/create_urdf.sh fr3 --with-sc --robot-ee none
How to create a Franka Research 3 URDF with the Franka Hand end-effector
# This will create urdfs/fr3.urdf
./scripts/create_urdf.sh fr3 --with-sc --robot-ee franka_hand
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow