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>