mirror of
https://github.com/wassname/kair_algorithms_draft.git
synced 2026-09-09 11:25:10 +08:00
Add overall structure to package
This commit is contained in:
+248
@@ -0,0 +1,248 @@
|
||||
################################################################################
|
||||
# Custom
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
# JetBrains.gitignore
|
||||
################################################################################
|
||||
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm
|
||||
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
||||
|
||||
# User-specific stuff
|
||||
.idea/**/workspace.xml
|
||||
.idea/**/tasks.xml
|
||||
.idea/**/usage.statistics.xml
|
||||
.idea/**/dictionaries
|
||||
.idea/**/shelf
|
||||
|
||||
# Generated files
|
||||
.idea/**/contentModel.xml
|
||||
|
||||
# Sensitive or high-churn files
|
||||
.idea/**/dataSources/
|
||||
.idea/**/dataSources.ids
|
||||
.idea/**/dataSources.local.xml
|
||||
.idea/**/sqlDataSources.xml
|
||||
.idea/**/dynamic.xml
|
||||
.idea/**/uiDesigner.xml
|
||||
.idea/**/dbnavigator.xml
|
||||
|
||||
# Gradle
|
||||
.idea/**/gradle.xml
|
||||
.idea/**/libraries
|
||||
|
||||
# Gradle and Maven with auto-import
|
||||
# When using Gradle or Maven with auto-import, you should exclude module files,
|
||||
# since they will be recreated, and may cause churn. Uncomment if using
|
||||
# auto-import.
|
||||
# .idea/modules.xml
|
||||
# .idea/*.iml
|
||||
# .idea/modules
|
||||
|
||||
# CMake
|
||||
cmake-build-*/
|
||||
|
||||
# Mongo Explorer plugin
|
||||
.idea/**/mongoSettings.xml
|
||||
|
||||
# File-based project format
|
||||
*.iws
|
||||
|
||||
# IntelliJ
|
||||
out/
|
||||
|
||||
# mpeltonen/sbt-idea plugin
|
||||
.idea_modules/
|
||||
|
||||
# JIRA plugin
|
||||
atlassian-ide-plugin.xml
|
||||
|
||||
# Cursive Clojure plugin
|
||||
.idea/replstate.xml
|
||||
|
||||
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||
com_crashlytics_export_strings.xml
|
||||
crashlytics.properties
|
||||
crashlytics-build.properties
|
||||
fabric.properties
|
||||
|
||||
# Editor-based Rest Client
|
||||
.idea/httpRequests
|
||||
|
||||
# Android studio 3.1+ serialized cache file
|
||||
.idea/caches/build_file_checksums.ser
|
||||
|
||||
################################################################################
|
||||
# Python.gitignore
|
||||
################################################################################
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
pip-wheel-metadata/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
.python-version
|
||||
|
||||
# celery beat schedule file
|
||||
celerybeat-schedule
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
################################################################################
|
||||
# ROS.gitignore
|
||||
################################################################################
|
||||
devel/
|
||||
logs/
|
||||
build/
|
||||
bin/
|
||||
lib/
|
||||
msg_gen/
|
||||
srv_gen/
|
||||
msg/*Action.msg
|
||||
msg/*ActionFeedback.msg
|
||||
msg/*ActionGoal.msg
|
||||
msg/*ActionResult.msg
|
||||
msg/*Feedback.msg
|
||||
msg/*Goal.msg
|
||||
msg/*Result.msg
|
||||
msg/_*.py
|
||||
build_isolated/
|
||||
devel_isolated/
|
||||
|
||||
# Generated by dynamic reconfigure
|
||||
*.cfgc
|
||||
/cfg/cpp/
|
||||
/cfg/*.py
|
||||
|
||||
# Ignore generated docs
|
||||
*.dox
|
||||
*.wikidoc
|
||||
|
||||
# eclipse stuff
|
||||
.project
|
||||
.cproject
|
||||
|
||||
# qcreator stuff
|
||||
CMakeLists.txt.user
|
||||
|
||||
srv/_*.py
|
||||
*.pcd
|
||||
*.pyc
|
||||
qtcreator-*
|
||||
*.user
|
||||
|
||||
/planning/cfg
|
||||
/planning/docs
|
||||
/planning/src
|
||||
|
||||
*~
|
||||
|
||||
# Emacs
|
||||
.#*
|
||||
|
||||
# Catkin custom files
|
||||
CATKIN_IGNORE
|
||||
+219
@@ -0,0 +1,219 @@
|
||||
cmake_minimum_required(VERSION 2.8.3)
|
||||
project(kair_algorithms)
|
||||
|
||||
## Compile as C++11, supported in ROS Kinetic and newer
|
||||
# add_compile_options(-std=c++11)
|
||||
|
||||
## Find catkin macros and libraries
|
||||
## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
|
||||
## is used, also find other catkin packages
|
||||
find_package(catkin REQUIRED COMPONENTS
|
||||
geometry_msgs
|
||||
rospy
|
||||
sensor_msgs
|
||||
std_msgs
|
||||
control_msgs
|
||||
trajectory_msgs
|
||||
)
|
||||
|
||||
add_message_files( DIRECTORY msg
|
||||
FILES
|
||||
GoalObs.msg
|
||||
)
|
||||
|
||||
|
||||
generate_messages(
|
||||
DEPENDENCIES
|
||||
std_msgs
|
||||
sensor_msgs
|
||||
)
|
||||
|
||||
|
||||
catkin_package(
|
||||
CATKIN_DEPENDS
|
||||
rospy
|
||||
message_generation
|
||||
message_runtime
|
||||
cv_bridge
|
||||
)
|
||||
|
||||
|
||||
## System dependencies are found with CMake's conventions
|
||||
# find_package(Boost REQUIRED COMPONENTS system)
|
||||
|
||||
|
||||
## Uncomment this if the package has a setup.py. This macro ensures
|
||||
## modules and global scripts declared therein get installed
|
||||
## See http://ros.org/doc/api/catkin/html/user_guide/setup_dot_py.html
|
||||
# catkin_python_setup()
|
||||
|
||||
################################################
|
||||
## Declare ROS messages, services and actions ##
|
||||
################################################
|
||||
|
||||
## To declare and build messages, services or actions from within this
|
||||
## package, follow these steps:
|
||||
## * Let MSG_DEP_SET be the set of packages whose message types you use in
|
||||
## your messages/services/actions (e.g. std_msgs, actionlib_msgs, ...).
|
||||
## * In the file package.xml:
|
||||
## * add a build_depend tag for "message_generation"
|
||||
## * add a build_depend and a run_depend tag for each package in MSG_DEP_SET
|
||||
## * If MSG_DEP_SET isn't empty the following dependency has been pulled in
|
||||
## but can be declared for certainty nonetheless:
|
||||
## * add a run_depend tag for "message_runtime"
|
||||
## * In this file (CMakeLists.txt):
|
||||
## * add "message_generation" and every package in MSG_DEP_SET to
|
||||
## find_package(catkin REQUIRED COMPONENTS ...)
|
||||
## * add "message_runtime" and every package in MSG_DEP_SET to
|
||||
## catkin_package(CATKIN_DEPENDS ...)
|
||||
## * uncomment the add_*_files sections below as needed
|
||||
## and list every .msg/.srv/.action file to be processed
|
||||
## * uncomment the generate_messages entry below
|
||||
## * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
|
||||
|
||||
|
||||
## Generate services in the 'srv' folder
|
||||
# add_service_files(
|
||||
# FILES
|
||||
# Service1.srv
|
||||
# Service2.srv
|
||||
# )
|
||||
|
||||
## Generate actions in the 'action' folder
|
||||
# add_action_files(
|
||||
# FILES
|
||||
# Action1.action
|
||||
# Action2.action
|
||||
# )
|
||||
|
||||
## Generate added messages and services with any dependencies listed here
|
||||
# generate_messages(
|
||||
# DEPENDENCIES
|
||||
# geometry_msgs# sensor_msgs# std_msgs
|
||||
# )
|
||||
|
||||
################################################
|
||||
## Declare ROS dynamic reconfigure parameters ##
|
||||
################################################
|
||||
|
||||
## To declare and build dynamic reconfigure parameters within this
|
||||
## package, follow these steps:
|
||||
## * In the file package.xml:
|
||||
## * add a build_depend and a run_depend tag for "dynamic_reconfigure"
|
||||
## * In this file (CMakeLists.txt):
|
||||
## * add "dynamic_reconfigure" to
|
||||
## find_package(catkin REQUIRED COMPONENTS ...)
|
||||
## * uncomment the "generate_dynamic_reconfigure_options" section below
|
||||
## and list every .cfg file to be processed
|
||||
|
||||
## Generate dynamic reconfigure parameters in the 'cfg' folder
|
||||
# generate_dynamic_reconfigure_options(
|
||||
# cfg/DynReconf1.cfg
|
||||
# cfg/DynReconf2.cfg
|
||||
# )
|
||||
|
||||
###################################
|
||||
## catkin specific configuration ##
|
||||
###################################
|
||||
## The catkin_package macro generates cmake config files for your package
|
||||
## Declare things to be passed to dependent projects
|
||||
## INCLUDE_DIRS: uncomment this if your package contains header files
|
||||
## LIBRARIES: libraries you create in this project that dependent projects also need
|
||||
## CATKIN_DEPENDS: catkin_packages dependent projects also need
|
||||
## DEPENDS: system dependencies of this project that dependent projects also need
|
||||
catkin_package(
|
||||
# INCLUDE_DIRS include
|
||||
# LIBRARIES DDPG
|
||||
# CATKIN_DEPENDS geometry_msgs rospy sensor_msgs std_msgs tf
|
||||
# DEPENDS system_lib
|
||||
CATKIN_DEPENDS message_runtime
|
||||
)
|
||||
|
||||
###########
|
||||
## Build ##
|
||||
###########
|
||||
|
||||
## Specify additional locations of header files
|
||||
## Your package locations should be listed before other locations
|
||||
include_directories(
|
||||
# include
|
||||
${catkin_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
## Declare a C++ library
|
||||
# add_library(${PROJECT_NAME}
|
||||
# src/${PROJECT_NAME}/DDPG.cpp
|
||||
# )
|
||||
|
||||
## Add cmake target dependencies of the library
|
||||
## as an example, code may need to be generated before libraries
|
||||
## either from message generation or dynamic reconfigure
|
||||
# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
|
||||
|
||||
## Declare a C++ executable
|
||||
## With catkin_make all packages are built within a single CMake context
|
||||
## The recommended prefix ensures that target names across packages don't collide
|
||||
# add_executable(${PROJECT_NAME}_node src/DDPG_node.cpp)
|
||||
|
||||
## Rename C++ executable without prefix
|
||||
## The above recommended prefix causes long target names, the following renames the
|
||||
## target back to the shorter version for ease of user use
|
||||
## e.g. "rosrun someones_pkg node" instead of "rosrun someones_pkg someones_pkg_node"
|
||||
# set_target_properties(${PROJECT_NAME}_node PROPERTIES OUTPUT_NAME node PREFIX "")
|
||||
|
||||
## Add cmake target dependencies of the executable
|
||||
## same as for the library above
|
||||
# add_dependencies(${PROJECT_NAME}_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})
|
||||
|
||||
## Specify libraries to link a library or executable target against
|
||||
# target_link_libraries(${PROJECT_NAME}_node
|
||||
# ${catkin_LIBRARIES}
|
||||
# )
|
||||
|
||||
#############
|
||||
## Install ##
|
||||
#############
|
||||
|
||||
# all install targets should use catkin DESTINATION variables
|
||||
# See http://ros.org/doc/api/catkin/html/adv_user_guide/variables.html
|
||||
|
||||
## Mark executable scripts (Python etc.) for installation
|
||||
## in contrast to setup.py, you can choose the destination
|
||||
# install(PROGRAMS
|
||||
# scripts/my_python_script
|
||||
# DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
|
||||
# )
|
||||
|
||||
## Mark executables and/or libraries for installation
|
||||
# install(TARGETS ${PROJECT_NAME} ${PROJECT_NAME}_node
|
||||
# ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
||||
# LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
|
||||
# RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
|
||||
# )
|
||||
|
||||
## Mark cpp header files for installation
|
||||
# install(DIRECTORY include/${PROJECT_NAME}/
|
||||
# DESTINATION ${CATKIN_PACKAGE_INCLUDE_DESTINATION}
|
||||
# FILES_MATCHING PATTERN "*.h"
|
||||
# PATTERN ".svn" EXCLUDE
|
||||
# )
|
||||
|
||||
## Mark other files for installation (e.g. launch and bag files, etc.)
|
||||
# install(FILES
|
||||
# # myfile1
|
||||
# # myfile2
|
||||
# DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
|
||||
# )
|
||||
|
||||
#############
|
||||
## Testing ##
|
||||
#############
|
||||
|
||||
## Add gtest based cpp test target and link libraries
|
||||
# catkin_add_gtest(${PROJECT_NAME}-test test/test_DDPG.cpp)
|
||||
# if(TARGET ${PROJECT_NAME}-test)
|
||||
# target_link_libraries(${PROJECT_NAME}-test ${PROJECT_NAME})
|
||||
# endif()
|
||||
|
||||
## Add folders to be run by python nosetests
|
||||
# catkin_add_nosetests(test)
|
||||
@@ -0,0 +1,34 @@
|
||||
# Research Repository Structure
|
||||
|
||||
We follow the `.git` strategy specified [here](https://answers.ros.org/question/257855/git-strategy-for-catkin-and-package-folders/), creating packages into separate repositories.
|
||||
|
||||
These are repositories checked to set this structure:
|
||||
- [cadrl_ros](https://github.com/mfe7/cadrl_ros)
|
||||
- [ros_best_practices](https://github.com/leggedrobotics/ros_best_practices)
|
||||
|
||||
## TODO
|
||||
|
||||
1. Add [medipixel/reinforcement_learning_examples](https://github.com/medipixel/reinforcement_learning_examples) to `/scripts/`.
|
||||
2. `launch` and `urdf` contains code for Sawyer robot. We plan to use OpenManipulator.
|
||||
3. `package.xml` should be updated appropriately.
|
||||
4. Get repository verified by a ROS expert.
|
||||
|
||||
## Repository Structure
|
||||
|
||||
```
|
||||
+ launch/ -
|
||||
+ msg/ - These are message descriptions for ROS.
|
||||
+ scripts/ - This directory contains RL algorithms.
|
||||
+ urdf/ - This package contains a C++ parser for the Unified Robot Description Format (URDF),
|
||||
- .flake8 - This file specifies what rules should be enforced via flake8.
|
||||
- .gitignore - This file specifies which folders and files to ignore in Git.
|
||||
- CMakeLists.txt - This file specifies behavior of CMake.
|
||||
- package.xml - This file specifies the ROS package.
|
||||
- README.md - You are here
|
||||
```
|
||||
|
||||
- **roslaunch/** [http://wiki.ros.org/roslaunch/XML](http://wiki.ros.org/roslaunch/XML).
|
||||
- **msg/** [http://wiki.ros.org/msg](http://wiki.ros.org/msg)
|
||||
- **urdf/** [http://wiki.ros.org/urdf](http://wiki.ros.org/urdf)
|
||||
- **CMakeLists.txt** [http://wiki.ros.org/catkin/CMakeLists.txt](http://wiki.ros.org/catkin/CMakeLists.txt)
|
||||
- **package.xml** [http://wiki.ros.org/catkin/package.xml](http://wiki.ros.org/catkin/package.xml)
|
||||
@@ -0,0 +1,13 @@
|
||||
<launch>
|
||||
|
||||
<!--Sawyer URDF-->
|
||||
<arg name="sawyer_urdf" value="robot_description"/>
|
||||
<param name="$(arg sawyer_urdf)" textfile="$(find ddpg)/urdf/sawyer.urdf"/>
|
||||
|
||||
<!--Target pose publishing node-->
|
||||
<!--node name="basic_ui" pkg="telehaptics" type="basic_ui.py" output="screen"/-->
|
||||
|
||||
<!--Bare velocity controller node -->
|
||||
<node name="velocity_control" pkg="ddpg" type="sawyer_velocity_control.py" output="screen"/>
|
||||
|
||||
</launch>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0"?>
|
||||
<launch>
|
||||
|
||||
<arg name="controllers" default="joint_state_controller joint_trajectory_vel_controller"/>
|
||||
<arg name="hardware_interface" default="hardware_interface/VelocityJointInterface"/>
|
||||
|
||||
<include file="$(find gazebo_ros)/launch/empty_world.launch">
|
||||
<arg name="paused" value="false"/>
|
||||
<arg name="use_sim_time" value="true"/>
|
||||
<arg name="gui" value="true"/>
|
||||
<arg name="headless" value="false"/>
|
||||
<arg name="debug" value="false"/>
|
||||
</include>
|
||||
|
||||
<!-- the urdf/sdf parameter -->
|
||||
<param name="robot_description"
|
||||
command="$(find xacro)/xacro.py $(find yumi_description)/urdf/yumi.urdf.xacro prefix:=$(arg hardware_interface)"/>
|
||||
|
||||
<node name="spawn_urdf" pkg="gazebo_ros" type="spawn_model" args="-param robot_description -urdf -model yumi" respawn="false" output="screen" />
|
||||
|
||||
|
||||
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher">
|
||||
<remap from="/joint_states" to="/yumi/joint_states" />
|
||||
</node>
|
||||
|
||||
<!-- Load joint controller configurations from YAML file to parameter server -->
|
||||
<rosparam file="$(find yumi_control)/config/controllers.yaml" command="load" ns="/yumi"/>
|
||||
|
||||
<!-- load the controllers -->
|
||||
<node name="controller_spawner" pkg="controller_manager" type="spawner" respawn="false" output="screen" args="$(arg controllers)" ns="/yumi">
|
||||
</node>
|
||||
|
||||
</launch>
|
||||
@@ -0,0 +1,7 @@
|
||||
##the name of the output
|
||||
Header header
|
||||
|
||||
float64[] goal_cart_pos
|
||||
|
||||
##the value to set output
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
<package format="2">
|
||||
<name>kair_algorithms</name>
|
||||
<version>0.0.0</version>
|
||||
<description>
|
||||
This package provides RL algorithms.
|
||||
</description>
|
||||
<maintainer email="todo@todo.todo">TODO</maintainer>
|
||||
<license>TODO</license>
|
||||
</package>
|
||||
@@ -0,0 +1,5 @@
|
||||
[flake8]
|
||||
ignore = E203, E266, E501, W503
|
||||
max-line-length = 88
|
||||
max-complexity = 18
|
||||
select = B,C,E,F,W,T4,B9
|
||||
@@ -0,0 +1,6 @@
|
||||
[settings]
|
||||
multi_line_output=3
|
||||
include_trailing_comma=True
|
||||
force_grid_wrap=0
|
||||
combine_as_imports=True
|
||||
line_length=88
|
||||
@@ -0,0 +1,573 @@
|
||||
[MASTER]
|
||||
|
||||
# A comma-separated list of package or module names from where C extensions may
|
||||
# be loaded. Extensions are loading into the active Python interpreter and may
|
||||
# run arbitrary code.
|
||||
extension-pkg-whitelist=
|
||||
|
||||
# Add files or directories to the blacklist. They should be base names, not
|
||||
# paths.
|
||||
ignore=CVS
|
||||
|
||||
# Add files or directories matching the regex patterns to the blacklist. The
|
||||
# regex matches against base names, not paths.
|
||||
ignore-patterns=
|
||||
|
||||
# Python code to execute, usually for sys.path manipulation such as
|
||||
# pygtk.require().
|
||||
#init-hook=
|
||||
|
||||
# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the
|
||||
# number of processors available to use.
|
||||
jobs=1
|
||||
|
||||
# Control the amount of potential inferred values when inferring a single
|
||||
# object. This can help the performance when dealing with large functions or
|
||||
# complex, nested conditions.
|
||||
limit-inference-results=100
|
||||
|
||||
# List of plugins (as comma separated values of python modules names) to load,
|
||||
# usually to register additional checkers.
|
||||
load-plugins=
|
||||
|
||||
# Pickle collected data for later comparisons.
|
||||
persistent=yes
|
||||
|
||||
# Specify a configuration file.
|
||||
#rcfile=
|
||||
|
||||
# When enabled, pylint would attempt to guess common misconfiguration and emit
|
||||
# user-friendly hints instead of false-positive error messages.
|
||||
suggestion-mode=yes
|
||||
|
||||
# Allow loading of arbitrary C extensions. Extensions are imported into the
|
||||
# active Python interpreter and may run arbitrary code.
|
||||
unsafe-load-any-extension=no
|
||||
|
||||
|
||||
[MESSAGES CONTROL]
|
||||
|
||||
# Only show warnings with the listed confidence levels. Leave empty to show
|
||||
# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED.
|
||||
confidence=
|
||||
|
||||
# Disable the message, report, category or checker with the given id(s). You
|
||||
# can either give multiple identifiers separated by comma (,) or put this
|
||||
# option multiple times (only on the command line, not in the configuration
|
||||
# file where it should appear only once). You can also use "--disable=all" to
|
||||
# disable everything first and then reenable specific checks. For example, if
|
||||
# you want to run only the similarities checker, you can use "--disable=all
|
||||
# --enable=similarities". If you want to run only the classes checker, but have
|
||||
# no Warning level messages displayed, use "--disable=all --enable=classes
|
||||
# --disable=W".
|
||||
disable=print-statement,
|
||||
bad-continuation,
|
||||
no-else-return,
|
||||
broad-except,
|
||||
missing-docstring,
|
||||
invalid-name,
|
||||
parameter-unpacking,
|
||||
unpacking-in-except,
|
||||
old-raise-syntax,
|
||||
backtick,
|
||||
long-suffix,
|
||||
old-ne-operator,
|
||||
old-octal-literal,
|
||||
import-star-module-level,
|
||||
non-ascii-bytes-literal,
|
||||
raw-checker-failed,
|
||||
bad-inline-option,
|
||||
locally-disabled,
|
||||
locally-enabled,
|
||||
file-ignored,
|
||||
suppressed-message,
|
||||
useless-suppression,
|
||||
deprecated-pragma,
|
||||
use-symbolic-message-instead,
|
||||
apply-builtin,
|
||||
basestring-builtin,
|
||||
buffer-builtin,
|
||||
cmp-builtin,
|
||||
coerce-builtin,
|
||||
execfile-builtin,
|
||||
file-builtin,
|
||||
long-builtin,
|
||||
raw_input-builtin,
|
||||
reduce-builtin,
|
||||
standarderror-builtin,
|
||||
unicode-builtin,
|
||||
xrange-builtin,
|
||||
coerce-method,
|
||||
delslice-method,
|
||||
getslice-method,
|
||||
setslice-method,
|
||||
no-absolute-import,
|
||||
old-division,
|
||||
dict-iter-method,
|
||||
dict-view-method,
|
||||
next-method-called,
|
||||
metaclass-assignment,
|
||||
indexing-exception,
|
||||
raising-string,
|
||||
reload-builtin,
|
||||
oct-method,
|
||||
hex-method,
|
||||
nonzero-method,
|
||||
cmp-method,
|
||||
input-builtin,
|
||||
round-builtin,
|
||||
intern-builtin,
|
||||
unichr-builtin,
|
||||
map-builtin-not-iterating,
|
||||
zip-builtin-not-iterating,
|
||||
range-builtin-not-iterating,
|
||||
filter-builtin-not-iterating,
|
||||
using-cmp-argument,
|
||||
eq-without-hash,
|
||||
div-method,
|
||||
idiv-method,
|
||||
rdiv-method,
|
||||
exception-message-attribute,
|
||||
invalid-str-codec,
|
||||
sys-max-int,
|
||||
bad-python3-import,
|
||||
deprecated-string-function,
|
||||
deprecated-str-translate-call,
|
||||
deprecated-itertools-function,
|
||||
deprecated-types-field,
|
||||
next-method-defined,
|
||||
dict-items-not-iterating,
|
||||
dict-keys-not-iterating,
|
||||
dict-values-not-iterating,
|
||||
deprecated-operator-function,
|
||||
deprecated-urllib-function,
|
||||
xreadlines-attribute,
|
||||
deprecated-sys-function,
|
||||
exception-escape,
|
||||
comprehension-escape,
|
||||
no-member,
|
||||
useless-import-alias,
|
||||
too-many-locals,
|
||||
too-few-public-methods,
|
||||
arguments-differ,
|
||||
duplicate-code,
|
||||
protected-access,
|
||||
too-many-instance-attributes,
|
||||
fixme
|
||||
|
||||
# Enable the message, report, category or checker with the given id(s). You can
|
||||
# either give multiple identifier separated by comma (,) or put this option
|
||||
# multiple time (only on the command line, not in the configuration file where
|
||||
# it should appear only once). See also the "--disable" option for examples.
|
||||
enable=c-extension-no-member
|
||||
|
||||
|
||||
[REPORTS]
|
||||
|
||||
# Python expression which should return a note less than 10 (10 is the highest
|
||||
# note). You have access to the variables errors warning, statement which
|
||||
# respectively contain the number of errors / warnings messages and the total
|
||||
# number of statements analyzed. This is used by the global evaluation report
|
||||
# (RP0004).
|
||||
evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10)
|
||||
|
||||
# Template used to display messages. This is a python new-style format string
|
||||
# used to format the message information. See doc for all details.
|
||||
#msg-template=
|
||||
|
||||
# Set the output format. Available formats are text, parseable, colorized, json
|
||||
# and msvs (visual studio). You can also give a reporter class, e.g.
|
||||
# mypackage.mymodule.MyReporterClass.
|
||||
output-format=text
|
||||
|
||||
# Tells whether to display a full report or only the messages.
|
||||
reports=no
|
||||
|
||||
# Activate the evaluation score.
|
||||
score=yes
|
||||
|
||||
|
||||
[REFACTORING]
|
||||
|
||||
# Maximum number of nested blocks for function / method body
|
||||
max-nested-blocks=5
|
||||
|
||||
# Complete name of functions that never returns. When checking for
|
||||
# inconsistent-return-statements if a never returning function is called then
|
||||
# it will be considered as an explicit return statement and no message will be
|
||||
# printed.
|
||||
never-returning-functions=sys.exit
|
||||
|
||||
|
||||
[LOGGING]
|
||||
|
||||
# Logging modules to check that the string format arguments are in logging
|
||||
# function parameter format.
|
||||
logging-modules=logging
|
||||
|
||||
|
||||
[SPELLING]
|
||||
|
||||
# Limits count of emitted suggestions for spelling mistakes.
|
||||
max-spelling-suggestions=4
|
||||
|
||||
# Spelling dictionary name. Available dictionaries: none. To make it working
|
||||
# install python-enchant package..
|
||||
spelling-dict=
|
||||
|
||||
# List of comma separated words that should not be checked.
|
||||
spelling-ignore-words=
|
||||
|
||||
# A path to a file that contains private dictionary; one word per line.
|
||||
spelling-private-dict-file=
|
||||
|
||||
# Tells whether to store unknown words to indicated private dictionary in
|
||||
# --spelling-private-dict-file option instead of raising a message.
|
||||
spelling-store-unknown-words=no
|
||||
|
||||
|
||||
[MISCELLANEOUS]
|
||||
|
||||
# List of note tags to take in consideration, separated by a comma.
|
||||
notes=FIXME,
|
||||
XXX,
|
||||
TODO
|
||||
|
||||
|
||||
[TYPECHECK]
|
||||
|
||||
# List of decorators that produce context managers, such as
|
||||
# contextlib.contextmanager. Add to this list to register other decorators that
|
||||
# produce valid context managers.
|
||||
contextmanager-decorators=contextlib.contextmanager
|
||||
|
||||
# List of members which are set dynamically and missed by pylint inference
|
||||
# system, and so shouldn't trigger E1101 when accessed. Python regular
|
||||
# expressions are accepted.
|
||||
generated-members=
|
||||
|
||||
# Tells whether missing members accessed in mixin class should be ignored. A
|
||||
# mixin class is detected if its name ends with "mixin" (case insensitive).
|
||||
ignore-mixin-members=yes
|
||||
|
||||
# Tells whether to warn about missing members when the owner of the attribute
|
||||
# is inferred to be None.
|
||||
ignore-none=yes
|
||||
|
||||
# This flag controls whether pylint should warn about no-member and similar
|
||||
# checks whenever an opaque object is returned when inferring. The inference
|
||||
# can return multiple potential results while evaluating a Python object, but
|
||||
# some branches might not be evaluated, which results in partial inference. In
|
||||
# that case, it might be useful to still emit no-member and other checks for
|
||||
# the rest of the inferred objects.
|
||||
ignore-on-opaque-inference=yes
|
||||
|
||||
# List of class names for which member attributes should not be checked (useful
|
||||
# for classes with dynamically set attributes). This supports the use of
|
||||
# qualified names.
|
||||
ignored-classes=optparse.Values,thread._local,_thread._local
|
||||
|
||||
# List of module names for which member attributes should not be checked
|
||||
# (useful for modules/projects where namespaces are manipulated during runtime
|
||||
# and thus existing member attributes cannot be deduced by static analysis. It
|
||||
# supports qualified module names, as well as Unix pattern matching.
|
||||
ignored-modules=
|
||||
|
||||
# Show a hint with possible names when a member name was not found. The aspect
|
||||
# of finding the hint is based on edit distance.
|
||||
missing-member-hint=yes
|
||||
|
||||
# The minimum edit distance a name should have in order to be considered a
|
||||
# similar match for a missing member name.
|
||||
missing-member-hint-distance=1
|
||||
|
||||
# The total number of similar names that should be taken in consideration when
|
||||
# showing a hint for a missing member.
|
||||
missing-member-max-choices=1
|
||||
|
||||
|
||||
[VARIABLES]
|
||||
|
||||
# List of additional names supposed to be defined in builtins. Remember that
|
||||
# you should avoid to define new builtins when possible.
|
||||
additional-builtins=
|
||||
|
||||
# Tells whether unused global variables should be treated as a violation.
|
||||
allow-global-unused-variables=yes
|
||||
|
||||
# List of strings which can identify a callback function by name. A callback
|
||||
# name must start or end with one of those strings.
|
||||
callbacks=cb_,
|
||||
_cb
|
||||
|
||||
# A regular expression matching the name of dummy variables (i.e. expected to
|
||||
# not be used).
|
||||
dummy-variables-rgx=_+$|(_[a-zA-Z0-9_]*[a-zA-Z0-9]+?$)|dummy|^ignored_|^unused_
|
||||
|
||||
# Argument names that match this expression will be ignored. Default to name
|
||||
# with leading underscore.
|
||||
ignored-argument-names=_.*|^ignored_|^unused_
|
||||
|
||||
# Tells whether we should check for unused import in __init__ files.
|
||||
init-import=no
|
||||
|
||||
# List of qualified module names which can have objects that can redefine
|
||||
# builtins.
|
||||
redefining-builtins-modules=six.moves,past.builtins,future.builtins,builtins,io
|
||||
|
||||
|
||||
[FORMAT]
|
||||
|
||||
# Expected format of line ending, e.g. empty (any line ending), LF or CRLF.
|
||||
expected-line-ending-format=
|
||||
|
||||
# Regexp for a line that is allowed to be longer than the limit.
|
||||
ignore-long-lines=^\s*(# )?<?https?://\S+>?$
|
||||
|
||||
# Number of spaces of indent required inside a hanging or continued line.
|
||||
indent-after-paren=4
|
||||
|
||||
# String used as indentation unit. This is usually " " (4 spaces) or "\t" (1
|
||||
# tab).
|
||||
indent-string=' '
|
||||
|
||||
# Maximum number of characters on a single line.
|
||||
max-line-length=100
|
||||
|
||||
# Maximum number of lines in a module.
|
||||
max-module-lines=1000
|
||||
|
||||
# List of optional constructs for which whitespace checking is disabled. `dict-
|
||||
# separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}.
|
||||
# `trailing-comma` allows a space between comma and closing bracket: (a, ).
|
||||
# `empty-line` allows space-only lines.
|
||||
no-space-check=trailing-comma,
|
||||
dict-separator
|
||||
|
||||
# Allow the body of a class to be on the same line as the declaration if body
|
||||
# contains single statement.
|
||||
single-line-class-stmt=no
|
||||
|
||||
# Allow the body of an if to be on the same line as the test if there is no
|
||||
# else.
|
||||
single-line-if-stmt=no
|
||||
|
||||
|
||||
[SIMILARITIES]
|
||||
|
||||
# Ignore comments when computing similarities.
|
||||
ignore-comments=yes
|
||||
|
||||
# Ignore docstrings when computing similarities.
|
||||
ignore-docstrings=yes
|
||||
|
||||
# Ignore imports when computing similarities.
|
||||
ignore-imports=no
|
||||
|
||||
# Minimum lines number of a similarity.
|
||||
min-similarity-lines=4
|
||||
|
||||
|
||||
[BASIC]
|
||||
|
||||
# Naming style matching correct argument names.
|
||||
argument-naming-style=snake_case
|
||||
|
||||
# Regular expression matching correct argument names. Overrides argument-
|
||||
# naming-style.
|
||||
#argument-rgx=
|
||||
|
||||
# Naming style matching correct attribute names.
|
||||
attr-naming-style=snake_case
|
||||
|
||||
# Regular expression matching correct attribute names. Overrides attr-naming-
|
||||
# style.
|
||||
#attr-rgx=
|
||||
|
||||
# Bad variable names which should always be refused, separated by a comma.
|
||||
bad-names=foo,
|
||||
bar,
|
||||
baz,
|
||||
toto,
|
||||
tutu,
|
||||
tata
|
||||
|
||||
# Naming style matching correct class attribute names.
|
||||
class-attribute-naming-style=any
|
||||
|
||||
# Regular expression matching correct class attribute names. Overrides class-
|
||||
# attribute-naming-style.
|
||||
#class-attribute-rgx=
|
||||
|
||||
# Naming style matching correct class names.
|
||||
class-naming-style=PascalCase
|
||||
|
||||
# Regular expression matching correct class names. Overrides class-naming-
|
||||
# style.
|
||||
#class-rgx=
|
||||
|
||||
# Naming style matching correct constant names.
|
||||
const-naming-style=UPPER_CASE
|
||||
|
||||
# Regular expression matching correct constant names. Overrides const-naming-
|
||||
# style.
|
||||
#const-rgx=
|
||||
|
||||
# Minimum line length for functions/classes that require docstrings, shorter
|
||||
# ones are exempt.
|
||||
docstring-min-length=-1
|
||||
|
||||
# Naming style matching correct function names.
|
||||
function-naming-style=snake_case
|
||||
|
||||
# Regular expression matching correct function names. Overrides function-
|
||||
# naming-style.
|
||||
#function-rgx=
|
||||
|
||||
# Good variable names which should always be accepted, separated by a comma.
|
||||
good-names=i,
|
||||
j,
|
||||
k,
|
||||
ex,
|
||||
Run,
|
||||
ch
|
||||
_
|
||||
|
||||
# Include a hint for the correct naming format with invalid-name.
|
||||
include-naming-hint=no
|
||||
|
||||
# Naming style matching correct inline iteration names.
|
||||
inlinevar-naming-style=any
|
||||
|
||||
# Regular expression matching correct inline iteration names. Overrides
|
||||
# inlinevar-naming-style.
|
||||
#inlinevar-rgx=
|
||||
|
||||
# Naming style matching correct method names.
|
||||
method-naming-style=snake_case
|
||||
|
||||
# Regular expression matching correct method names. Overrides method-naming-
|
||||
# style.
|
||||
#method-rgx=
|
||||
|
||||
# Naming style matching correct module names.
|
||||
module-naming-style=snake_case
|
||||
|
||||
# Regular expression matching correct module names. Overrides module-naming-
|
||||
# style.
|
||||
#module-rgx=
|
||||
|
||||
# Colon-delimited sets of names that determine each other's naming style when
|
||||
# the name regexes allow several styles.
|
||||
name-group=
|
||||
|
||||
# Regular expression which should only match function or class names that do
|
||||
# not require a docstring.
|
||||
no-docstring-rgx=^_
|
||||
|
||||
# List of decorators that produce properties, such as abc.abstractproperty. Add
|
||||
# to this list to register other decorators that produce valid properties.
|
||||
# These decorators are taken in consideration only for invalid-name.
|
||||
property-classes=abc.abstractproperty
|
||||
|
||||
# Naming style matching correct variable names.
|
||||
variable-naming-style=snake_case
|
||||
|
||||
# Regular expression matching correct variable names. Overrides variable-
|
||||
# naming-style.
|
||||
#variable-rgx=
|
||||
|
||||
|
||||
[IMPORTS]
|
||||
|
||||
# Allow wildcard imports from modules that define __all__.
|
||||
allow-wildcard-with-all=no
|
||||
|
||||
# Analyse import fallback blocks. This can be used to support both Python 2 and
|
||||
# 3 compatible code, which means that the block might have code that exists
|
||||
# only in one or another interpreter, leading to false positives when analysed.
|
||||
analyse-fallback-blocks=no
|
||||
|
||||
# Deprecated modules which should not be used, separated by a comma.
|
||||
deprecated-modules=optparse,tkinter.tix
|
||||
|
||||
# Create a graph of external dependencies in the given file (report RP0402 must
|
||||
# not be disabled).
|
||||
ext-import-graph=
|
||||
|
||||
# Create a graph of every (i.e. internal and external) dependencies in the
|
||||
# given file (report RP0402 must not be disabled).
|
||||
import-graph=
|
||||
|
||||
# Create a graph of internal dependencies in the given file (report RP0402 must
|
||||
# not be disabled).
|
||||
int-import-graph=
|
||||
|
||||
# Force import order to recognize a module as part of the standard
|
||||
# compatibility libraries.
|
||||
known-standard-library=
|
||||
|
||||
# Force import order to recognize a module as part of a third party library.
|
||||
known-third-party=enchant
|
||||
|
||||
|
||||
[CLASSES]
|
||||
|
||||
# List of method names used to declare (i.e. assign) instance attributes.
|
||||
defining-attr-methods=__init__,
|
||||
__new__,
|
||||
setUp
|
||||
|
||||
# List of member names, which should be excluded from the protected access
|
||||
# warning.
|
||||
exclude-protected=_asdict,
|
||||
_fields,
|
||||
_replace,
|
||||
_source,
|
||||
_make
|
||||
|
||||
# List of valid names for the first argument in a class method.
|
||||
valid-classmethod-first-arg=cls
|
||||
|
||||
# List of valid names for the first argument in a metaclass class method.
|
||||
valid-metaclass-classmethod-first-arg=cls
|
||||
|
||||
|
||||
[DESIGN]
|
||||
|
||||
# Maximum number of arguments for function / method.
|
||||
max-args=10
|
||||
|
||||
# Maximum number of attributes for a class (see R0902).
|
||||
max-attributes=7
|
||||
|
||||
# Maximum number of boolean expressions in an if statement.
|
||||
max-bool-expr=5
|
||||
|
||||
# Maximum number of branch for function / method body.
|
||||
max-branches=12
|
||||
|
||||
# Maximum number of locals for function / method body.
|
||||
max-locals=15
|
||||
|
||||
# Maximum number of parents for a class (see R0901).
|
||||
max-parents=7
|
||||
|
||||
# Maximum number of public methods for a class (see R0904).
|
||||
max-public-methods=20
|
||||
|
||||
# Maximum number of return / yield for function / method body.
|
||||
max-returns=6
|
||||
|
||||
# Maximum number of statements in function / method body.
|
||||
max-statements=55
|
||||
|
||||
# Minimum number of public methods for a class (see R0903).
|
||||
min-public-methods=2
|
||||
|
||||
|
||||
[EXCEPTIONS]
|
||||
|
||||
# Exceptions that will emit a warning when being caught. Defaults to
|
||||
# "Exception".
|
||||
overgeneral-exceptions=Exception
|
||||
@@ -0,0 +1,5 @@
|
||||
# Global options:
|
||||
|
||||
[mypy]
|
||||
python_version = 3.6
|
||||
ignore_missing_imports = True
|
||||
+1558
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,44 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="rethink_connector_plate">
|
||||
<xacro:macro name="rethink_connector_plate" params="side gazebo">
|
||||
<xacro:property name="rethink_connector_plate_length" value="0.0151" scope="global"/>
|
||||
<link name="${side}_connector_plate_base">
|
||||
<inertial>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<mass value="0.0" />
|
||||
<inertia ixx="6.9922E-05" ixy="6.1026E-08" ixz="-1.7042E-06"
|
||||
iyy="6.8188E-05" iyz="-1.6118E-08" izz="0.00012392" />
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin xyz="0 0 0" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/connector_plate/connector_plate.STL" />
|
||||
</geometry>
|
||||
<material name="black">
|
||||
<color rgba="0.05 0.05 0.05 1" />
|
||||
</material>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin xyz="0 0 0.0135" rpy="0 0 0" />
|
||||
<geometry>
|
||||
<cylinder length="${rethink_connector_plate_length*2.0}" radius="0.04"/>
|
||||
</geometry>
|
||||
<material name="darkred">
|
||||
<color rgba=".5 .1 .1 1"/>
|
||||
</material>
|
||||
</collision>
|
||||
</link>
|
||||
<xacro:if value="${gazebo}">
|
||||
<gazebo reference="${side}_connector_plate_base">
|
||||
<material>Gazebo/FlatBlack</material>
|
||||
</gazebo>
|
||||
</xacro:if>
|
||||
<link name="${side}_connector_plate_mount" />
|
||||
<joint name="${side}_connector_plate_mount_joint" type="fixed">
|
||||
<origin xyz="0 0 ${rethink_connector_plate_length+0.0025}" rpy="0 0 0" />
|
||||
<parent link="${side}_connector_plate_base" />
|
||||
<child link="${side}_connector_plate_mount" />
|
||||
</joint>
|
||||
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,32 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot name="base_collision">
|
||||
<link name="controller_box">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="-0.325 0 -0.38"/>
|
||||
<geometry>
|
||||
<box size="0.22 0.4 0.53"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<joint name="controller_box_fixed" type="fixed">
|
||||
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
|
||||
<parent link="base" />
|
||||
<child link="controller_box" />
|
||||
</joint>
|
||||
|
||||
<link name="pedestal_feet">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="-0.1225 0 -0.758"/>
|
||||
<geometry>
|
||||
<box size="0.77 0.7 0.31"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
|
||||
<joint name="pedestal_feet_fixed" type="fixed">
|
||||
<origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
|
||||
<parent link="base" />
|
||||
<child link="pedestal_feet" />
|
||||
</joint>
|
||||
</robot>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="right_electric_gripper">
|
||||
<xacro:include filename="$(find intera_tools_description)/urdf/electric_gripper/rethink_electric_gripper.xacro" />
|
||||
<xacro:rethink_electric_gripper side="right"
|
||||
l_finger="standard_narrow"
|
||||
l_finger_slot="2"
|
||||
l_finger_tip="basic_hard_tip"
|
||||
l_finger_grasp="inner"
|
||||
r_finger="standard_narrow"
|
||||
r_finger_slot="2"
|
||||
r_finger_tip="basic_hard_tip"
|
||||
r_finger_grasp="inner"
|
||||
use_connector_plate="True"/>
|
||||
</robot>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="basic_hard_tip">
|
||||
<xacro:macro name="finger_tip_xacro" params="parent_link reflect grasp *joint_origin">
|
||||
<xacro:property name="g_reflect" value="${reflect}" scope="local"/>
|
||||
<xacro:if value="${grasp == 'outer'}">
|
||||
<xacro:property name="g_reflect" value="${-reflect}" scope="local"/>
|
||||
</xacro:if>
|
||||
<link name="${parent_link}_tip">
|
||||
<visual>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/electric_gripper/fingers/basic_hard_tip.DAE" />
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 ${-0.0045*g_reflect} -0.015"/>
|
||||
<geometry>
|
||||
<box size="0.016 0.0065 0.037"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 0 0"/>
|
||||
<mass value="0.001"/>
|
||||
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<joint name="${parent_link}_tip_joint" type="fixed">
|
||||
<xacro:insert_block name="joint_origin" />
|
||||
<parent link="${parent_link}"/>
|
||||
<child link="${parent_link}_tip"/>
|
||||
</joint>
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="basic_soft_tip">
|
||||
<xacro:macro name="finger_tip_xacro" params="parent_link reflect grasp *joint_origin">
|
||||
<xacro:property name="g_reflect" value="${reflect}" scope="local"/>
|
||||
<xacro:if value="${grasp == 'outer'}">
|
||||
<xacro:property name="g_reflect" value="${-reflect}" scope="local"/>
|
||||
</xacro:if>
|
||||
<link name="${parent_link}_tip">
|
||||
<visual>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/electric_gripper/fingers/basic_soft_tip.DAE" />
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 ${-0.0045*g_reflect} -0.015"/>
|
||||
<geometry>
|
||||
<box size="0.016 0.007 0.037"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 0 0"/>
|
||||
<mass value="0.001"/>
|
||||
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<joint name="${parent_link}_tip_joint" type="fixed">
|
||||
<xacro:insert_block name="joint_origin" />
|
||||
<parent link="${parent_link}"/>
|
||||
<child link="${parent_link}_tip"/>
|
||||
</joint>
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="extended_narrow">
|
||||
<xacro:macro name="finger_xacro" params="gripper_side finger_side reflect finger_tip finger_grasp gazebo">
|
||||
<xacro:property name="finger_length" value="0.1127" scope="global"/>
|
||||
<xacro:property name="finger_width" value="0.01725" scope="local"/>
|
||||
<link name="${gripper_side}_gripper_${finger_side}_finger">
|
||||
<visual>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/electric_gripper/fingers/extended_narrow.DAE" />
|
||||
</geometry>
|
||||
</visual>
|
||||
<xacro:property name="finger_box_height" value="0.01" scope="local"/>
|
||||
<xacro:property name="finger_box_width" value="0.0135" scope="local"/>
|
||||
<xacro:property name="finger_box_length" value="0.0615" scope="local"/>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 ${finger_width*reflect} ${finger_box_length}"/>
|
||||
<geometry>
|
||||
<box size="${finger_box_height} ${finger_box_width} ${finger_length}"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<xacro:property name="knuckle_box_height" value="0.01" scope="local"/>
|
||||
<xacro:property name="knuckle_box_width" value="0.017" scope="local"/>
|
||||
<xacro:property name="knuckle_box_length" value="${finger_width + 0.03275}" scope="local"/>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="${reflect*-0.005} ${-0.003*reflect} 0.0083"/>
|
||||
<geometry>
|
||||
<box size="${knuckle_box_height} ${knuckle_box_length} ${knuckle_box_width}"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 0 0"/>
|
||||
<mass value="0.001"/>
|
||||
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<xacro:if value="${gazebo}">
|
||||
<gazebo reference="${gripper_side}_gripper_${finger_side}_finger">
|
||||
<mu1>1000</mu1>
|
||||
<mu2>1000</mu2>
|
||||
<fdir1>0.0 0.0 1.0</fdir1>
|
||||
<kp>1e5</kp>
|
||||
<kd>1.0</kd>
|
||||
</gazebo>
|
||||
</xacro:if>
|
||||
|
||||
<xacro:property name="none" value="[none, false, null, empty]" scope="local"/>
|
||||
<xacro:if value="${finger_tip in none}">
|
||||
<xacro:property name="finger_tip" value="none" scope="local"/>
|
||||
</xacro:if>
|
||||
<xacro:include filename="$(find intera_tools_description)/urdf/electric_gripper/fingers/${finger_tip}.xacro" />
|
||||
<xacro:finger_tip_xacro parent_link="${gripper_side}_gripper_${finger_side}_finger" reflect="${reflect}" grasp="${finger_grasp}">
|
||||
<origin rpy="0 0 0" xyz="0.0 ${reflect*finger_width} ${finger_length}"/>
|
||||
</xacro:finger_tip_xacro>
|
||||
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="wide_extended">
|
||||
<xacro:macro name="finger_xacro" params="gripper_side finger_side reflect finger_tip finger_grasp gazebo">
|
||||
<xacro:property name="finger_length" value="0.1127" scope="global"/>
|
||||
<xacro:property name="finger_width" value="0.05503" scope="local"/>
|
||||
<link name="${gripper_side}_gripper_${finger_side}_finger">
|
||||
<visual>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/electric_gripper/fingers/extended_wide.DAE" />
|
||||
</geometry>
|
||||
</visual>
|
||||
<xacro:property name="finger_box_height" value="0.01" scope="local"/>
|
||||
<xacro:property name="finger_box_width" value="0.0135" scope="local"/>
|
||||
<xacro:property name="finger_box_length" value="0.0615" scope="local"/>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 ${finger_width*reflect} ${finger_box_length}"/>
|
||||
<geometry>
|
||||
<box size="${finger_box_height} ${finger_box_width} ${finger_length}"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<xacro:property name="knuckle_box_height" value="0.01" scope="local"/>
|
||||
<xacro:property name="knuckle_box_width" value="0.017" scope="local"/>
|
||||
<xacro:property name="knuckle_box_length" value="${finger_width + 0.03275}" scope="local"/>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="${reflect*-0.005} ${0.016*reflect} 0.0083"/>
|
||||
<geometry>
|
||||
<box size="${knuckle_box_height} ${knuckle_box_length} ${knuckle_box_width}"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 0 0"/>
|
||||
<mass value="0.001"/>
|
||||
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<xacro:if value="${gazebo}">
|
||||
<gazebo reference="${gripper_side}_gripper_${finger_side}_finger">
|
||||
<mu1>1000</mu1>
|
||||
<mu2>1000</mu2>
|
||||
<fdir1>0.0 0.0 1.0</fdir1>
|
||||
<kp>1e5</kp>
|
||||
<kd>1.0</kd>
|
||||
</gazebo>
|
||||
</xacro:if>
|
||||
|
||||
<xacro:property name="none" value="[none, false, null, empty]" scope="local"/>
|
||||
<xacro:if value="${finger_tip in none}">
|
||||
<xacro:property name="finger_tip" value="none" scope="local"/>
|
||||
</xacro:if>
|
||||
<xacro:include filename="$(find intera_tools_description)/urdf/electric_gripper/fingers/${finger_tip}.xacro" />
|
||||
<xacro:finger_tip_xacro parent_link="${gripper_side}_gripper_${finger_side}_finger" reflect="${reflect}" grasp="${finger_grasp}">
|
||||
<origin rpy="0 0 0" xyz="0.0 ${reflect*finger_width} ${finger_length}"/>
|
||||
</xacro:finger_tip_xacro>
|
||||
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="half_round_tip">
|
||||
<xacro:macro name="finger_tip_xacro" params="parent_link reflect grasp *joint_origin">
|
||||
<xacro:property name="g_reflect" value="${reflect}" scope="local"/>
|
||||
<xacro:if value="${grasp == 'outer'}">
|
||||
<xacro:property name="g_reflect" value="${-reflect}" scope="local"/>
|
||||
</xacro:if>
|
||||
<link name="${parent_link}_tip">
|
||||
<visual>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/electric_gripper/fingers/half_round_tip.DAE" />
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 ${-0.0045*g_reflect} -0.015"/>
|
||||
<geometry>
|
||||
<cylinder length="0.037" radius="0.008"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 0 0"/>
|
||||
<mass value="0.001"/>
|
||||
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<joint name="${parent_link}_tip_joint" type="fixed">
|
||||
<xacro:insert_block name="joint_origin" />
|
||||
<parent link="${parent_link}"/>
|
||||
<child link="${parent_link}_tip"/>
|
||||
</joint>
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="none_tip">
|
||||
<xacro:macro name="finger_tip_xacro" params="parent_link grip reflect *joint_origin">
|
||||
<link name="${parent_link}_tip">
|
||||
</link>
|
||||
|
||||
<joint name="${parent_link}_tip_joint" type="fixed">
|
||||
<xacro:insert_block name="joint_origin" />
|
||||
<parent link="${parent_link}"/>
|
||||
<child link="${parent_link}_tip"/>
|
||||
</joint>
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,34 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="paddle_tip">
|
||||
<xacro:macro name="finger_tip_xacro" params="parent_link reflect grasp *joint_origin">
|
||||
<xacro:property name="g_reflect" value="${reflect}" scope="local"/>
|
||||
<xacro:if value="${grasp == 'outer'}">
|
||||
<xacro:property name="g_reflect" value="${-reflect}" scope="local"/>
|
||||
</xacro:if>
|
||||
<link name="${parent_link}_tip">
|
||||
<visual>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/electric_gripper/fingers/paddle_tip.DAE" />
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 ${-0.0045*g_reflect} -0.015"/>
|
||||
<geometry>
|
||||
<box size="0.042 0.0065 0.037"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 ${pi*(g_reflect+1)/2}" xyz="0 0 0"/>
|
||||
<mass value="0.001"/>
|
||||
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<joint name="${parent_link}_tip_joint" type="fixed">
|
||||
<xacro:insert_block name="joint_origin" />
|
||||
<parent link="${parent_link}"/>
|
||||
<child link="${parent_link}_tip"/>
|
||||
</joint>
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="standard_narrow">
|
||||
<xacro:macro name="finger_xacro" params="gripper_side finger_side reflect finger_tip finger_grasp gazebo">
|
||||
<xacro:property name="finger_length" value="0.075" scope="global"/>
|
||||
<xacro:property name="finger_width" value="0.01725" scope="local"/>
|
||||
<link name="${gripper_side}_gripper_${finger_side}_finger">
|
||||
<visual>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/electric_gripper/fingers/standard_narrow.DAE" />
|
||||
</geometry>
|
||||
</visual>
|
||||
<xacro:property name="finger_box_height" value="0.01" scope="local"/>
|
||||
<xacro:property name="finger_box_width" value="0.0135" scope="local"/>
|
||||
<xacro:property name="finger_box_length" value="0.04" scope="local"/>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 ${finger_width*reflect} ${finger_box_length}"/>
|
||||
<geometry>
|
||||
<box size="${finger_box_height} ${finger_box_width} ${finger_length}"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<xacro:property name="knuckle_box_height" value="0.01" scope="local"/>
|
||||
<xacro:property name="knuckle_box_width" value="0.017" scope="local"/>
|
||||
<xacro:property name="knuckle_box_length" value="${finger_width + 0.03275}" scope="local"/>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="${reflect*-0.005} ${-0.003*reflect} 0.0083"/>
|
||||
<geometry>
|
||||
<box size="${knuckle_box_height} ${knuckle_box_length} ${knuckle_box_width}"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 0 0"/>
|
||||
<mass value="0.001"/>
|
||||
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<xacro:if value="${gazebo}">
|
||||
<gazebo reference="${gripper_side}_gripper_${finger_side}_finger">
|
||||
<mu1>1000</mu1>
|
||||
<mu2>1000</mu2>
|
||||
<fdir1>0.0 0.0 1.0</fdir1>
|
||||
<kp>1e5</kp>
|
||||
<kd>1.0</kd>
|
||||
</gazebo>
|
||||
</xacro:if>
|
||||
|
||||
<xacro:property name="none" value="[none, false, null, empty]" scope="local"/>
|
||||
<xacro:if value="${finger_tip in none}">
|
||||
<xacro:property name="finger_tip" value="none" scope="local"/>
|
||||
</xacro:if>
|
||||
<xacro:include filename="$(find intera_tools_description)/urdf/electric_gripper/fingers/${finger_tip}.xacro" />
|
||||
<xacro:finger_tip_xacro parent_link="${gripper_side}_gripper_${finger_side}_finger" reflect="${reflect}" grasp="${finger_grasp}">
|
||||
<origin rpy="0 0 0" xyz="0.0 ${reflect*finger_width} ${finger_length}"/>
|
||||
</xacro:finger_tip_xacro>
|
||||
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,58 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="standard_wide">
|
||||
<xacro:macro name="finger_xacro" params="gripper_side finger_side reflect finger_tip finger_grasp gazebo">
|
||||
<xacro:property name="finger_length" value="0.075" scope="global"/>
|
||||
<xacro:property name="finger_width" value="0.05503" scope="local"/>
|
||||
<link name="${gripper_side}_gripper_${finger_side}_finger">
|
||||
<visual>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/electric_gripper/fingers/standard_wide.DAE" />
|
||||
</geometry>
|
||||
</visual>
|
||||
<xacro:property name="finger_box_height" value="0.01" scope="local"/>
|
||||
<xacro:property name="finger_box_width" value="0.0135" scope="local"/>
|
||||
<xacro:property name="finger_box_length" value="0.04" scope="local"/>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 ${finger_width*reflect} ${finger_box_length}"/>
|
||||
<geometry>
|
||||
<box size="${finger_box_height} ${finger_box_width} ${finger_length}"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<xacro:property name="knuckle_box_height" value="0.01" scope="local"/>
|
||||
<xacro:property name="knuckle_box_width" value="0.017" scope="local"/>
|
||||
<xacro:property name="knuckle_box_length" value="${finger_width + 0.03275}" scope="local"/>
|
||||
<collision>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="${reflect*-0.005} ${0.016*reflect} 0.0083"/>
|
||||
<geometry>
|
||||
<box size="${knuckle_box_height} ${knuckle_box_length} ${knuckle_box_width}"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 ${-pi/2*(reflect+1)}" xyz="0 0 0"/>
|
||||
<mass value="0.001"/>
|
||||
<inertia ixx="0.01" ixy="0" ixz="0" iyy="0.01" iyz="0" izz="0.01"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<xacro:if value="${gazebo}">
|
||||
<gazebo reference="${gripper_side}_gripper_${finger_side}_finger">
|
||||
<mu1>1000</mu1>
|
||||
<mu2>1000</mu2>
|
||||
<fdir1>0.0 0.0 1.0</fdir1>
|
||||
<kp>1e5</kp>
|
||||
<kd>1.0</kd>
|
||||
</gazebo>
|
||||
</xacro:if>
|
||||
|
||||
<xacro:property name="none" value="[none, false, null, empty]" scope="local"/>
|
||||
<xacro:if value="${finger_tip in none}">
|
||||
<xacro:property name="finger_tip" value="none" scope="local"/>
|
||||
</xacro:if>
|
||||
<xacro:include filename="$(find intera_tools_description)/urdf/electric_gripper/fingers/${finger_tip}.xacro" />
|
||||
<xacro:finger_tip_xacro parent_link="${gripper_side}_gripper_${finger_side}_finger" reflect="${reflect}" grasp="${finger_grasp}">
|
||||
<origin rpy="0 0 0" xyz="0.0 ${reflect*finger_width} ${finger_length}"/>
|
||||
</xacro:finger_tip_xacro>
|
||||
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,156 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="rethink_electric_gripper">
|
||||
<xacro:macro name="rethink_electric_gripper" params="side r_finger r_finger_slot r_finger_tip r_finger_grasp l_finger l_finger_slot l_finger_tip l_finger_grasp use_connector_plate gazebo">
|
||||
<xacro:property name="gripper_side" value="${side}" scope="local"/>
|
||||
|
||||
<!-- Base of whole end effector - (Connector Plate + Electric Gripper + Fingers + Tips) -->
|
||||
<link name="${side}_gripper_base">
|
||||
<inertial>
|
||||
<!-- Sum Gripper Mass - for whole end effector, measured from end of plastic cuff -->
|
||||
<mass value="0.47"/>
|
||||
<origin rpy="0 0 0" xyz="0.0028 -0.0004 0.0343"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<!-- Electric Gripper Base Link -->
|
||||
<link name="${side}_electric_gripper_base">
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/electric_gripper/electric_gripper_base.DAE"/>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="${-pi/2} ${pi} 0" xyz="0.004 0.0 0.025"/>
|
||||
<geometry>
|
||||
<cylinder length="0.1" radius="0.029"/>
|
||||
</geometry>
|
||||
<material name="darkred">
|
||||
<color rgba=".5 .1 .1 1"/>
|
||||
</material>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="${-pi/2} ${pi} 0" xyz="0.0 0.0 0.0"/>
|
||||
<mass value="2e-06"/>
|
||||
<inertia ixx="1.1e-09" ixy="0" ixz="0" iyy="1.1e-09" iyz="0" izz="1.1e-09"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<xacro:unless value="${use_connector_plate}">
|
||||
<xacro:property name="electric_gripper_parent_link" value="${side}_gripper_base" scope="local"/>
|
||||
<xacro:property name="connector_plate_length" value="0.0" scope="local"/>
|
||||
</xacro:unless>
|
||||
<xacro:if value="${use_connector_plate}">
|
||||
<!-- Connector Plate Joint -->
|
||||
<joint name="${side}_connector_plate_base_joint" type="fixed">
|
||||
<origin xyz="0 0 0.0018" rpy="0 0 0" />
|
||||
<parent link="${side}_gripper_base" />
|
||||
<child link="${side}_connector_plate_base" />
|
||||
</joint>
|
||||
<!-- Connector Plate Link -->
|
||||
<xacro:include filename="$(find ddpg)/urdf/connector_plate/connector_plate.xacro" />
|
||||
<xacro:rethink_connector_plate side="${side}" gazebo="${gazebo}"/>
|
||||
<xacro:property name="electric_gripper_parent_link" value="${side}_connector_plate_mount" scope="local"/>
|
||||
<xacro:property name="connector_plate_length" value="${rethink_connector_plate_length}" scope="local"/>
|
||||
</xacro:if>
|
||||
|
||||
<!-- Electric Gripper Base joint -->
|
||||
<joint name="${side}_electric_gripper_base_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<parent link="${electric_gripper_parent_link}"/>
|
||||
<child link="${side}_electric_gripper_base"/>
|
||||
</joint>
|
||||
|
||||
<!-- Left finger link -->
|
||||
<xacro:property name="finger_length" value="0.0" scope="global"/>
|
||||
<xacro:include filename="$(find ddpg)/urdf/electric_gripper/fingers/${l_finger}.xacro" />
|
||||
<xacro:finger_xacro gripper_side="${gripper_side}" finger_side="l" reflect="1" finger_tip="${l_finger_tip}" finger_grasp="${l_finger_grasp}" gazebo="${gazebo}"/>
|
||||
<xacro:property name="tip_finger_length" value="${finger_length}" scope="local"/>
|
||||
|
||||
<!-- Right finger link -->
|
||||
<xacro:include filename="$(find ddpg)/urdf/electric_gripper/fingers/${r_finger}.xacro" />
|
||||
<xacro:finger_xacro gripper_side="${gripper_side}" finger_side="r" reflect="-1" finger_tip="${r_finger_tip}" finger_grasp="${r_finger_grasp}" gazebo="${gazebo}"/>
|
||||
<xacro:if value="${finger_length > tip_finger_length}">
|
||||
<xacro:property name="tip_finger_length" value="${finger_length}" scope="local"/>
|
||||
</xacro:if>
|
||||
|
||||
<!-- Gripper Base Joint -->
|
||||
<xacro:property name="end_of_arm_offset" value="-0.005" scope="local"/>
|
||||
<joint name="${side}_gripper_base_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 ${end_of_arm_offset}"/>
|
||||
<parent link="${side}_hand"/>
|
||||
<child link="${side}_gripper_base"/>
|
||||
</joint>
|
||||
|
||||
<!-- Gripper Tip joint -->
|
||||
<xacro:property name="electric_gripper_base_length" value="0.04552" scope="local"/>
|
||||
<joint name="${side}_gripper_tip_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 ${(-1*end_of_arm_offset)+connector_plate_length+electric_gripper_base_length+tip_finger_length}"/>
|
||||
<parent link="${side}_gripper_base"/>
|
||||
<child link="${side}_gripper_tip"/>
|
||||
</joint>
|
||||
|
||||
<!-- Electric Gripper Tip link -->
|
||||
<link name="${side}_gripper_tip">
|
||||
<inertial>
|
||||
<origin xyz="0 0 0" rpy="0 0 0"/>
|
||||
<mass value="2e-06"/>
|
||||
<inertia ixx="1.1e-09" ixy="0" ixz="0" iyy="1.1e-09" iyz="0" izz="1.1e-09"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<!-- Left finger -->
|
||||
<xacro:property name="l_finger_offset" value="${((l_finger_slot-1)*0.0095) -0.011}" scope="local"/>
|
||||
<joint name="${gripper_side}_gripper_l_finger_joint" type="prismatic">
|
||||
<origin rpy="0 0 0" xyz="0.003 ${l_finger_offset} ${electric_gripper_base_length}"/>
|
||||
<axis xyz="0 1 0"/>
|
||||
<parent link="${side}_electric_gripper_base"/>
|
||||
<child link="${gripper_side}_gripper_l_finger"/>
|
||||
<limit effort="20.0" lower="0.0" upper="0.020833" velocity="5.0"/>
|
||||
<dynamics damping="100.0" friction="500.0"/>
|
||||
</joint>
|
||||
|
||||
<!-- Right finger -->
|
||||
<xacro:property name="r_finger_offset" value="${((r_finger_slot-1)*-0.0095) +0.011}" scope="local"/>
|
||||
<joint name="${gripper_side}_gripper_r_finger_joint" type="prismatic">
|
||||
<origin rpy="0 0 0" xyz="0.003 ${r_finger_offset} ${electric_gripper_base_length}"/>
|
||||
<axis xyz="0 1 0"/>
|
||||
<parent link="${side}_electric_gripper_base"/>
|
||||
<child link="${gripper_side}_gripper_r_finger"/>
|
||||
<limit effort="20.0" lower="-0.020833" upper="0.0" velocity="5.0"/>
|
||||
<mimic joint="${gripper_side}_gripper_l_finger_joint" multiplier="-1.0"/>
|
||||
<dynamics damping="100.0" friction="500.0"/>
|
||||
</joint>
|
||||
|
||||
<xacro:if value="${gazebo}">
|
||||
<transmission name="gripper_${side}1">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="${gripper_side}_gripper_r_finger_joint">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="gripper_${gripper_side}1_motor1">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="gripper_${side}2">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="${gripper_side}_gripper_l_finger_joint">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="gripper_${gripper_side}1_motor2">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<gazebo reference="${gripper_side}_gripper_r_finger_joint">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
</gazebo>
|
||||
<gazebo reference="${gripper_side}_gripper_l_finger_joint">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
</gazebo>
|
||||
</xacro:if>
|
||||
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,14 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="right_electric_gripper">
|
||||
<xacro:include filename="$(find intera_tools_description)/urdf/electric_gripper/rethink_electric_gripper.xacro" />
|
||||
<xacro:rethink_electric_gripper side="right"
|
||||
l_finger="standard_narrow"
|
||||
l_finger_slot="2"
|
||||
l_finger_tip="basic_hard_tip"
|
||||
l_finger_grasp="inner"
|
||||
r_finger="standard_narrow"
|
||||
r_finger_slot="2"
|
||||
r_finger_tip="basic_hard_tip"
|
||||
r_finger_grasp="inner"
|
||||
use_connector_plate="True"/>
|
||||
</robot>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="left_null_gripper">
|
||||
<xacro:include filename="$(find intera_tools_description)/urdf/null_gripper/null_gripper.xacro" />
|
||||
<xacro:null_gripper side="left"/>
|
||||
</robot>
|
||||
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="null_gripper">
|
||||
<xacro:macro name="null_gripper" params="side">
|
||||
<!-- This is not a URDF, it is a URDF fragment describing a default end effector
|
||||
to be added to the robot URDF at run time.
|
||||
-->
|
||||
<link name="${side}_gripper_base">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</link>
|
||||
<link name="${side}_gripper">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="${side}_gripper_base" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<parent link="${side}_hand"/>
|
||||
<child link="${side}_gripper_base"/>
|
||||
</joint>
|
||||
<joint name="${side}_endpoint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<parent link="${side}_gripper_base"/>
|
||||
<child link="${side}_gripper"/>
|
||||
</joint>
|
||||
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="left_pneumatic_gripper">
|
||||
<xacro:include filename="$(find intera_tools_description)/urdf/electric_gripper/rethink_pneumatic_gripper.xacro" />
|
||||
<xacro:rethink_pneumatic_gripper side="left"/>
|
||||
</robot>
|
||||
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="pneumatic_gripper_base">
|
||||
<xacro:macro name="pneumatic_gripper_base" params="side">
|
||||
|
||||
<xacro:property name="tip_length" value="${0.03 + 0.02}" scope="local"/>
|
||||
|
||||
<!-- Base of end effector -->
|
||||
<link name="${side}_gripper_base">
|
||||
<visual>
|
||||
<origin rpy="0 ${pi} ${pi}" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/pneumatic_gripper/pneumatic_gripper_base.DAE"/>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 ${pi} ${pi}" xyz="0.0 0.0 0.025"/>
|
||||
<geometry>
|
||||
<box size="0.044 0.078 0.038" />
|
||||
<box length="0.08" radius="0.02"/>
|
||||
</geometry>
|
||||
<material name="darkred">
|
||||
<color rgba=".5 .1 .1 1"/>
|
||||
</material>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 ${pi} ${pi}" xyz="0.0 0.0 0.0"/>
|
||||
<mass value="0.1"/>
|
||||
<inertia ixx="2e-08" ixy="0" ixz="0" iyy="3e-08" iyz="0" izz="2e-08"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<!-- Pneumatic Gripper Base Joint -->
|
||||
<joint name="${side}_gripper_base" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 0.0"/>
|
||||
<parent link="${side}_hand"/>
|
||||
<child link="${side}_gripper_base"/>
|
||||
</joint>
|
||||
<!-- Pneumatic Gripper Tip joint -->
|
||||
<joint name="${side}_endpoint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 ${tip_length}"/>
|
||||
<parent link="${side}_gripper_base"/>
|
||||
<child link="${side}_gripper"/>
|
||||
</joint>
|
||||
<!-- Pneumatic Gripper Tip link -->
|
||||
<link name="${side}_gripper">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0.0"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,53 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="rethink_pneumatic_gripper">
|
||||
<xacro:macro name="rethink_pneumatic_gripper" params="side">
|
||||
|
||||
<xacro:property name="tip_length" value="${0.06 + 0.02}" scope="local"/>
|
||||
|
||||
<!-- Base of end effector -->
|
||||
<link name="${side}_gripper_base">
|
||||
<visual>
|
||||
<origin rpy="0 ${pi} ${pi}" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/pneumatic_gripper/pneumatic_gripper_w_cup.DAE"/>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 ${pi} ${pi}" xyz="0.0 0.0 0.04"/>
|
||||
<geometry>
|
||||
<cylinder length="0.08" radius="0.02"/>
|
||||
</geometry>
|
||||
<material name="darkred">
|
||||
<color rgba=".5 .1 .1 1"/>
|
||||
</material>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 ${pi} ${pi}" xyz="0.0 0.0 0.0"/>
|
||||
<mass value="0.3"/>
|
||||
<inertia ixx="2e-08" ixy="0" ixz="0" iyy="3e-08" iyz="0" izz="2e-08"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<!-- Pneumatic Gripper Base Joint -->
|
||||
<joint name="${side}_gripper_base" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 0.0"/>
|
||||
<parent link="${side}_hand"/>
|
||||
<child link="${side}_gripper_base"/>
|
||||
</joint>
|
||||
<!-- Pneumatic Gripper Tip joint -->
|
||||
<joint name="${side}_endpoint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 ${tip_length}"/>
|
||||
<parent link="${side}_gripper_base"/>
|
||||
<child link="${side}_gripper"/>
|
||||
</joint>
|
||||
<!-- Pneumatic Gripper Tip link -->
|
||||
<link name="${side}_gripper">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="0" ixy="0" ixz="0" iyy="0" iyz="0" izz="0.0"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,156 @@
|
||||
<?xml version="1.0"?>
|
||||
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="rethink_electric_gripper">
|
||||
<xacro:macro name="rethink_electric_gripper" params="side r_finger r_finger_slot r_finger_tip r_finger_grasp l_finger l_finger_slot l_finger_tip l_finger_grasp use_connector_plate gazebo">
|
||||
<xacro:property name="gripper_side" value="${side}" scope="local"/>
|
||||
|
||||
<!-- Base of whole end effector - (Connector Plate + Electric Gripper + Fingers + Tips) -->
|
||||
<link name="${side}_gripper_base">
|
||||
<inertial>
|
||||
<!-- Sum Gripper Mass - for whole end effector, measured from end of plastic cuff -->
|
||||
<mass value="0.47"/>
|
||||
<origin rpy="0 0 0" xyz="0.0028 -0.0004 0.0343"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<!-- Electric Gripper Base Link -->
|
||||
<link name="${side}_electric_gripper_base">
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/electric_gripper/electric_gripper_base.DAE"/>
|
||||
</geometry>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="${-pi/2} ${pi} 0" xyz="0.004 0.0 0.025"/>
|
||||
<geometry>
|
||||
<cylinder length="0.1" radius="0.029"/>
|
||||
</geometry>
|
||||
<material name="darkred">
|
||||
<color rgba=".5 .1 .1 1"/>
|
||||
</material>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="${-pi/2} ${pi} 0" xyz="0.0 0.0 0.0"/>
|
||||
<mass value="2e-06"/>
|
||||
<inertia ixx="1.1e-09" ixy="0" ixz="0" iyy="1.1e-09" iyz="0" izz="1.1e-09"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<xacro:unless value="${use_connector_plate}">
|
||||
<xacro:property name="electric_gripper_parent_link" value="${side}_gripper_base" scope="local"/>
|
||||
<xacro:property name="connector_plate_length" value="0.0" scope="local"/>
|
||||
</xacro:unless>
|
||||
<xacro:if value="${use_connector_plate}">
|
||||
<!-- Connector Plate Joint -->
|
||||
<joint name="${side}_connector_plate_base_joint" type="fixed">
|
||||
<origin xyz="0 0 0.0018" rpy="0 0 0" />
|
||||
<parent link="${side}_gripper_base" />
|
||||
<child link="${side}_connector_plate_base" />
|
||||
</joint>
|
||||
<!-- Connector Plate Link -->
|
||||
<xacro:include filename="$(find ddpg)/urdf/connector_plate/connector_plate.xacro" />
|
||||
<xacro:rethink_connector_plate side="${side}" gazebo="${gazebo}"/>
|
||||
<xacro:property name="electric_gripper_parent_link" value="${side}_connector_plate_mount" scope="local"/>
|
||||
<xacro:property name="connector_plate_length" value="${rethink_connector_plate_length}" scope="local"/>
|
||||
</xacro:if>
|
||||
|
||||
<!-- Electric Gripper Base joint -->
|
||||
<joint name="${side}_electric_gripper_base_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<parent link="${electric_gripper_parent_link}"/>
|
||||
<child link="${side}_electric_gripper_base"/>
|
||||
</joint>
|
||||
|
||||
<!-- Left finger link -->
|
||||
<xacro:property name="finger_length" value="0.0" scope="global"/>
|
||||
<xacro:include filename="$(find ddpg)/urdf/electric_gripper/fingers/${l_finger}.xacro" />
|
||||
<xacro:finger_xacro gripper_side="${gripper_side}" finger_side="l" reflect="1" finger_tip="${l_finger_tip}" finger_grasp="${l_finger_grasp}" gazebo="${gazebo}"/>
|
||||
<xacro:property name="tip_finger_length" value="${finger_length}" scope="local"/>
|
||||
|
||||
<!-- Right finger link -->
|
||||
<xacro:include filename="$(find ddpg)/urdf/electric_gripper/fingers/${r_finger}.xacro" />
|
||||
<xacro:finger_xacro gripper_side="${gripper_side}" finger_side="r" reflect="-1" finger_tip="${r_finger_tip}" finger_grasp="${r_finger_grasp}" gazebo="${gazebo}"/>
|
||||
<xacro:if value="${finger_length > tip_finger_length}">
|
||||
<xacro:property name="tip_finger_length" value="${finger_length}" scope="local"/>
|
||||
</xacro:if>
|
||||
|
||||
<!-- Gripper Base Joint -->
|
||||
<xacro:property name="end_of_arm_offset" value="-0.005" scope="local"/>
|
||||
<joint name="${side}_gripper_base_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 ${end_of_arm_offset}"/>
|
||||
<parent link="${side}_hand"/>
|
||||
<child link="${side}_gripper_base"/>
|
||||
</joint>
|
||||
|
||||
<!-- Gripper Tip joint -->
|
||||
<xacro:property name="electric_gripper_base_length" value="0.04552" scope="local"/>
|
||||
<joint name="${side}_gripper_tip_joint" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 ${(-1*end_of_arm_offset)+connector_plate_length+electric_gripper_base_length+tip_finger_length}"/>
|
||||
<parent link="${side}_gripper_base"/>
|
||||
<child link="${side}_gripper_tip"/>
|
||||
</joint>
|
||||
|
||||
<!-- Electric Gripper Tip link -->
|
||||
<link name="${side}_gripper_tip">
|
||||
<inertial>
|
||||
<origin xyz="0 0 0" rpy="0 0 0"/>
|
||||
<mass value="2e-06"/>
|
||||
<inertia ixx="1.1e-09" ixy="0" ixz="0" iyy="1.1e-09" iyz="0" izz="1.1e-09"/>
|
||||
</inertial>
|
||||
</link>
|
||||
|
||||
<!-- Left finger -->
|
||||
<xacro:property name="l_finger_offset" value="${((l_finger_slot-1)*0.0095) -0.011}" scope="local"/>
|
||||
<joint name="${gripper_side}_gripper_l_finger_joint" type="prismatic">
|
||||
<origin rpy="0 0 0" xyz="0.003 ${l_finger_offset} ${electric_gripper_base_length}"/>
|
||||
<axis xyz="0 1 0"/>
|
||||
<parent link="${side}_electric_gripper_base"/>
|
||||
<child link="${gripper_side}_gripper_l_finger"/>
|
||||
<limit effort="20.0" lower="0.0" upper="0.020833" velocity="5.0"/>
|
||||
<dynamics damping="100.0" friction="500.0"/>
|
||||
</joint>
|
||||
|
||||
<!-- Right finger -->
|
||||
<xacro:property name="r_finger_offset" value="${((r_finger_slot-1)*-0.0095) +0.011}" scope="local"/>
|
||||
<joint name="${gripper_side}_gripper_r_finger_joint" type="prismatic">
|
||||
<origin rpy="0 0 0" xyz="0.003 ${r_finger_offset} ${electric_gripper_base_length}"/>
|
||||
<axis xyz="0 1 0"/>
|
||||
<parent link="${side}_electric_gripper_base"/>
|
||||
<child link="${gripper_side}_gripper_r_finger"/>
|
||||
<limit effort="20.0" lower="-0.020833" upper="0.0" velocity="5.0"/>
|
||||
<mimic joint="${gripper_side}_gripper_l_finger_joint" multiplier="-1.0"/>
|
||||
<dynamics damping="100.0" friction="500.0"/>
|
||||
</joint>
|
||||
|
||||
<xacro:if value="${gazebo}">
|
||||
<transmission name="gripper_${side}1">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="${gripper_side}_gripper_r_finger_joint">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="gripper_${gripper_side}1_motor1">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="gripper_${side}2">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="${gripper_side}_gripper_l_finger_joint">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="gripper_${gripper_side}1_motor2">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<gazebo reference="${gripper_side}_gripper_r_finger_joint">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
</gazebo>
|
||||
<gazebo reference="${gripper_side}_gripper_l_finger_joint">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
</gazebo>
|
||||
</xacro:if>
|
||||
|
||||
</xacro:macro>
|
||||
</robot>
|
||||
@@ -0,0 +1,530 @@
|
||||
<?xml version="1.0" ?>
|
||||
<!-- =================================================================================== -->
|
||||
<!-- | This document was autogenerated by xacro from ./urdf.xacro | -->
|
||||
<!-- | EDITING THIS FILE BY HAND IS NOT RECOMMENDED | -->
|
||||
<!-- =================================================================================== -->
|
||||
<robot name="sawyer" xmlns:xacro="http://www.ros.org/wiki/xacro">
|
||||
<material name="black">
|
||||
<color rgba="0 0 0 1"/>
|
||||
</material>
|
||||
<material name="darkgray">
|
||||
<color rgba=".2 .2 .2 1"/>
|
||||
</material>
|
||||
<material name="darkred">
|
||||
<color rgba=".5 .1 .1 1"/>
|
||||
</material>
|
||||
<material name="sawyer_red">
|
||||
<color rgba=".5 .1 .1 1"/>
|
||||
</material>
|
||||
<material name="sawyer_gray">
|
||||
<color rgba="0.75294 0.75294 0.75294 1"/>
|
||||
</material>
|
||||
<link name="base"/>
|
||||
<link name="torso">
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<box size="0 0 0"/>
|
||||
</geometry>
|
||||
<material name="darkgray">
|
||||
<color rgba=".2 .2 .2 1"/>
|
||||
</material>
|
||||
</visual>
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.000000 0.000000 0.000000"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</link>
|
||||
<link name="pedestal">
|
||||
<visual>
|
||||
<origin rpy="1.57079632679 0 -1.57079632679" xyz="0.26 0.345 -0.91488"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/pedestal.DAE"/>
|
||||
</geometry>
|
||||
<material name="darkgray"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 -0.30"/>
|
||||
<geometry>
|
||||
<cylinder length="0.62" radius="0.18"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<mass value="60.86397744"/>
|
||||
<inertia ixx="5.0635929" ixy="0.00103417" ixz="0.80199628" iyy="6.08689388" iyz="0.00105311" izz="4.96191932"/>
|
||||
</inertial>
|
||||
</link>
|
||||
<link name="controller_box">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="-0.325 0 -0.38"/>
|
||||
<geometry>
|
||||
<box size="0.22 0.4 0.53"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="controller_box_fixed" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
|
||||
<parent link="base"/>
|
||||
<child link="controller_box"/>
|
||||
</joint>
|
||||
<link name="pedestal_feet">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="-0.1225 0 -0.758"/>
|
||||
<geometry>
|
||||
<box size="0.77 0.7 0.31"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="pedestal_feet_fixed" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
|
||||
<parent link="base"/>
|
||||
<child link="pedestal_feet"/>
|
||||
</joint>
|
||||
<joint name="torso_t0" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<parent link="base"/>
|
||||
<child link="torso"/>
|
||||
</joint>
|
||||
<joint name="pedestal_fixed" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
|
||||
<parent link="base"/>
|
||||
<child link="pedestal"/>
|
||||
</joint>
|
||||
<joint name="right_arm_mount" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
|
||||
<parent link="base"/>
|
||||
<child link="right_arm_base_link"/>
|
||||
</joint>
|
||||
<link name="right_arm_base_link">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-0.0006241 -2.8025E-05 0.065404"/>
|
||||
<mass value="2.0687"/>
|
||||
<inertia ixx="0.0067599" ixy="-4.2024E-05" ixz="-6.1904E-07" iyy="0.0067877" iyz="1.5888E-05" izz="0.0074031"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/base.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.12"/>
|
||||
<geometry>
|
||||
<cylinder length="0.24" radius="0.08"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<link name="right_l0">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.024366 0.010969 0.14363"/>
|
||||
<mass value="5.3213"/>
|
||||
<inertia ixx="0.053314" ixy="0.0047093" ixz="0.011734" iyy="0.057902" iyz="0.0080179" izz="0.023659"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_mp3/l0.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0.081 0 0.237"/>
|
||||
<geometry>
|
||||
<sphere radius="0.07"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j0" type="revolute">
|
||||
<origin rpy="0 0 0" xyz="0 0 0.08"/>
|
||||
<parent link="right_arm_base_link"/>
|
||||
<child link="right_l0"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="80.0" lower="-3.0503" upper="3.0503" velocity="1.74"/>
|
||||
</joint>
|
||||
<link name="head">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0053207 -2.6549E-05 0.1021"/>
|
||||
<mass value="1.5795"/>
|
||||
<inertia ixx="0.011833" ixy="-4.4669E-06" ixz="4.9425E-05" iyy="0.0082709" iyz="4.2124E-07" izz="0.0049661"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/head.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.08"/>
|
||||
<geometry>
|
||||
<sphere radius="0.18"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="head_pan" type="revolute">
|
||||
<origin rpy="0 0 0" xyz="0 0 0.2965"/>
|
||||
<parent link="right_l0"/>
|
||||
<child link="head"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="8" lower="-5.1477" upper="0.9559" velocity="1.8"/>
|
||||
</joint>
|
||||
<link name="right_torso_itb">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.000000 0.000000 0.000000"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="right_torso_itb" type="fixed">
|
||||
<origin rpy="0 -1.57079632679 0" xyz="-.055 0 .22"/>
|
||||
<parent link="right_l0"/>
|
||||
<child link="right_torso_itb"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
</joint>
|
||||
<link name="right_l1">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-0.0030849 -0.026811 0.092521"/>
|
||||
<mass value="4.505"/>
|
||||
<inertia ixx="0.022398" ixy="-0.00023986" ixz="-0.00029362" iyy="0.014613" iyz="-0.0060875" izz="0.017295"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_mp3/l1.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.1225"/>
|
||||
<geometry>
|
||||
<sphere radius="0.07"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j1" type="revolute">
|
||||
<origin rpy="-1.57079632679 1.57079632679 0" xyz="0.081 0.05 0.237"/>
|
||||
<parent link="right_l0"/>
|
||||
<child link="right_l1"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="80.0" lower="-3.8183" upper="2.2824" velocity="1.328"/>
|
||||
</joint>
|
||||
<link name="right_l2">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-0.00016232 -0.015346 0.13445"/>
|
||||
<mass value="1.7251"/>
|
||||
<inertia ixx="0.025176" ixy="4.3031E-06" ixz="1.4564E-05" iyy="0.024982" iyz="-0.0033928" izz="0.0033798"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/l2.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.14"/>
|
||||
<geometry>
|
||||
<cylinder length="0.35" radius="0.06"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j2" type="revolute">
|
||||
<origin rpy="1.57079632679 0 0" xyz="0 -0.14 0.1425"/>
|
||||
<parent link="right_l1"/>
|
||||
<child link="right_l2"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="40.0" lower="-3.0514" upper="3.0514" velocity="1.957"/>
|
||||
</joint>
|
||||
<link name="right_l3">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-0.0046678 -0.028394 -0.083127"/>
|
||||
<mass value="2.4743"/>
|
||||
<inertia ixx="0.0099549" ixy="-1.7675E-05" ixz="0.00027521" iyy="0.0064248" iyz="0.0030853" izz="0.0067746"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/l3.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 -0.01 -0.12"/>
|
||||
<geometry>
|
||||
<sphere radius="0.06"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j3" type="revolute">
|
||||
<origin rpy="-1.57079632679 0 0" xyz="0 -0.042 0.26"/>
|
||||
<parent link="right_l2"/>
|
||||
<child link="right_l3"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="40.0" lower="-3.0514" upper="3.0514" velocity="1.957"/>
|
||||
</joint>
|
||||
<link name="right_l4">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-0.0027794 0.0076558 0.13273"/>
|
||||
<mass value="1.0433"/>
|
||||
<inertia ixx="0.012913" ixy="2.573E-05" ixz="0.00017705" iyy="0.012939" iyz="0.0011152" izz="0.0012405"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/l4.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.14"/>
|
||||
<geometry>
|
||||
<cylinder length="0.36" radius="0.045"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j4" type="revolute">
|
||||
<origin rpy="1.57079632679 0 0" xyz="0 -0.125 -0.1265"/>
|
||||
<parent link="right_l3"/>
|
||||
<child link="right_l4"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="9.0" lower="-2.9842" upper="2.9842" velocity="3.485"/>
|
||||
</joint>
|
||||
<link name="right_arm_itb">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.000000 0.000000 0.000000"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="right_arm_itb" type="fixed">
|
||||
<origin rpy="0 -1.57079632679 0" xyz="-.055 0 .075"/>
|
||||
<parent link="right_l4"/>
|
||||
<child link="right_arm_itb"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
</joint>
|
||||
<link name="right_l5">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0062067 -0.024291 0.075564"/>
|
||||
<mass value="1.5343"/>
|
||||
<inertia ixx="0.0046072" ixy="0.00012002" ixz="5.3065E-05" iyy="0.0028725" iyz="-0.0011886" izz="0.003101"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/l5.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0.01 0 0.09"/>
|
||||
<geometry>
|
||||
<sphere radius="0.06"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j5" type="revolute">
|
||||
<origin rpy="-1.57079632679 0 0" xyz="0 0.031 0.275"/>
|
||||
<parent link="right_l4"/>
|
||||
<child link="right_l5"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="9.0" lower="-2.9842" upper="2.9842" velocity="3.485"/>
|
||||
</joint>
|
||||
<link name="right_hand_camera"/>
|
||||
<joint name="right_hand_camera" type="fixed">
|
||||
<origin rpy="0 1.57079632679 0" xyz="0.039552 -0.033 0.0695"/>
|
||||
<parent link="right_l5"/>
|
||||
<child link="right_hand_camera"/>
|
||||
<axis xyz="0 0 0"/>
|
||||
</joint>
|
||||
<link name="right_wrist"/>
|
||||
<joint name="right_wrist" type="fixed">
|
||||
<origin rpy="1.57079632679 0 0" xyz="0 0 0.10541"/>
|
||||
<parent link="right_l5"/>
|
||||
<child link="right_wrist"/>
|
||||
<axis xyz="0 0 0"/>
|
||||
</joint>
|
||||
<link name="right_l6">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-8.0726E-06 0.0085838 -0.0049566"/>
|
||||
<mass value="0.3292"/>
|
||||
<inertia ixx="0.00031105" ixy="1.4771E-06" ixz="-3.7074E-07" iyy="0.00021549" iyz="-8.4533E-06" izz="0.00035976"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_mp1/l6.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 -0.005"/>
|
||||
<geometry>
|
||||
<cylinder length="0.05" radius="0.065"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j6" type="revolute">
|
||||
<origin rpy="-1.57079632679 -0.17453 3.1416" xyz="0 -0.11 0.1053"/>
|
||||
<parent link="right_l5"/>
|
||||
<child link="right_l6"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="9.0" lower="-4.7104" upper="4.7104" velocity="4.545"/>
|
||||
</joint>
|
||||
<link name="right_hand">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.02"/>
|
||||
<geometry>
|
||||
<cylinder length="0.04" radius="0.06"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="1.0E-08 1.0E-08 1.0E-08"/>
|
||||
<mass value="1.0E-08"/>
|
||||
<inertia ixx="1.0E-08" ixy="1.0E-08" ixz="1.0E-08" iyy="1.0E-08" iyz="1.0E-08" izz="1.0E-08"/>
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="right_hand" type="fixed">
|
||||
<origin rpy="0 0 1.570796" xyz="0 0 0.0245"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<parent link="right_l6"/>
|
||||
<child link="right_hand"/>
|
||||
</joint>
|
||||
<link name="screen">
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<box size="0.24 0.14 0.002"/>
|
||||
</geometry>
|
||||
<material name="darkgray"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<sphere radius="0.001"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</link>
|
||||
<joint name="display_joint" type="fixed">
|
||||
<origin rpy="1.57079632679 0 1.57079632679" xyz="0.03 0.0 0.105"/>
|
||||
<parent link="head"/>
|
||||
<child link="screen"/>
|
||||
</joint>
|
||||
<link name="head_camera"/>
|
||||
<joint name="head_camera" type="fixed">
|
||||
<origin rpy="-2.1293 0 -1.57079632679" xyz="0.0228027 0 0.216572"/>
|
||||
<parent link="head"/>
|
||||
<child link="head_camera"/>
|
||||
<axis xyz="0 0 0"/>
|
||||
</joint>
|
||||
|
||||
<!-- added -->
|
||||
<!-- <link name="controller_box"> -->
|
||||
<!-- <collision> -->
|
||||
<!-- <origin rpy="0 0 0" xyz="-0.325 0 -0.38"/> -->
|
||||
<!-- <geometry> -->
|
||||
<!-- <box size="0.22 0.4 0.53"/> -->
|
||||
<!-- </geometry> -->
|
||||
<!-- </collision> -->
|
||||
<!-- </link> -->
|
||||
<!-- <joint name="controller_box_fixed" type="fixed"> -->
|
||||
<!-- <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/> -->
|
||||
<!-- <parent link="base"/> -->
|
||||
<!-- <child link="controller_box"/> -->
|
||||
<!-- </joint> -->
|
||||
<!-- <link name="pedestal_feet"> -->
|
||||
<!-- <collision> -->
|
||||
<!-- <origin rpy="0 0 0" xyz="-0.1225 0 -0.758"/> -->
|
||||
<!-- <geometry> -->
|
||||
<!-- <box size="0.77 0.7 0.31"/> -->
|
||||
<!-- </geometry> -->
|
||||
<!-- </collision> -->
|
||||
<!-- </link> -->
|
||||
<!-- <joint name="pedestal_feet_fixed" type="fixed"> -->
|
||||
<!-- <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/> -->
|
||||
<!-- <parent link="base"/> -->
|
||||
<!-- <child link="pedestal_feet"/> -->
|
||||
<!-- </joint> -->
|
||||
|
||||
<joint name="right_gripper_base" type="fixed">
|
||||
<child link="right_gripper_base">
|
||||
</child>
|
||||
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.00500000000000000">
|
||||
</origin>
|
||||
<parent link="right_hand">
|
||||
</parent>
|
||||
</joint>
|
||||
<joint name="right_gripper_endpoint" type="fixed">
|
||||
<child link="right_gripper">
|
||||
</child>
|
||||
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0500000000000000">
|
||||
<!-- <origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.2000000000000000"> -->
|
||||
</origin>
|
||||
<parent link="right_gripper_base">
|
||||
</parent>
|
||||
</joint>
|
||||
<link name="right_gripper_base">
|
||||
<collision>
|
||||
<geometry>
|
||||
<cylinder length="0.118" radius="0.070">
|
||||
</cylinder>
|
||||
</geometry>
|
||||
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.00500000000000000">
|
||||
</origin>
|
||||
</collision>
|
||||
<inertial>
|
||||
<inertia ixx="0.0" ixy="0.0" ixz="0.0" iyy="0.0" iyz="0.0" izz="0.0">
|
||||
</inertia>
|
||||
<mass value="0.440000000000000">
|
||||
</mass>
|
||||
<origin rpy="0.0 0.0 0.0" xyz="0.00280000000000000 -0.000400000000000000 0.0322000000000000">
|
||||
</origin>
|
||||
</inertial>
|
||||
<visual>
|
||||
<geometry>
|
||||
<mesh filename="package://intera_tools_description/meshes/electric_gripper/electric_gripper_w_fingers.DAE" scale="1.0 1.0 1.0">
|
||||
</mesh>
|
||||
</geometry>
|
||||
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 -0.00100000000000000">
|
||||
</origin>
|
||||
</visual>
|
||||
</link>
|
||||
<link name="right_gripper">
|
||||
<collision>
|
||||
<geometry>
|
||||
<box size="0.0100000000000000 0.0100000000000000 0.0100000000000000">
|
||||
</box>
|
||||
</geometry>
|
||||
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0">
|
||||
</origin>
|
||||
</collision>
|
||||
<inertial>
|
||||
<inertia ixx="1.00000000000000e-08" ixy="0.0" ixz="0.0" iyy="1.00000000000000e-08" iyz="0.0" izz="1.00000000000000e-08">
|
||||
</inertia>
|
||||
<mass value="0.0">
|
||||
</mass>
|
||||
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0">
|
||||
</origin>
|
||||
</inertial>
|
||||
<visual>
|
||||
<geometry>
|
||||
<box size="0.0150000000000000 0.0150000000000000 0.0150000000000000">
|
||||
</box>
|
||||
</geometry>
|
||||
<material name="darkgrey">
|
||||
<color rgba="0.200000000000000 0.300000000000000 0.300000000000000 1.0">
|
||||
</color>
|
||||
</material>
|
||||
<origin rpy="0.0 0.0 0.0" xyz="0.0 0.0 0.0">
|
||||
</origin>
|
||||
</visual>
|
||||
</link>
|
||||
|
||||
</robot>
|
||||
@@ -0,0 +1,258 @@
|
||||
<?xml version="1.0" ?>
|
||||
<robot name="sawyer" xmlns:xacro="http://www.ros.org/wiki/xacro">
|
||||
<xacro:arg name="pedestal" default="true"/>
|
||||
<xacro:arg name="static" default="true"/>
|
||||
<!-- ros_control plugin -->
|
||||
<gazebo>
|
||||
<plugin name="sawyer_ros_control" filename="libsawyer_gazebo_ros_control.so">
|
||||
<robotNamespace>/robot</robotNamespace>
|
||||
<robotSimType>sawyer_gazebo/SawyerRobotHWSim</robotSimType>
|
||||
<controlPeriod>0.001</controlPeriod>
|
||||
<eStopTopic>sim_estop</eStopTopic>
|
||||
</plugin>
|
||||
</gazebo>
|
||||
<!-- Gazebo-Specific Link Properties -->
|
||||
<xacro:if value="$(arg static)">
|
||||
<link name="world"/>
|
||||
<joint name="fixed" type="fixed">
|
||||
<parent link="world"/>
|
||||
<child link="base"/>
|
||||
</joint>
|
||||
</xacro:if>
|
||||
<xacro:if value="$(arg pedestal)">
|
||||
<gazebo reference="pedestal">
|
||||
<material>Gazebo/FlatBlack</material>
|
||||
</gazebo>
|
||||
</xacro:if>
|
||||
|
||||
<gazebo reference="torso">
|
||||
<self_collide>true</self_collide>
|
||||
</gazebo>
|
||||
<gazebo reference="head_pan">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
<provideFeedback>true</provideFeedback>
|
||||
</gazebo>
|
||||
<gazebo reference="right_j0">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
<provideFeedback>true</provideFeedback>
|
||||
</gazebo>
|
||||
<gazebo reference="right_j1">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
<provideFeedback>true</provideFeedback>
|
||||
</gazebo>
|
||||
<gazebo reference="right_j2">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
<provideFeedback>true</provideFeedback>
|
||||
</gazebo>
|
||||
<gazebo reference="right_j3">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
<provideFeedback>true</provideFeedback>
|
||||
</gazebo>
|
||||
<gazebo reference="right_j4">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
<provideFeedback>true</provideFeedback>
|
||||
</gazebo>
|
||||
<gazebo reference="right_j5">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
<provideFeedback>true</provideFeedback>
|
||||
</gazebo>
|
||||
<gazebo reference="right_j6">
|
||||
<implicitSpringDamper>1</implicitSpringDamper>
|
||||
<provideFeedback>true</provideFeedback>
|
||||
</gazebo>
|
||||
<joint name="head_camera_optical_joint" type="fixed">
|
||||
<origin xyz="0 0 0" rpy="${-pi} ${-pi/2.0} ${-pi/2.0}"/>
|
||||
<parent link="head_camera"/>
|
||||
<child link="head_camera_optical"/>
|
||||
</joint>
|
||||
<link name="head_camera_optical"/>
|
||||
<gazebo reference="head_camera_optical">
|
||||
<sensor name="head_camera" type="camera">
|
||||
<update_rate>10</update_rate>
|
||||
<camera name="head_camera">
|
||||
<horizontal_fov>2.00787026</horizontal_fov>
|
||||
<image>
|
||||
<width>1280</width>
|
||||
<height>800</height>
|
||||
<format>R8G8B8</format>
|
||||
</image>
|
||||
<clip>
|
||||
<near>0.1</near>
|
||||
<far>50</far>
|
||||
</clip>
|
||||
<!-- Uncomment to add image Distortion -->
|
||||
<!-- distortion>
|
||||
<k1>0.6545419633392568</k1>
|
||||
<k2>0.012904541485280972</k2>
|
||||
<k3>-0.012279942338550547</k3>
|
||||
<p1>-0.00036475699823703154</p1>
|
||||
<p2>3.334461262764956e-05</p2>
|
||||
<center>677.8808657338167 382.02964533321426</center>
|
||||
</distortion -->
|
||||
</camera>
|
||||
<!-- Uncomment to visualize image inside Gazebo -->
|
||||
<!-- visualize>true</visualize -->
|
||||
<plugin filename="libgazebo_ros_camera.so" name="camera_controller">
|
||||
<alwaysOn>true</alwaysOn>
|
||||
<updateRate>10</updateRate>
|
||||
<cameraName>head_camera</cameraName>
|
||||
<imageTopicName>/io/internal_camera/head_camera/image_raw</imageTopicName>
|
||||
<cameraInfoTopicName>/io/internal_camera/head_camera/camera_info</cameraInfoTopicName>
|
||||
<frameName>head_camera</frameName>
|
||||
<focalLength>407.391526</focalLength>
|
||||
<!-- Uncomment to add image Distortion params to camera_info topic -->
|
||||
<!-- distortionK1>0.6545419633392568</distortionK1>
|
||||
<distortionK2>0.012904541485280972</distortionK2>
|
||||
<distortionK3>-0.012279942338550547</distortionK3>
|
||||
<distortionT1>-0.00036475699823703154</distortionT1>
|
||||
<distortionT2>3.334461262764956e-05</distortionT2>
|
||||
<Cx>677.8808657338167</Cx>
|
||||
<Cy>382.02964533321426</Cy -->
|
||||
</plugin>
|
||||
</sensor>
|
||||
</gazebo>
|
||||
<joint name="right_hand_camera_optical_joint" type="fixed">
|
||||
<origin xyz="0 0 0" rpy="${-pi} ${-pi/2.0} ${-pi/2.0}"/>
|
||||
<parent link="right_hand_camera"/>
|
||||
<child link="right_hand_camera_optical"/>
|
||||
</joint>
|
||||
<link name="right_hand_camera_optical"/>
|
||||
<gazebo reference="right_hand_camera_optical">
|
||||
<sensor name="right_hand_camera" type="camera">
|
||||
<update_rate>10.0</update_rate>
|
||||
<camera name="right_hand_camera">
|
||||
<horizontal_fov>1.0992892</horizontal_fov>
|
||||
<image>
|
||||
<width>752</width>
|
||||
<height>480</height>
|
||||
<format>L8</format>
|
||||
</image>
|
||||
<clip>
|
||||
<near>0.02</near>
|
||||
<far>10</far>
|
||||
</clip>
|
||||
<!-- Uncomment to add image Distortion -->
|
||||
<!-- distortion>
|
||||
<k1>-0.442</k1>
|
||||
<k2>0.273</k2>
|
||||
<k3>-0.123</k3>
|
||||
<p1>0.0</p1>
|
||||
<p2>0.0</p2>
|
||||
<center>365.734985 237.988998</center>
|
||||
</distortion -->
|
||||
</camera>
|
||||
<!-- Uncomment to visualize image inside Gazebo -->
|
||||
<!-- visualize>true</visualize -->
|
||||
<plugin filename="libgazebo_ros_camera.so" name="camera_controller">
|
||||
<alwaysOn>true</alwaysOn>
|
||||
<updateRate>10.0</updateRate>
|
||||
<cameraName>right_hand_camera</cameraName>
|
||||
<imageTopicName>/io/internal_camera/right_hand_camera/image_raw</imageTopicName>
|
||||
<cameraInfoTopicName>/io/internal_camera/right_hand_camera/camera_info</cameraInfoTopicName>
|
||||
<frameName>right_hand_camera</frameName>
|
||||
<focalLength>613.760435</focalLength>
|
||||
<!-- Uncomment to add image Distortion params to camera_info topic -->
|
||||
<!-- distortionK1>-0.442</distortionK1>
|
||||
<distortionK2>0.273</distortionK2>
|
||||
<distortionK3>-0.123</distortionK3>
|
||||
<distortionT1>0.0</distortionT1>
|
||||
<distortionT2>0.0</distortionT2>
|
||||
<Cx>365.734985</Cx>
|
||||
<Cy>237.988998</Cy -->
|
||||
</plugin>
|
||||
</sensor>
|
||||
</gazebo>
|
||||
<gazebo reference="screen">
|
||||
<visual>
|
||||
<plugin name="screen_video_controller" filename="libgazebo_ros_video.so">
|
||||
<height>600</height>
|
||||
<width>1024</width>
|
||||
<topicName>/robot/head_display</topicName>
|
||||
<robotNamespace>/robot</robotNamespace>
|
||||
</plugin>
|
||||
</visual>
|
||||
</gazebo>
|
||||
<!-- Transmissions -->
|
||||
<!-- Right Arm -->
|
||||
<transmission name="right_tran0">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="right_j0">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="right_motor0">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="right_tran1">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="right_j1">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="right_motor1">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="right_tran2">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="right_j2">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="right_motor2">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="right_tran3">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="right_j3">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="right_motor3">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="right_tran4">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="right_j4">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="right_motor4">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="right_tran5">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="right_j5">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="right_motor5">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<transmission name="right_tran6">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="right_j6">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="right_motor6">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
<!-- Head -->
|
||||
<transmission name="head0">
|
||||
<type>transmission_interface/SimpleTransmission</type>
|
||||
<joint name="head_pan">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
</joint>
|
||||
<actuator name="head_motor0">
|
||||
<hardwareInterface>hardware_interface/EffortJointInterface</hardwareInterface>
|
||||
<mechanicalReduction>1</mechanicalReduction>
|
||||
</actuator>
|
||||
</transmission>
|
||||
</robot>
|
||||
@@ -0,0 +1,534 @@
|
||||
<?xml version="1.0" ?>
|
||||
<robot name="sawyer" xmlns:xacro="http://www.ros.org/wiki/xacro">
|
||||
<xacro:arg name="gazebo" default="false"/>
|
||||
<xacro:arg name="pedestal" default="true"/>
|
||||
<material name="black">
|
||||
<color rgba="0 0 0 1"/>
|
||||
</material>
|
||||
<material name="darkgray">
|
||||
<color rgba=".2 .2 .2 1"/>
|
||||
</material>
|
||||
<material name="darkred">
|
||||
<color rgba=".5 .1 .1 1"/>
|
||||
</material>
|
||||
<material name="sawyer_red">
|
||||
<color rgba=".5 .1 .1 1"/>
|
||||
</material>
|
||||
<material name="sawyer_gray">
|
||||
<color rgba="0.75294 0.75294 0.75294 1"/>
|
||||
</material>
|
||||
<link name="base"/>
|
||||
<link name="torso">
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<box size="0.001 0.001 0.001"/>
|
||||
</geometry>
|
||||
<material name="darkgray">
|
||||
<color rgba=".2 .2 .2 1"/>
|
||||
</material>
|
||||
</visual>
|
||||
<xacro:unless value="$(arg gazebo)">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.000000 0.000000 0.000000"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</xacro:unless>
|
||||
</link>
|
||||
<xacro:if value="$(arg pedestal)">
|
||||
<link name="pedestal">
|
||||
<visual>
|
||||
<origin rpy="1.57079632679 0 -1.57079632679" xyz="0.26 0.345 -0.91488"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/pedestal.DAE"/>
|
||||
</geometry>
|
||||
<material name="darkgray"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="-0.02 0 -0.29"/>
|
||||
<geometry>
|
||||
<cylinder length="0.62" radius="0.18"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0 0 -0.5"/>
|
||||
<mass value="60.86397744"/>
|
||||
<inertia ixx="5.0635929" ixy="0.00103417" ixz="0.80199628" iyy="6.08689388" iyz="0.00105311" izz="4.96191932"/>
|
||||
</inertial>
|
||||
</link>
|
||||
<link name="controller_box">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="-0.325 0 -0.38"/>
|
||||
<geometry>
|
||||
<box size="0.22 0.4 0.53"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="controller_box_fixed" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
|
||||
<parent link="base"/>
|
||||
<child link="controller_box"/>
|
||||
</joint>
|
||||
<link name="pedestal_feet">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="-0.1225 0 -0.758"/>
|
||||
<geometry>
|
||||
<box size="0.77 0.7 0.31"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="pedestal_feet_fixed" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
|
||||
<parent link="base"/>
|
||||
<child link="pedestal_feet"/>
|
||||
</joint>
|
||||
<joint name="pedestal_fixed" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
|
||||
<parent link="base"/>
|
||||
<child link="pedestal"/>
|
||||
</joint>
|
||||
</xacro:if>
|
||||
<joint name="right_arm_mount" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
|
||||
<parent link="base"/>
|
||||
<child link="right_arm_base_link"/>
|
||||
</joint>
|
||||
<joint name="torso_t0" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<parent link="base"/>
|
||||
<child link="torso"/>
|
||||
</joint>
|
||||
<link name="right_arm_base_link">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-0.0006241 -2.8025E-05 0.065404"/>
|
||||
<mass value="2.0687"/>
|
||||
<inertia ixx="0.0067599" ixy="-4.2024E-05" ixz="-6.1904E-07" iyy="0.0067877" iyz="1.5888E-05" izz="0.0074031"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/base.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.12"/>
|
||||
<geometry>
|
||||
<cylinder length="0.24" radius="0.08"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<link name="right_l0">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.024366 0.010969 0.14363"/>
|
||||
<mass value="5.3213"/>
|
||||
<inertia ixx="0.053314" ixy="0.0047093" ixz="0.011734" iyy="0.057902" iyz="0.0080179" izz="0.023659"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_mp3/l0.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0.08 0 0.23"/>
|
||||
<geometry>
|
||||
<sphere radius="0.07"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j0" type="revolute">
|
||||
<origin rpy="0 0 0" xyz="0 0 0.08"/>
|
||||
<parent link="right_arm_base_link"/>
|
||||
<child link="right_l0"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="80.0" lower="-3.0503" upper="3.0503" velocity="1.74"/>
|
||||
<xacro:if value="$(arg gazebo)">
|
||||
<dynamics damping="10.0" friction="5.0"/>
|
||||
</xacro:if>
|
||||
</joint>
|
||||
<link name="head">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0053207 -2.6549E-05 0.1021"/>
|
||||
<mass value="1.5795"/>
|
||||
<inertia ixx="0.011833" ixy="-4.4669E-06" ixz="4.9425E-05" iyy="0.0082709" iyz="4.2124E-07" izz="0.0049661"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/head.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.08"/>
|
||||
<geometry>
|
||||
<sphere radius="0.18"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="head_pan" type="revolute">
|
||||
<origin rpy="0 0 0" xyz="0 0 0.2965"/>
|
||||
<parent link="right_l0"/>
|
||||
<child link="head"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="8" lower="-5.0952" upper="0.9064" velocity="1.8"/>
|
||||
<xacro:if value="$(arg gazebo)">
|
||||
<dynamics damping="1.0" friction="0.5"/>
|
||||
</xacro:if>
|
||||
</joint>
|
||||
<link name="right_torso_itb">
|
||||
<xacro:unless value="$(arg gazebo)">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.000000 0.000000 0.000000"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</xacro:unless>
|
||||
</link>
|
||||
<joint name="right_torso_itb" type="fixed">
|
||||
<origin rpy="0 -1.57079632679 0" xyz="-.055 0 .22"/>
|
||||
<parent link="right_l0"/>
|
||||
<child link="right_torso_itb"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
</joint>
|
||||
<link name="right_l1">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-0.0030849 -0.026811 0.092521"/>
|
||||
<mass value="4.505"/>
|
||||
<inertia ixx="0.022398" ixy="-0.00023986" ixz="-0.00029362" iyy="0.014613" iyz="-0.0060875" izz="0.017295"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_mp3/l1.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.1225"/>
|
||||
<geometry>
|
||||
<sphere radius="0.07"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j1" type="revolute">
|
||||
<origin rpy="-1.57079632679 1.57079632679 0" xyz="0.081 0.05 0.237"/>
|
||||
<parent link="right_l0"/>
|
||||
<child link="right_l1"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="80.0" lower="-3.8095" upper="2.2736" velocity="1.328"/>
|
||||
<xacro:if value="$(arg gazebo)">
|
||||
<dynamics damping="5.0" friction="2.0"/>
|
||||
</xacro:if>
|
||||
</joint>
|
||||
<link name="right_l2">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-0.00016044 -0.014967 0.13582"/>
|
||||
<mass value="1.745"/>
|
||||
<inertia ixx="0.025506" ixy="4.4101E-06" ixz="1.4955E-05" iyy="0.0253" iyz="-0.0033204" izz="0.0034179"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/l2.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.08"/>
|
||||
<geometry>
|
||||
<cylinder length="0.34" radius="0.06"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j2" type="revolute">
|
||||
<origin rpy="1.57079632679 0 0" xyz="0 -0.14 0.1425"/>
|
||||
<parent link="right_l1"/>
|
||||
<child link="right_l2"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="40.0" lower="-3.0426" upper="3.0426" velocity="1.957"/>
|
||||
<xacro:if value="$(arg gazebo)">
|
||||
<dynamics damping="5.0" friction="2.0"/>
|
||||
</xacro:if>
|
||||
</joint>
|
||||
<link name="right_l3">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-0.0048135 -0.0281 -0.084154"/>
|
||||
<mass value="2.5097"/>
|
||||
<inertia ixx="0.01016" ixy="-9.7452E-06" ixz="0.00026624" iyy="0.0065685" iyz="0.0030316" izz="0.0069078"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/l3.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 -0.01 -0.12"/>
|
||||
<geometry>
|
||||
<sphere radius="0.06"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j3" type="revolute">
|
||||
<origin rpy="-1.57079632679 0 0" xyz="0 -0.042 0.26"/>
|
||||
<parent link="right_l2"/>
|
||||
<child link="right_l3"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="40.0" lower="-3.0439" upper="3.0439" velocity="1.957"/>
|
||||
<xacro:if value="$(arg gazebo)">
|
||||
<dynamics damping="1.0" friction="0.5"/>
|
||||
</xacro:if>
|
||||
</joint>
|
||||
<link name="right_l4">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-0.0018844 0.0069001 0.1341"/>
|
||||
<mass value="1.1136"/>
|
||||
<inertia ixx="0.013557" ixy="1.8109E-05" ixz="0.00013523" iyy="0.013555" iyz="0.0010561" izz="0.0013658"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/l4.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.11"/>
|
||||
<geometry>
|
||||
<cylinder length="0.30" radius="0.045"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j4" type="revolute">
|
||||
<origin rpy="1.57079632679 0 0" xyz="0 -0.125 -0.1265"/>
|
||||
<parent link="right_l3"/>
|
||||
<child link="right_l4"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="9.0" lower="-2.9761" upper="2.9761" velocity="3.485"/>
|
||||
<xacro:if value="$(arg gazebo)">
|
||||
<dynamics damping="2.0" friction="1.0"/>
|
||||
</xacro:if>
|
||||
</joint>
|
||||
<link name="right_arm_itb">
|
||||
<xacro:unless value="$(arg gazebo)">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.000000 0.000000 0.000000"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</xacro:unless>
|
||||
</link>
|
||||
<joint name="right_arm_itb" type="fixed">
|
||||
<origin rpy="0 -1.57079632679 0" xyz="-.055 0 .075"/>
|
||||
<parent link="right_l4"/>
|
||||
<child link="right_arm_itb"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
</joint>
|
||||
<link name="right_l5">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0.0061133 -0.023697 0.076416"/>
|
||||
<mass value="1.5625"/>
|
||||
<inertia ixx="0.0047328" ixy="0.00011526" ixz="4.6269E-05" iyy="0.0029676" iyz="-0.0011557" izz="0.0031762"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_pv/l5.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.1"/>
|
||||
<geometry>
|
||||
<sphere radius="0.06"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j5" type="revolute">
|
||||
<origin rpy="-1.57079632679 0 0" xyz="0 0.031 0.275"/>
|
||||
<parent link="right_l4"/>
|
||||
<child link="right_l5"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<limit effort="9.0" lower="-2.9761" upper="2.9761" velocity="3.485"/>
|
||||
<xacro:if value="$(arg gazebo)">
|
||||
<dynamics damping="1.0" friction="0.5"/>
|
||||
</xacro:if>
|
||||
</joint>
|
||||
<link name="right_hand_camera"/>
|
||||
<joint name="right_hand_camera" type="fixed">
|
||||
<origin rpy="0 1.57079632679 0" xyz="0.039552 -0.033 0.0695"/>
|
||||
<parent link="right_l5"/>
|
||||
<child link="right_hand_camera"/>
|
||||
<axis xyz="0 0 0"/>
|
||||
</joint>
|
||||
<link name="right_wrist"/>
|
||||
<joint name="right_wrist" type="fixed">
|
||||
<origin rpy="1.57079632679 0 0" xyz="0 0 0.10541"/>
|
||||
<parent link="right_l5"/>
|
||||
<child link="right_wrist"/>
|
||||
<axis xyz="0 0 0"/>
|
||||
</joint>
|
||||
<link name="right_l6">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="-8.0726E-06 0.0085838 -0.0049566"/>
|
||||
<mass value="0.3292"/>
|
||||
<inertia ixx="0.00031105" ixy="1.4771E-06" ixz="-3.7074E-07" iyy="0.00021549" iyz="-8.4533E-06" izz="0.00035976"/>
|
||||
</inertial>
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<mesh filename="package://sawyer_description/meshes/sawyer_mp1/l6.DAE"/>
|
||||
</geometry>
|
||||
<material name="sawyer_red"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0.015 -0.01"/>
|
||||
<geometry>
|
||||
<cylinder length="0.05" radius="0.055"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j6" type="revolute">
|
||||
<origin rpy="-1.57079632679 -0.17453 3.1416" xyz="0 -0.11 0.1053"/>
|
||||
<parent link="right_l5"/>
|
||||
<child link="right_l6"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<xacro:if value="$(arg gazebo)">
|
||||
<limit effort="9.0" lower="-3.14" upper="3.14" velocity="4.545"/>
|
||||
<dynamics damping="1.0" friction="0.5"/>
|
||||
</xacro:if>
|
||||
<xacro:unless value="$(arg gazebo)">
|
||||
<limit effort="9.0" lower="-4.7124" upper="4.7124" velocity="4.545"/>
|
||||
</xacro:unless>
|
||||
</joint>
|
||||
<link name="right_hand">
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.02"/>
|
||||
<geometry>
|
||||
<cylinder length="0.03" radius="0.035"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<xacro:if value="$(arg gazebo)">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0 0.1 0"/>
|
||||
<mass value="0.01"/>
|
||||
<inertia ixx="0.01" ixy="0.01" ixz="0.01" iyy="0.01" iyz="0.01" izz="0.01"/>
|
||||
</inertial>
|
||||
</xacro:if>
|
||||
<xacro:unless value="$(arg gazebo)">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="1.0E-08 1.0E-08 1.0E-08"/>
|
||||
<mass value="1.0E-08"/>
|
||||
<inertia ixx="1.0E-08" ixy="1.0E-08" ixz="1.0E-08" iyy="1.0E-08" iyz="1.0E-08" izz="1.0E-08"/>
|
||||
</inertial>
|
||||
</xacro:unless>
|
||||
</link>
|
||||
<joint name="right_hand" type="fixed">
|
||||
<origin rpy="0 0 1.570796" xyz="0 0 0.0245"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
<parent link="right_l6"/>
|
||||
<child link="right_hand"/>
|
||||
</joint>
|
||||
<link name="right_l1_2">
|
||||
<xacro:unless value="$(arg gazebo)">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="1.0E-08 1.0E-08 1.0E-08"/>
|
||||
<mass value="1.0E-08"/>
|
||||
<inertia ixx="1.0E-08" ixy="1.0E-08" ixz="1.0E-08" iyy="1.0E-08" iyz="1.0E-08" izz="1.0E-08"/>
|
||||
</inertial>
|
||||
</xacro:unless>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.035"/>
|
||||
<geometry>
|
||||
<cylinder length="0.14" radius="0.07"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j1_2" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<parent link="right_l1"/>
|
||||
<child link="right_l1_2"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
</joint>
|
||||
<link name="right_l2_2">
|
||||
<xacro:unless value="$(arg gazebo)">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="1.0E-08 1.0E-08 1.0E-08"/>
|
||||
<mass value="1.0E-08"/>
|
||||
<inertia ixx="1.0E-08" ixy="1.0E-08" ixz="1.0E-08" iyy="1.0E-08" iyz="1.0E-08" izz="1.0E-08"/>
|
||||
</inertial>
|
||||
</xacro:unless>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0.26"/>
|
||||
<geometry>
|
||||
<sphere radius="0.06"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j2_2" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<parent link="right_l2"/>
|
||||
<child link="right_l2_2"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
</joint>
|
||||
<link name="right_l4_2">
|
||||
<xacro:unless value="$(arg gazebo)">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="1.0E-08 1.0E-08 1.0E-08"/>
|
||||
<mass value="1.0E-08"/>
|
||||
<inertia ixx="1.0E-08" ixy="1.0E-08" ixz="1.0E-08" iyy="1.0E-08" iyz="1.0E-08" izz="1.0E-08"/>
|
||||
</inertial>
|
||||
</xacro:unless>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0.01 0.26"/>
|
||||
<geometry>
|
||||
<sphere radius="0.06"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
</link>
|
||||
<joint name="right_j4_2" type="fixed">
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<parent link="right_l4"/>
|
||||
<child link="right_l4_2"/>
|
||||
<axis xyz="0 0 1"/>
|
||||
</joint>
|
||||
<link name="screen">
|
||||
<visual>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<box size="0.24 0.14 0.002"/>
|
||||
</geometry>
|
||||
<material name="darkgray"/>
|
||||
</visual>
|
||||
<collision>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<geometry>
|
||||
<sphere radius="0.001"/>
|
||||
</geometry>
|
||||
</collision>
|
||||
<xacro:unless value="$(arg gazebo)">
|
||||
<inertial>
|
||||
<origin rpy="0 0 0" xyz="0 0 0"/>
|
||||
<mass value="0.0001"/>
|
||||
<inertia ixx="1e-08" ixy="0" ixz="0" iyy="1e-08" iyz="0" izz="1e-08"/>
|
||||
</inertial>
|
||||
</xacro:unless>
|
||||
</link>
|
||||
<joint name="display_joint" type="fixed">
|
||||
<origin rpy="1.57079632679 0 1.57079632679" xyz="0.03 0.0 0.105"/>
|
||||
<parent link="head"/>
|
||||
<child link="screen"/>
|
||||
</joint>
|
||||
<link name="head_camera"/>
|
||||
<joint name="head_camera" type="fixed">
|
||||
<origin rpy="-2.1293 0 -1.57079632679" xyz="0.0228027 0 0.216572"/>
|
||||
<parent link="head"/>
|
||||
<child link="head_camera"/>
|
||||
<axis xyz="0 0 0"/>
|
||||
</joint>
|
||||
</robot>
|
||||
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" ?>
|
||||
<robot name="end_effector" xmlns:xacro="http://www.ros.org/wiki/xacro">
|
||||
<xacro:arg name="gazebo" default="true"/>
|
||||
<xacro:if value="$(arg gazebo)">
|
||||
<xacro:property name="gazebo_tag" value="true" scope="local"/>
|
||||
</xacro:if>
|
||||
<xacro:unless value="$(arg gazebo)">
|
||||
<xacro:property name="gazebo_tag" value="true" scope="local"/>
|
||||
</xacro:unless>
|
||||
|
||||
<xacro:include filename="$(find ddpg)/urdf/electric_gripper/rethink_electric_gripper.xacro" />
|
||||
<xacro:rethink_electric_gripper side="right"
|
||||
gazebo="${gazebo_tag}"
|
||||
use_connector_plate="true"
|
||||
l_finger="standard_narrow"
|
||||
l_finger_slot="2"
|
||||
l_finger_tip="basic_soft_tip"
|
||||
l_finger_grasp="inner"
|
||||
r_finger="standard_narrow"
|
||||
r_finger_slot="2"
|
||||
r_finger_tip="basic_soft_tip"
|
||||
r_finger_grasp="inner"/>
|
||||
</robot>
|
||||
Reference in New Issue
Block a user