Skip to content
Snippets Groups Projects
Commit 8d328de1 authored by Sebastian Ebert's avatar Sebastian Ebert
Browse files

original version from github

parents
No related branches found
No related tags found
No related merge requests found
Showing
with 490 additions and 0 deletions
cmake_minimum_required(VERSION 3.4)
project(franka_description)
find_package(catkin REQUIRED)
catkin_package(CATKIN_DEPENDS xacro)
install(DIRECTORY meshes
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
install(DIRECTORY robots
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
)
/**
* @mainpage
* @htmlinclude "manifest.html"
*
* Overview page for Franka Emika research robots: https://frankaemika.github.io
*/
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
<?xml version="1.0"?>
<package format="2">
<name>franka_description</name>
<version>0.7.0</version>
<description>franka_description contains URDF files and meshes of Franka Emika robots</description>
<maintainer email="support@franka.de">Franka Emika GmbH</maintainer>
<license>Apache 2.0</license>
<url type="website">http://wiki.ros.org/franka_description</url>
<url type="repository">https://github.com/frankaemika/franka_ros</url>
<url type="bugtracker">https://github.com/frankaemika/franka_ros/issues</url>
<author>Franka Emika GmbH</author>
<buildtool_depend>catkin</buildtool_depend>
<exec_depend>xacro</exec_depend>
</package>
<?xml version="1.0" encoding="utf-8"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="panda">
<xacro:arg name="arm_id_1" default="panda_1" />
<xacro:arg name="arm_id_2" default="panda_2" />
<xacro:include filename="$(find franka_description)/robots/panda_arm.xacro"/>
<xacro:include filename="$(find franka_description)/robots/hand.xacro"/>
<!-- box shaped table as base for the 2 Pandas -->
<link name="base">
<visual>
<origin xyz="0 0 0.5" rpy="0 0 0"/>
<geometry>
<box size="1 2 1" />
</geometry>
<material name="White">
<color rgba="1.0 1.0 1.0 1.0"/>
</material>
</visual>
<collision>
<origin xyz="0 0 0.5" rpy="0 0 0"/>
<geometry>
<box size="1 2 1" />
</geometry>
</collision>
</link>
<!-- right arm with gripper -->
<xacro:panda_arm arm_id="$(arg arm_id_1)" connected_to="base" xyz="0 -0.5 1" safety_distance="0.03"/>
<xacro:hand ns="$(arg arm_id_1)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_1)_link8" safety_distance="0.03"/>
<!-- left arm with gripper -->
<xacro:panda_arm arm_id="$(arg arm_id_2)" connected_to="base" xyz="0 0.5 1" safety_distance="0.03"/>
<xacro:hand ns="$(arg arm_id_2)" rpy="0 0 ${-pi/4}" connected_to="$(arg arm_id_2)_link8" safety_distance="0.03"/>
</robot>
<?xml version="1.0" encoding="utf-8"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="hand">
<xacro:include filename="hand.xacro"/>
<xacro:hand ns="panda" safety_distance="0.03"/>
</robot>
<?xml version="1.0" encoding="utf-8"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="hand">
<!-- safety_distance: Minimum safety distance in [m] by which the collision volumes are expanded and which is enforced during robot motions -->
<xacro:macro name="hand" params="connected_to:='' ns:='' rpy:='0 0 0' xyz:='0 0 0' safety_distance:=0">
<xacro:unless value="${connected_to == ''}">
<joint name="${ns}_hand_joint" type="fixed">
<parent link="${connected_to}"/>
<child link="${ns}_hand"/>
<origin xyz="${xyz}" rpy="${rpy}"/>
</joint>
</xacro:unless>
<link name="${ns}_hand">
<visual>
<geometry>
<mesh filename="package://franka_description/meshes/visual/hand.dae"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 0.04" rpy="0 ${pi/2} ${pi/2}"/>
<geometry>
<cylinder radius="${0.04+safety_distance}" length="0.1" />
</geometry>
</collision>
<collision>
<origin xyz="0 -0.05 0.04" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.04+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0.05 0.04" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.04+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 0.1" rpy="0 ${pi/2} ${pi/2}"/>
<geometry>
<cylinder radius="${0.02+safety_distance}" length="0.1" />
</geometry>
</collision>
<collision>
<origin xyz="0 -0.05 0.1" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.02+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0.05 0.1" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.02+safety_distance}" />
</geometry>
</collision>
</link>
<link name="${ns}_leftfinger">
<visual>
<geometry>
<mesh filename="package://franka_description/meshes/visual/finger.dae"/>
</geometry>
</visual>
</link>
<link name="${ns}_rightfinger">
<visual>
<origin xyz="0 0 0" rpy="0 0 ${pi}"/>
<geometry>
<mesh filename="package://franka_description/meshes/visual/finger.dae"/>
</geometry>
</visual>
</link>
<joint name="${ns}_finger_joint1" type="prismatic">
<parent link="${ns}_hand"/>
<child link="${ns}_leftfinger"/>
<origin xyz="0 0 0.0584" rpy="0 0 0"/>
<axis xyz="0 1 0"/>
<limit effort="20" lower="0.0" upper="0.04" velocity="0.2"/>
</joint>
<joint name="${ns}_finger_joint2" type="prismatic">
<parent link="${ns}_hand"/>
<child link="${ns}_rightfinger"/>
<origin xyz="0 0 0.0584" rpy="0 0 0"/>
<axis xyz="0 -1 0"/>
<limit effort="20" lower="0.0" upper="0.04" velocity="0.2"/>
<mimic joint="${ns}_finger_joint1" />
</joint>
</xacro:macro>
</robot>
<?xml version='1.0' encoding='utf-8'?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="panda">
<xacro:include filename="$(find franka_description)/robots/panda_arm.xacro" />
<xacro:panda_arm safety_distance="0.03"/>
</robot>
<?xml version='1.0' encoding='utf-8'?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="panda">
<!-- safety_distance: Minimum safety distance in [m] by which the collision volumes are expanded and which is enforced during robot motions -->
<!-- arm_id: Namespace of the panda arm. Serves to differentiate between arms in case of multiple instances. -->
<xacro:macro name="panda_arm" params="arm_id:='panda' description_pkg:='franka_description' connected_to:='' xyz:='0 0 0' rpy:='0 0 0' safety_distance:=0">
<xacro:unless value="${not connected_to}">
<joint name="${arm_id}_joint_${connected_to}" type="fixed">
<parent link="${connected_to}"/>
<child link="${arm_id}_link0"/>
<origin rpy="${rpy}" xyz="${xyz}"/>
</joint>
</xacro:unless>
<link name="${arm_id}_link0">
<visual>
<geometry>
<mesh filename="package://${description_pkg}/meshes/visual/link0.dae"/>
</geometry>
</visual>
<collision>
<origin xyz="-0.075 0 0.06" rpy="0 ${pi/2} 0"/>
<geometry>
<cylinder radius="${0.06+safety_distance}" length="0.03" />
</geometry>
</collision>
<collision>
<origin xyz="-0.06 0 0.06" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="-0.09 0 0.06" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
</link>
<link name="${arm_id}_link1">
<visual>
<geometry>
<mesh filename="package://${description_pkg}/meshes/visual/link1.dae"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 -0.1915" rpy="0 0 0"/>
<geometry>
<cylinder radius="${0.06+safety_distance}" length="0.2830" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 -0.333" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 -0.05" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
</link>
<joint name="${arm_id}_joint1" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-2.8973" soft_upper_limit="2.8973"/>
<origin rpy="0 0 0" xyz="0 0 0.333"/>
<parent link="${arm_id}_link0"/>
<child link="${arm_id}_link1"/>
<axis xyz="0 0 1"/>
<limit effort="87" lower="-2.8973" upper="2.8973" velocity="2.1750"/>
</joint>
<link name="${arm_id}_link2">
<visual>
<geometry>
<mesh filename="package://${description_pkg}/meshes/visual/link2.dae"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<cylinder radius="${0.06+safety_distance}" length="0.12" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 -0.06" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 0.06" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
</link>
<joint name="${arm_id}_joint2" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-1.7628" soft_upper_limit="1.7628"/>
<origin rpy="${-pi/2} 0 0" xyz="0 0 0"/>
<parent link="${arm_id}_link1"/>
<child link="${arm_id}_link2"/>
<axis xyz="0 0 1"/>
<limit effort="87" lower="-1.7628" upper="1.7628" velocity="2.1750"/>
</joint>
<link name="${arm_id}_link3">
<visual>
<geometry>
<mesh filename="package://${description_pkg}/meshes/visual/link3.dae"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 -0.145" rpy="0 0 0"/>
<geometry>
<cylinder radius="${0.06+safety_distance}" length="0.15" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 -0.22" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 -0.07" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
</link>
<joint name="${arm_id}_joint3" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-2.8973" soft_upper_limit="2.8973"/>
<origin rpy="${pi/2} 0 0" xyz="0 -0.316 0"/>
<parent link="${arm_id}_link2"/>
<child link="${arm_id}_link3"/>
<axis xyz="0 0 1"/>
<limit effort="87" lower="-2.8973" upper="2.8973" velocity="2.1750"/>
</joint>
<link name="${arm_id}_link4">
<visual>
<geometry>
<mesh filename="package://${description_pkg}/meshes/visual/link4.dae"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0"/>
<geometry>
<cylinder radius="${0.06+safety_distance}" length="0.12" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 0.06" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 -0.06" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
</link>
<joint name="${arm_id}_joint4" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-3.0718" soft_upper_limit="-0.0698"/>
<origin rpy="${pi/2} 0 0" xyz="0.0825 0 0"/>
<parent link="${arm_id}_link3"/>
<child link="${arm_id}_link4"/>
<axis xyz="0 0 1"/>
<limit effort="87" lower="-3.0718" upper="-0.0698" velocity="2.1750"/>
</joint>
<link name="${arm_id}_link5">
<visual>
<geometry>
<mesh filename="package://${description_pkg}/meshes/visual/link5.dae"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 -0.26" rpy="0 0 0"/>
<geometry>
<cylinder radius="${0.06+safety_distance}" length="0.1" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 -0.31" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 -0.21" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.06+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0.08 -0.13" rpy="0 0 0"/>
<geometry>
<cylinder radius="${0.025+safety_distance}" length="0.14" />
</geometry>
</collision>
<collision>
<origin xyz="0 0.08 -0.06" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.025+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0.08 -0.20" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.025+safety_distance}" />
</geometry>
</collision>
</link>
<joint name="${arm_id}_joint5" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-2.8973" soft_upper_limit="2.8973"/>
<origin rpy="${-pi/2} 0 0" xyz="-0.0825 0.384 0"/>
<parent link="${arm_id}_link4"/>
<child link="${arm_id}_link5"/>
<axis xyz="0 0 1"/>
<limit effort="12" lower="-2.8973" upper="2.8973" velocity="2.6100"/>
</joint>
<link name="${arm_id}_link6">
<visual>
<geometry>
<mesh filename="package://${description_pkg}/meshes/visual/link6.dae"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 -0.03" rpy="0 0 0"/>
<geometry>
<cylinder radius="${0.05+safety_distance}" length="0.08" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 0.01" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.05+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 -0.07" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.05+safety_distance}" />
</geometry>
</collision>
</link>
<joint name="${arm_id}_joint6" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-0.0175" soft_upper_limit="3.7525"/>
<origin rpy="${pi/2} 0 0" xyz="0 0 0"/>
<parent link="${arm_id}_link5"/>
<child link="${arm_id}_link6"/>
<axis xyz="0 0 1"/>
<limit effort="12" lower="-0.0175" upper="3.7525" velocity="2.6100"/>
</joint>
<link name="${arm_id}_link7">
<visual>
<geometry>
<mesh filename="package://${description_pkg}/meshes/visual/link7.dae"/>
</geometry>
</visual>
<collision>
<origin xyz="0 0 0.01" rpy="0 0 0"/>
<geometry>
<cylinder radius="${0.04+safety_distance}" length="0.14" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 0.08" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.04+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0 0 -0.06" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.04+safety_distance}" />
</geometry>
</collision>
</link>
<joint name="${arm_id}_joint7" type="revolute">
<safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-2.8973" soft_upper_limit="2.8973"/>
<origin rpy="${pi/2} 0 0" xyz="0.088 0 0"/>
<parent link="${arm_id}_link6"/>
<child link="${arm_id}_link7"/>
<axis xyz="0 0 1"/>
<limit effort="12" lower="-2.8973" upper="2.8973" velocity="2.6100"/>
</joint>
<link name="${arm_id}_link8">
<collision>
<origin xyz="0.0424 0.0424 -0.0250" rpy="${pi} ${pi/2} ${pi/2}"/>
<geometry>
<cylinder radius="${0.03+safety_distance}" length="0.01" />
</geometry>
</collision>
<collision>
<origin xyz="0.0424 0.0424 -0.02" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.03+safety_distance}" />
</geometry>
</collision>
<collision>
<origin xyz="0.0424 0.0424 -0.03" rpy="0 0 0"/>
<geometry>
<sphere radius="${0.03+safety_distance}" />
</geometry>
</collision>
</link>
<joint name="${arm_id}_joint8" type="fixed">
<origin rpy="0 0 0" xyz="0 0 0.107"/>
<parent link="${arm_id}_link7"/>
<child link="${arm_id}_link8"/>
</joint>
</xacro:macro>
</robot>
<?xml version="1.0" encoding="utf-8"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="panda">
<xacro:include filename="$(find franka_description)/robots/panda_arm.xacro"/>
<xacro:include filename="$(find franka_description)/robots/hand.xacro"/>
<xacro:panda_arm safety_distance="0.03"/>
<xacro:hand ns="panda" rpy="0 0 ${-pi/4}" connected_to="panda_link8" safety_distance="0.03"/>
</robot>
- builder: doxygen
javadoc_autobrief: YES
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment