diff --git a/.ci/Dockerfile.kinetic b/.ci/Dockerfile.kinetic
new file mode 100644
index 0000000000000000000000000000000000000000..0129ced1efdb75acf2dfe21c1ae6a3308732c655
--- /dev/null
+++ b/.ci/Dockerfile.kinetic
@@ -0,0 +1,7 @@
+FROM osrf/ros:kinetic-desktop-xenial
+RUN apt-get update && apt-get install -y \
+    clang-6.0 \
+    clang-format-6.0 \
+    clang-tidy-6.0 \
+    ros-kinetic-ros-control \
+    && rm -rf /var/lib/apt/lists/*
diff --git a/.ci/Dockerfile.melodic b/.ci/Dockerfile.melodic
new file mode 100644
index 0000000000000000000000000000000000000000..e3b20a8874f26a5bf23c2aef0961d9fa2f1f5158
--- /dev/null
+++ b/.ci/Dockerfile.melodic
@@ -0,0 +1,7 @@
+FROM osrf/ros:melodic-desktop-bionic
+RUN apt-get update && apt-get install -y \
+    clang-6.0 \
+    clang-format-6.0 \
+    clang-tidy-6.0 \
+    ros-melodic-ros-control \
+    && rm -rf /var/lib/apt/lists/*
diff --git a/.ci/debug.sh b/.ci/debug.sh
new file mode 100755
index 0000000000000000000000000000000000000000..c1b2a7ac9ec8eea24f780f3af79b10ba8d02e1b5
--- /dev/null
+++ b/.ci/debug.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+set -e
+set -x
+
+rm -f src/CMakeLists.txt
+catkin_init_workspace src
+
+rm -rf build-debug
+mkdir build-debug
+cd build-debug
+
+cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_EXPORT_COMPILE_COMMANDS=ON ../src
+. devel/setup.sh
+
+cmake --build .
+cmake --build . --target tests
+ctest -V
+
+cmake --build . --target check-format
+cmake --build . --target check-tidy
diff --git a/.clang-format b/.clang-format
new file mode 100644
index 0000000000000000000000000000000000000000..f31b8cb7615ac634bb0606e7643e6d01c3f3c7cb
--- /dev/null
+++ b/.clang-format
@@ -0,0 +1,4 @@
+BasedOnStyle: Chromium
+Standard: Cpp11
+SortIncludes: true
+ColumnLimit: 100
diff --git a/.clang-tidy b/.clang-tidy
new file mode 100644
index 0000000000000000000000000000000000000000..7fac802e36b9425ad1c0e1a5fb616322f4c83f70
--- /dev/null
+++ b/.clang-tidy
@@ -0,0 +1,52 @@
+Checks: 'clang-diagnostic-*,clang-analyzer-*,-clang-analyzer-optin.cplusplus.VirtualCall,-clang-analyzer-alpha*,google-*,misc-*,readability-*,modernize-*,performance-*,-clang-diagnostic-deprecated-declarations,-modernize-pass-by-value,-clang-diagnostic-reinterpret-base-class,-clang-diagnostic-return-type,-clang-diagnostic-switch'
+HeaderFilterRegex: '^franka_.*'
+CheckOptions:
+# Classes, structs, ...
+  - key:    readability-identifier-naming.NamespaceCase
+    value:  lower_case
+  - key:    readability-identifier-naming.ClassCase
+    value:  CamelCase
+  - key:    readability-identifier-naming.StructCase
+    value:  CamelCase
+  - key:    readability-identifier-naming.EnumCase
+    value:  CamelCase
+  - key:    readability-identifier-naming.UnionCase
+    value:  CamelCase
+  - key:    readability-identifier-naming.TypedefCase
+    value:  CamelCase
+
+# Variables, member variables, ...
+  - key:    readability-identifier-naming.ParameterCase
+    value:  lower_case
+  - key:    readability-identifier-naming.VariableCase
+    value:  lower_case
+  - key:    readability-identifier-naming.MemberCase
+    value:  lower_case
+  - key:    readability-identifier-naming.PublicMemberCase
+    value:  lower_case
+  - key:    readability-identifier-naming.ProtectedMemberCase
+    value:  lower_case
+  - key:    readability-identifier-naming.PrivateMemberCase
+    value:  lower_case
+  - key:    readability-identifier-naming.PrivateMemberSuffix
+    value:  _
+
+# Functions, methods, ...
+  - key:    readability-identifier-naming.FunctionCase
+    value:  camelBack
+  - key:    readability-identifier-naming.MethodCase
+    value:  camelBack
+
+# Constants
+  - key:    readability-identifier-naming.ConstantPrefix
+    value:  k
+  - key:    readability-identifier-naming.ConstantCase
+    value:  CamelCase
+  - key:    readability-identifier-naming.ConstantMemberPrefix
+    value:  ''
+  - key:    readability-identifier-naming.ConstantMemberCase
+    value:  lower_case
+  - key:    readability-identifier-naming.ConstantParameterCase
+    value:  lower_case
+  - key:    readability-identifier-naming.ConstantParameterPrefix
+    value:  ''
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..9f11b755a17d8192c60f61cb17b8902dffbd9f23
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.idea/
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000000000000000000000000000000000..3c894d13968fb37d38d00fbbcc29a66b2d7ac2af
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,35 @@
+sudo: required
+language: none
+
+services:
+  - docker
+
+matrix:
+  include:
+    - env: CI_ROS=kinetic
+    - env: CI_ROS=melodic
+
+before_script:
+  - mkdir -p ~/workspace/catkin_ws/src
+  - |
+    cd ~/workspace
+    git clone https://github.com/frankaemika/libfranka.git
+    cd libfranka
+    git checkout ${TRAVIS_PULL_REQUEST_BRANCH:-${TRAVIS_BRANCH}} || git checkout develop
+    git submodule update --init --recursive
+  - |
+    cd ~/workspace
+    docker build -t worker -f $TRAVIS_BUILD_DIR/.ci/Dockerfile.$CI_ROS $TRAVIS_BUILD_DIR/.ci
+    ln -sf $TRAVIS_BUILD_DIR catkin_ws/src/franka_ros
+
+script:
+  - docker run
+    -v $TRAVIS_BUILD_DIR:$TRAVIS_BUILD_DIR
+    -v ~/workspace:/workspace
+    worker /bin/sh -c '
+      cd /workspace/libfranka &&
+      .ci/libonly.sh &&
+      export CMAKE_PREFIX_PATH="/workspace/libfranka/build-libonly:$CMAKE_PREFIX_PATH" &&
+      cd /workspace/catkin_ws &&
+      src/franka_ros/.ci/debug.sh
+    '
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f0de05cbda6a4541a7783ef12f505d5c416d6671..7282c39947f348162715e7e829a4aa5eb0f6e2b9 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.4)
+cmake_minimum_required(VERSION 2.8.3)
 project(franka_description)
 
 find_package(catkin REQUIRED)
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..d9a10c0d8e868ebf8da0b3dc95bb0be634c34bfe
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,176 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
diff --git a/NOTICE b/NOTICE
new file mode 100644
index 0000000000000000000000000000000000000000..2a239fac633ce235814668b086a1040cc4810806
--- /dev/null
+++ b/NOTICE
@@ -0,0 +1,15 @@
+franka_ros
+
+Copyright 2017 Franka Emika GmbH
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/README.md b/README.md
index 658c512873e75a66356f4052765b7dff831247ff..1ddf2bef713b6838c8e4bb297695b6c582e4f579 100644
--- a/README.md
+++ b/README.md
@@ -1,20 +1,12 @@
-# Franka Description Package
+# ROS integration for Franka Emika research robots
 
-Forked august 2020 and extended with adaption of applied forces.
+See the [Franka Control Interface (FCI) documentation][fci-docs] for more information.
 
-Original repository: https://github.com/frankaemika/franka_ros/tree/kinetic-devel/franka_description
+## License
 
-## How to install it
+All packages of `franka_ros` are licensed under the [Apache 2.0 license][apache-2.0].
 
-* navigate into the src-folder of your workspace
-* create a folder with the name "franka_ros"
-* cd into the franka_ros folder
-* clone this repository inside the franka_ros folder
-
-
-## What has changed
-
-We modified the joint limits in the panda_arm.xacro.
-More in detail they are increased/decreased by 0.1.
-This had to be done to never let the cartesian planner hit the limits again.
-The limits were always reached, as the planner includes them in his plannable value range.
+[apache-2.0]: https://www.apache.org/licenses/LICENSE-2.0.html
+[fci-docs]: https://frankaemika.github.io/docs
+[travis-status]: https://travis-ci.org/frankaemika/franka_ros.svg?branch=kinetic-devel
+[travis]: https://travis-ci.org/frankaemika/franka_ros
diff --git a/meshes/collision/finger.stl b/meshes/collision/finger.stl
new file mode 100644
index 0000000000000000000000000000000000000000..3b87289fea8128bcec3e0b4d174b169124e8e444
Binary files /dev/null and b/meshes/collision/finger.stl differ
diff --git a/meshes/collision/hand.stl b/meshes/collision/hand.stl
new file mode 100644
index 0000000000000000000000000000000000000000..4e820902eba7b9d959a2e0cc8091f4b0f09ed77a
Binary files /dev/null and b/meshes/collision/hand.stl differ
diff --git a/meshes/collision/link0.stl b/meshes/collision/link0.stl
new file mode 100644
index 0000000000000000000000000000000000000000..def070c7077c0ddb33bbe16cd6c75f19dd318734
Binary files /dev/null and b/meshes/collision/link0.stl differ
diff --git a/meshes/collision/link1.stl b/meshes/collision/link1.stl
new file mode 100644
index 0000000000000000000000000000000000000000..426bcf2d7a04e067e01ab198d0ccfef63c6846e8
Binary files /dev/null and b/meshes/collision/link1.stl differ
diff --git a/meshes/collision/link2.stl b/meshes/collision/link2.stl
new file mode 100644
index 0000000000000000000000000000000000000000..b369f1599a3c1356611716621f998bd8b5a8863b
Binary files /dev/null and b/meshes/collision/link2.stl differ
diff --git a/meshes/collision/link3.stl b/meshes/collision/link3.stl
new file mode 100644
index 0000000000000000000000000000000000000000..25162eeedf286d1e27fdd4ba38950ae90678bb0f
Binary files /dev/null and b/meshes/collision/link3.stl differ
diff --git a/meshes/collision/link4.stl b/meshes/collision/link4.stl
new file mode 100644
index 0000000000000000000000000000000000000000..76c8c33c3e1e6c184f8c3693b390892c25b179e3
Binary files /dev/null and b/meshes/collision/link4.stl differ
diff --git a/meshes/collision/link5.stl b/meshes/collision/link5.stl
new file mode 100644
index 0000000000000000000000000000000000000000..3006a0b9a695f020e1887128d805d15aaa7fd342
Binary files /dev/null and b/meshes/collision/link5.stl differ
diff --git a/meshes/collision/link6.stl b/meshes/collision/link6.stl
new file mode 100644
index 0000000000000000000000000000000000000000..2e9594a873f97e572ec68a4e0ab6d65f41f5007e
Binary files /dev/null and b/meshes/collision/link6.stl differ
diff --git a/meshes/collision/link7.stl b/meshes/collision/link7.stl
new file mode 100644
index 0000000000000000000000000000000000000000..0532d057507637533d25f4b3ed451f213685a61d
Binary files /dev/null and b/meshes/collision/link7.stl differ
diff --git a/meshes/visual/finger.dae b/meshes/visual/finger.dae
index 8d249b9751ca2a5abf80fe1fcd1a1b951c481ba8..e09f9b80e08696a1a531b15ca44179dce77c1f20 100644
--- a/meshes/visual/finger.dae
+++ b/meshes/visual/finger.dae
@@ -34,7 +34,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -64,7 +63,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
diff --git a/meshes/visual/hand.dae b/meshes/visual/hand.dae
index 454bfcddd36f81a720ba9793b1998bfd8561ff7a..990b1f587a19bd8522cc9e3aa832e99245e548a7 100644
--- a/meshes/visual/hand.dae
+++ b/meshes/visual/hand.dae
@@ -34,7 +34,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -64,7 +63,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -94,7 +92,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -124,7 +121,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -154,7 +150,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
diff --git a/meshes/visual/link0.dae b/meshes/visual/link0.dae
index 9d65e4420b46c4498ca5c7d6390120e01443882b..573bd8e628af1468d05072afcdbf807a5d52f450 100644
--- a/meshes/visual/link0.dae
+++ b/meshes/visual/link0.dae
@@ -34,7 +34,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -64,7 +63,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -94,7 +92,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -124,7 +121,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -154,7 +150,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -184,7 +179,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -214,7 +208,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -244,7 +237,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -274,7 +266,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -304,7 +295,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -334,7 +324,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -364,7 +353,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
diff --git a/meshes/visual/link1.dae b/meshes/visual/link1.dae
index 47e5b4215f5c9d334b4ba741b571d4aabf2fc404..f55e7e0651c83b0bb73234c7cb509d294c4c8010 100644
--- a/meshes/visual/link1.dae
+++ b/meshes/visual/link1.dae
@@ -34,7 +34,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
diff --git a/meshes/visual/link2.dae b/meshes/visual/link2.dae
index 6d5788c831cfb7f6e0fa2ebe0df188673f980ce4..c017aa31c3fb812e0d01b641858a55b04cdc0e10 100644
--- a/meshes/visual/link2.dae
+++ b/meshes/visual/link2.dae
@@ -34,7 +34,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
diff --git a/meshes/visual/link3.dae b/meshes/visual/link3.dae
index 895e67be2d17a44d553a1290e9e5fcd89f4f82d1..0a21ad5cc361522f0df1971b841e4a1200b48885 100644
--- a/meshes/visual/link3.dae
+++ b/meshes/visual/link3.dae
@@ -34,7 +34,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -64,7 +63,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -94,7 +92,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -124,7 +121,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
diff --git a/meshes/visual/link4.dae b/meshes/visual/link4.dae
index 1d47af8e04af59e4420e5f59f0deaaa3feb4d72f..dce08f85dca332d18ff11177867c245ec2ae3987 100644
--- a/meshes/visual/link4.dae
+++ b/meshes/visual/link4.dae
@@ -34,7 +34,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -64,7 +63,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -94,7 +92,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -124,7 +121,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
diff --git a/meshes/visual/link5.dae b/meshes/visual/link5.dae
index b4370bb6401bc1c4b57b5bd2ab9ee89436757110..c8f4f1118f04e31d73926a7038af60d96d3ac34b 100644
--- a/meshes/visual/link5.dae
+++ b/meshes/visual/link5.dae
@@ -34,7 +34,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -64,7 +63,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -94,7 +92,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
diff --git a/meshes/visual/link6.dae b/meshes/visual/link6.dae
index 74a80bff2151dbc161238b9e86ab0c1f7d59043c..484159bfbcd06a84600490459210254d42479007 100644
--- a/meshes/visual/link6.dae
+++ b/meshes/visual/link6.dae
@@ -34,7 +34,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -64,7 +63,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -94,7 +92,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -124,7 +121,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -154,7 +150,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -184,7 +179,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -214,7 +208,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -244,7 +237,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -274,7 +266,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -304,7 +295,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -334,7 +324,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -364,7 +353,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -394,7 +382,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -424,7 +411,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -454,7 +440,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -484,7 +469,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -514,7 +498,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
diff --git a/meshes/visual/link7.dae b/meshes/visual/link7.dae
index e43db9037bafa660557ee193fef8c1d217acb01b..4abeee6bdbd31e5bd30d916957876b16db38f530 100644
--- a/meshes/visual/link7.dae
+++ b/meshes/visual/link7.dae
@@ -34,7 +34,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -64,7 +63,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -94,7 +92,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -124,7 +121,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -154,7 +150,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -184,7 +179,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -214,7 +208,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
@@ -244,7 +237,6 @@
             <transparent opaque="A_ONE">
               <color>1 1 1 1</color>
             </transparent>
-            <transparency><float>1</float></transparency>
             <index_of_refraction>
               <float sid="index_of_refraction">1</float>
             </index_of_refraction>
diff --git a/robots/panda.gazebo.xacro b/robots/panda.gazebo.xacro
new file mode 100644
index 0000000000000000000000000000000000000000..02822caa5688d544fb76b743dcfd9b7e6685facd
--- /dev/null
+++ b/robots/panda.gazebo.xacro
@@ -0,0 +1,94 @@
+<?xml version="1.0"?>
+
+<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
+
+    <xacro:macro name="panda_gazebo" params="robot_name">
+
+        <!-- Link0 -->
+        <gazebo reference="${robot_name}_link0">
+            <material>Gazebo/Grey</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+        <!-- Link1 -->
+        <gazebo reference="${robot_name}_link1">
+            <material>Gazebo/White</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+        <!-- Link2 -->
+        <gazebo reference="${robot_name}_link2">
+            <material>Gazebo/White</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+        <!-- Link3 -->
+        <gazebo reference="${robot_name}_link3">
+            <material>Gazebo/White</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+        <!-- Link4 -->
+        <gazebo reference="${robot_name}_link4">
+            <material>Gazebo/White</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+        <!-- Link5 -->
+        <gazebo reference="${robot_name}_link5">
+            <material>Gazebo/White</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+        <!-- Link6 -->
+        <gazebo reference="${robot_name}_link6">
+            <material>Gazebo/White</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+        <!-- Link7 -->
+        <gazebo reference="${robot_name}_link7">
+            <material>Gazebo/Grey</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+        <!-- Link8 -->
+        <gazebo reference="${robot_name}_link8">
+            <material>Gazebo/Grey</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+        <!-- LinkHand -->
+        <gazebo reference="${robot_name}_hand">
+            <material>Gazebo/Grey</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+        <!-- LinkRightFinger -->
+        <gazebo reference="${robot_name}_rightfinger">
+            <material>Gazebo/Grey</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+        <!-- LinkLeftFinger -->
+        <gazebo reference="${robot_name}_leftfinger">
+            <material>Gazebo/Grey</material>
+            <mu1>0.2</mu1>
+            <mu2>0.2</mu2>
+        </gazebo>
+
+    </xacro:macro>
+
+</robot>
+
diff --git a/robots/panda.transmission.xacro b/robots/panda.transmission.xacro
new file mode 100644
index 0000000000000000000000000000000000000000..f29313877d62e86a3f95779428c1c38783643a92
--- /dev/null
+++ b/robots/panda.transmission.xacro
@@ -0,0 +1,114 @@
+<?xml version="1.0"?>
+<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
+    <xacro:macro name="panda_transmission" params="robot_name load_hand">
+
+
+        <!-- Load Gazebo lib and set the robot namespace -->
+        <gazebo>
+            <plugin name="gazebo_ros_control" filename="libgazebo_ros_control.so">
+                <!-- <robotNamespace>/${robot_name}</robotNamespace> -->
+            </plugin>
+        </gazebo>
+
+        <transmission name="${robot_name}_tran_1">
+            <type>transmission_interface/SimpleTransmission</type>
+            <joint name="${robot_name}_joint1">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+            </joint>
+            <actuator name="${robot_name}_motor_1">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+                <mechanicalReduction>1</mechanicalReduction>
+            </actuator>
+        </transmission>
+
+        <transmission name="${robot_name}_tran_2">
+            <type>transmission_interface/SimpleTransmission</type>
+            <joint name="${robot_name}_joint2">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+            </joint>
+            <actuator name="${robot_name}_motor_2">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+                <mechanicalReduction>1</mechanicalReduction>
+            </actuator>
+        </transmission>
+
+        <transmission name="${robot_name}_tran_3">
+            <type>transmission_interface/SimpleTransmission</type>
+            <joint name="${robot_name}_joint3">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+            </joint>
+            <actuator name="${robot_name}_motor_3">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+                <mechanicalReduction>1</mechanicalReduction>
+            </actuator>
+        </transmission>
+
+        <transmission name="${robot_name}_tran_4">
+            <type>transmission_interface/SimpleTransmission</type>
+            <joint name="${robot_name}_joint4">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+            </joint>
+            <actuator name="${robot_name}_motor_4">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+                <mechanicalReduction>1</mechanicalReduction>
+            </actuator>
+        </transmission>
+
+        <transmission name="${robot_name}_tran_5">
+            <type>transmission_interface/SimpleTransmission</type>
+            <joint name="${robot_name}_joint5">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+            </joint>
+            <actuator name="${robot_name}_motor_5">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+                <mechanicalReduction>1</mechanicalReduction>
+            </actuator>
+        </transmission>
+
+        <transmission name="${robot_name}_tran_6">
+            <type>transmission_interface/SimpleTransmission</type>
+            <joint name="${robot_name}_joint6">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+            </joint>
+            <actuator name="${robot_name}_motor_6">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+                <mechanicalReduction>1</mechanicalReduction>
+            </actuator>
+        </transmission>
+
+        <transmission name="${robot_name}_tran_7">
+            <type>transmission_interface/SimpleTransmission</type>
+            <joint name="${robot_name}_joint7">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+            </joint>
+            <actuator name="${robot_name}_motor_7">
+                <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+                <mechanicalReduction>1</mechanicalReduction>
+            </actuator>
+        </transmission>
+
+        <xacro:if value="${load_hand}">
+            <transmission name="${robot_name}_leftfinger">
+                <type>transmission_interface/SimpleTransmission</type>
+                <joint name="${robot_name}_finger_joint1">
+                    <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+                </joint>
+                <actuator name="${robot_name}_finger_joint1">
+                    <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+                    <mechanicalReduction>1</mechanicalReduction>
+                </actuator>
+            </transmission>
+
+            <transmission name="${robot_name}_rightfinger">
+                <type>transmission_interface/SimpleTransmission</type>
+                <joint name="${robot_name}_finger_joint2">
+                    <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+                </joint>
+                <actuator name="${robot_name}_finger_joint2">
+                    <hardwareInterface>hardware_interface/PositionJointInterface</hardwareInterface>
+                    <mechanicalReduction>1</mechanicalReduction>
+                </actuator>
+            </transmission>
+        </xacro:if>
+    </xacro:macro>
+</robot>