Change wam_description to comply with Denavit-Hartemberg Convetions.
authorWalter Fetter Lages <w.fetter@ieee.org>
Wed, 28 Nov 2018 21:08:06 +0000 (19:08 -0200)
committerWalter Fetter Lages <w.fetter@ieee.org>
Wed, 28 Nov 2018 21:08:06 +0000 (19:08 -0200)
Change intertia parameters according to Barrett Wam Documentation.

Change launch files.

36 files changed:
ufrgs_bhand_description/CMakeLists.txt [new file with mode: 0644]
ufrgs_bhand_description/launch/bhand.launch [new file with mode: 0644]
ufrgs_bhand_description/launch/display.launch [new file with mode: 0644]
ufrgs_bhand_description/launch/gazebo.launch [new file with mode: 0644]
ufrgs_bhand_description/meshes/bh_base.stl [new file with mode: 0644]
ufrgs_bhand_description/meshes/bh_link1.stl [new file with mode: 0644]
ufrgs_bhand_description/meshes/bh_link2.stl [new file with mode: 0644]
ufrgs_bhand_description/meshes/bh_link3.stl [new file with mode: 0644]
ufrgs_bhand_description/package.xml [new file with mode: 0644]
ufrgs_bhand_description/rviz/urdf.rviz [new file with mode: 0644]
ufrgs_bhand_description/xacro/bhand.urdf.xacro [new file with mode: 0644]
ufrgs_bhand_description/xacro/bhand0.urdf.xacro [new file with mode: 0644]
ufrgs_bhand_description/xacro/bhand_base.urdf.xacro [new file with mode: 0644]
ufrgs_bhand_description/xacro/bhand_finger.urdf.xacro [new file with mode: 0644]
wam_controllers/launch/display.launch
wam_controllers/launch/gazebo.launch
wam_controllers/wam_controllers_plugins.xml
wam_description/launch/display.launch
wam_description/launch/gazebo.launch
wam_description/launch/wam.launch
wam_description/package.xml
wam_description/rviz/urdf.rviz
wam_description/rviz/urdf.rviz.bkp [new file with mode: 0644]
wam_description/xacro/wam.urdf.xacro
wam_description/xacro/wam_base.urdf.xacro
wam_description/xacro/wam_bhand.urdf.xacro [new file with mode: 0644]
wam_description/xacro/wam_bhand_table.urdf.xacro [new file with mode: 0644]
wam_description/xacro/wam_bhand_world.urdf.xacro [new file with mode: 0644]
wam_description/xacro/wam_j1.urdf.xacro
wam_description/xacro/wam_j2.urdf.xacro
wam_description/xacro/wam_j3.urdf.xacro
wam_description/xacro/wam_j4.urdf.xacro
wam_description/xacro/wam_j5.urdf.xacro
wam_description/xacro/wam_j6.urdf.xacro
wam_description/xacro/wam_j7.urdf.xacro
wam_description/xacro/wam_tool_plate.urdf.xacro

diff --git a/ufrgs_bhand_description/CMakeLists.txt b/ufrgs_bhand_description/CMakeLists.txt
new file mode 100644 (file)
index 0000000..b5575a6
--- /dev/null
@@ -0,0 +1,195 @@
+cmake_minimum_required(VERSION 2.8.3)
+project(ufrgs_bhand_description)
+
+## 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)
+
+## 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 messages in the 'msg' folder
+# add_message_files(
+#   FILES
+#   Message1.msg
+#   Message2.msg
+# )
+
+## 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
+#   std_msgs  # Or other packages containing 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 you 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 ufrgs_bhand_description
+#  CATKIN_DEPENDS other_catkin_pkg
+#  DEPENDS system_lib
+)
+
+###########
+## 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}/ufrgs_bhand_description.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/ufrgs_bhand_description_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_ufrgs_bhand_description.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)
diff --git a/ufrgs_bhand_description/launch/bhand.launch b/ufrgs_bhand_description/launch/bhand.launch
new file mode 100644 (file)
index 0000000..5d4f5b1
--- /dev/null
@@ -0,0 +1,6 @@
+<launch>
+       <arg name="world" default="false"/>
+
+       <param unless="$(arg world)" name="robot_description" command="$(find xacro)/xacro.py '$(find ufrgs_bhand_description)/xacro/bhand.urdf.xacro'" />
+       <param if="$(arg world)" name="robot_description" command="$(find xacro)/xacro.py '$(find ufrgs_bhand_description)/xacro/bhand0.urdf.xacro'" />
+</launch>
diff --git a/ufrgs_bhand_description/launch/display.launch b/ufrgs_bhand_description/launch/display.launch
new file mode 100644 (file)
index 0000000..95f1f44
--- /dev/null
@@ -0,0 +1,11 @@
+<launch>
+       <arg name="use_gui" default="true"/>
+
+       <include file="$(find ufrgs_bhand_description)/launch/bhand.launch" />
+
+       <node if="$(arg use_gui)" name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" args="_use_gui:=true" />
+
+       <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher" />
+
+       <node name="rviz" pkg="rviz" type="rviz" args="-d $(find ufrgs_bhand_description)/rviz/urdf.rviz" required="true"/>
+</launch>
diff --git a/ufrgs_bhand_description/launch/gazebo.launch b/ufrgs_bhand_description/launch/gazebo.launch
new file mode 100644 (file)
index 0000000..391e1d3
--- /dev/null
@@ -0,0 +1,19 @@
+<launch>
+       <arg name="paused" default="true"/>
+       <arg name="headless" default="false"/>
+       <arg name="use_sim_time" default="true"/>
+       <arg name="world" default="true"/>
+
+       <include file="$(find gazebo_ros)/launch/empty_world.launch">
+               <arg name="paused" value="$(arg paused)"/>
+               <arg name="headless" value="$(arg headless)"/>
+               <arg name="use_sim_time" value="$(arg use_sim_time)"/>
+               <arg name="world_name" value="worlds/empty_sky.world" />
+       </include>
+
+       <include file="$(find ufrgs_bhand_description)/launch/bhand.launch" >
+               <arg name="world" value="$(arg world)" />
+       </include>
+
+       <node name="wam_spawner" pkg="gazebo_ros" type="spawn_model" args="-urdf -param robot_description -model bhand" respawn="false" output="screen" />
+</launch>
diff --git a/ufrgs_bhand_description/meshes/bh_base.stl b/ufrgs_bhand_description/meshes/bh_base.stl
new file mode 100644 (file)
index 0000000..dce76f7
Binary files /dev/null and b/ufrgs_bhand_description/meshes/bh_base.stl differ
diff --git a/ufrgs_bhand_description/meshes/bh_link1.stl b/ufrgs_bhand_description/meshes/bh_link1.stl
new file mode 100644 (file)
index 0000000..bf35bd9
Binary files /dev/null and b/ufrgs_bhand_description/meshes/bh_link1.stl differ
diff --git a/ufrgs_bhand_description/meshes/bh_link2.stl b/ufrgs_bhand_description/meshes/bh_link2.stl
new file mode 100644 (file)
index 0000000..f74e529
Binary files /dev/null and b/ufrgs_bhand_description/meshes/bh_link2.stl differ
diff --git a/ufrgs_bhand_description/meshes/bh_link3.stl b/ufrgs_bhand_description/meshes/bh_link3.stl
new file mode 100644 (file)
index 0000000..d9361c6
Binary files /dev/null and b/ufrgs_bhand_description/meshes/bh_link3.stl differ
diff --git a/ufrgs_bhand_description/package.xml b/ufrgs_bhand_description/package.xml
new file mode 100644 (file)
index 0000000..ec9f31e
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0"?>
+<package>
+  <name>ufrgs_bhand_description</name>
+  <version>2.0.0</version>
+  <description><p>The ufrgs_bhand_description package</p>
+  
+       <p>This package contains xacro files for the Barrett Hand gripper.
+       It is based on the iri_wam_description package developed by the IRI
+       Robotics Lab but with gripper parameters (mainly inertia parameters)
+       adapted to the Barrett Hand available at UFRGS.
+       </p>
+  </description>
+
+  <!-- One maintainer tag required, multiple allowed, one person per tag -->
+  <!-- Example:  -->
+  <!-- <maintainer email="jane.doe@example.com">Jane Doe</maintainer> -->
+  <maintainer email="fetter@ece.ufrgs.br">fetter@ece.ufrgs.br</maintainer>
+
+
+  <!-- One license tag required, multiple allowed, one license per tag -->
+  <!-- Commonly used license strings: -->
+  <!--   BSD, MIT, Boost Software License, GPLv2, GPLv3, LGPLv2.1, LGPLv3 -->
+  <license>BSD</license>
+
+
+  <!-- Url tags are optional, but multiple are allowed, one per tag -->
+  <!-- Optional attribute type can be: website, bugtracker, or repository -->
+  <!-- Example: -->
+  <!-- <url type="website">http://wiki.ros.org/ufrgs_bhand_description</url> -->
+  <url type="website">http://www.ece.ufrgs.br/~fetter/ufrgs_wam</url>
+  <url type="website">http://wiki.ros.org/iri_bhand_description</url>
+
+  <!-- Author tags are optional, multiple are allowed, one per tag -->
+  <!-- Authors do not have to be maintainers, but could be -->
+  <!-- Example: -->
+  <!-- <author email="jane.doe@example.com">Jane Doe</author> -->
+  <author email="fetter@ece.ufrgs.br">Walter Fetter Lages</author>
+  <author>IRI Robotics Lab, Ivan Rojas (irojas@iri.upc.edu)</author>
+
+
+  <!-- The *_depend tags are used to specify dependencies -->
+  <!-- Dependencies can be catkin packages or system dependencies -->
+  <!-- Examples: -->
+  <!-- Use build_depend for packages you need at compile time: -->
+  <!--   <build_depend>message_generation</build_depend> -->
+  <!-- Use buildtool_depend for build tool packages: -->
+  <!--   <buildtool_depend>catkin</buildtool_depend> -->
+  <!-- Use run_depend for packages you need at runtime: -->
+  <!--   <run_depend>message_runtime</run_depend> -->
+  <!-- Use test_depend for packages you need only for testing: -->
+  <!--   <test_depend>gtest</test_depend> -->
+  <buildtool_depend>catkin</buildtool_depend>
+
+
+  <!-- The export tag contains other, unspecified, tags -->
+  <export>
+    <!-- Other tools can request additional information be placed here -->
+
+  </export>
+</package>
diff --git a/ufrgs_bhand_description/rviz/urdf.rviz b/ufrgs_bhand_description/rviz/urdf.rviz
new file mode 100644 (file)
index 0000000..f2c716b
--- /dev/null
@@ -0,0 +1,180 @@
+Panels:
+  - Class: rviz/Displays
+    Help Height: 78
+    Name: Displays
+    Property Tree Widget:
+      Expanded:
+        - /RobotModel1
+        - /RobotModel1/Links1
+        - /RobotModel1/Links1/bhand_origin1
+      Splitter Ratio: 0.588816
+    Tree Height: 559
+  - Class: rviz/Selection
+    Name: Selection
+  - Class: rviz/Tool Properties
+    Expanded:
+      - /2D Pose Estimate1
+      - /2D Nav Goal1
+      - /Publish Point1
+    Name: Tool Properties
+    Splitter Ratio: 0.588679
+  - Class: rviz/Views
+    Expanded:
+      - /Current View1
+    Name: Views
+    Splitter Ratio: 0.5
+  - Class: rviz/Time
+    Experimental: false
+    Name: Time
+    SyncMode: 0
+    SyncSource: ""
+Visualization Manager:
+  Class: ""
+  Displays:
+    - Alpha: 0.5
+      Cell Size: 1
+      Class: rviz/Grid
+      Color: 160; 160; 164
+      Enabled: true
+      Line Style:
+        Line Width: 0.03
+        Value: Lines
+      Name: Grid
+      Normal Cell Count: 0
+      Offset:
+        X: 0
+        Y: 0
+        Z: 0
+      Plane: XY
+      Plane Cell Count: 10
+      Reference Frame: <Fixed Frame>
+      Value: true
+    - Alpha: 1
+      Class: rviz/RobotModel
+      Collision Enabled: false
+      Enabled: true
+      Links:
+        All Links Enabled: true
+        Expand Joint Details: false
+        Expand Link Details: false
+        Expand Tree: false
+        Link Tree Style: ""
+        bhand_base_link:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        bhand_finger1_link_1:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        bhand_finger1_link_2:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        bhand_finger1_link_3:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        bhand_finger2_link_1:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        bhand_finger2_link_2:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        bhand_finger2_link_3:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        bhand_finger3_link_1:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        bhand_finger3_link_2:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        bhand_finger3_link_3:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        bhand_origin:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+      Name: RobotModel
+      Robot Description: robot_description
+      TF Prefix: ""
+      Update Interval: 0
+      Value: true
+      Visual Enabled: true
+  Enabled: true
+  Global Options:
+    Background Color: 48; 48; 48
+    Fixed Frame: bhand_origin
+    Frame Rate: 30
+  Name: root
+  Tools:
+    - Class: rviz/Interact
+      Hide Inactive Objects: true
+    - Class: rviz/MoveCamera
+    - Class: rviz/Select
+    - Class: rviz/FocusCamera
+    - Class: rviz/Measure
+    - Class: rviz/SetInitialPose
+      Topic: /initialpose
+    - Class: rviz/SetGoal
+      Topic: /move_base_simple/goal
+    - Class: rviz/PublishPoint
+      Single click: true
+      Topic: /clicked_point
+  Value: true
+  Views:
+    Current:
+      Class: rviz/Orbit
+      Distance: 0.651721
+      Enable Stereo Rendering:
+        Stereo Eye Separation: 0.06
+        Stereo Focal Distance: 1
+        Swap Stereo Eyes: false
+        Value: false
+      Focal Point:
+        X: 0
+        Y: 0
+        Z: 0
+      Name: Current View
+      Near Clip Distance: 0.01
+      Pitch: 0.635399
+      Target Frame: <Fixed Frame>
+      Value: Orbit (rviz)
+      Yaw: 1.25857
+    Saved: ~
+Window Geometry:
+  Displays:
+    collapsed: false
+  Height: 846
+  Hide Left Dock: false
+  Hide Right Dock: false
+  QMainWindow State: 000000ff00000000fd000000040000000000000185000002bafc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005300fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000036000002ba000000b700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002bafc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000036000002ba0000009b00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b00000024700fffffffb0000000800540069006d0065010000000000000450000000000000000000000210000002ba00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
+  Selection:
+    collapsed: false
+  Time:
+    collapsed: false
+  Tool Properties:
+    collapsed: false
+  Views:
+    collapsed: false
+  Width: 1200
+  X: 312
+  Y: 0
diff --git a/ufrgs_bhand_description/xacro/bhand.urdf.xacro b/ufrgs_bhand_description/xacro/bhand.urdf.xacro
new file mode 100644 (file)
index 0000000..d71d447
--- /dev/null
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<robot name="bhand" xmlns:xacro="http://ros.org/wiki/xacro">
+
+  <xacro:property name="M_PI" value="3.1415926535897931" />
+  
+  <xacro:include filename="$(find ufrgs_bhand_description)/xacro/bhand_base.urdf.xacro" />
+  <xacro:include filename="$(find ufrgs_bhand_description)/xacro/bhand_finger.urdf.xacro" />
+
+  <xacro:bhand_base />
+
+  <xacro:bhand_finger parent="base_link" link="finger1_link_1" joint="spread" type="revolute">
+               <origin xyz="0.0 0.02475 0.1325" rpy="0.0 0 0" /> 
+               <limit effort="30" velocity="1.5" lower="0.0" upper="${M_PI}" />
+               <mesh filename="package://ufrgs_bhand_description/meshes/bh_link1.stl" />
+               <mimic_attr/>
+  </xacro:bhand_finger>
+
+  <xacro:bhand_transmission joint="spread" />
+
+  <xacro:bhand_finger parent="base_link" link="finger2_link_1" joint="spread_finger2" type="revolute">
+               <origin xyz="0.0 -0.02475 0.1325" rpy="0.0 0 0" /> 
+               <limit effort="30" velocity="1.5" lower="-${M_PI}" upper="0.0" />
+               <mesh filename="package://ufrgs_bhand_description/meshes/bh_link1.stl" />
+               <mimic_attr>
+                       <mimic joint="bhand_spread" multiplier="-1.0" offset="0" />
+               </mimic_attr>
+  </xacro:bhand_finger>
+
+  <xacro:bhand_finger parent="base_link" link="finger3_link_1" joint="finger3_joint_1" type="fixed">
+               <origin xyz="0.0 0.0 0.1325" rpy="0.0 0 0" /> 
+               <limit effort="30" velocity="0.0" lower="0.0" upper="0.0" />
+               <mesh filename="package://ufrgs_bhand_description/meshes/bh_link1.stl" />
+               <mimic_attr/>
+  </xacro:bhand_finger>
+
+  <xacro:bhand_finger parent="finger1_link_1" link="finger1_link_2" joint="finger1_joint_2" type="revolute">
+               <origin xyz="0.050 0.0 0.0" rpy="${M_PI/2} 0.0 0.0" /> 
+               <limit effort="30" velocity="1.5" lower="0.0" upper="${140 * M_PI / 180}" />
+               <mesh filename="package://ufrgs_bhand_description/meshes/bh_link2.stl" />
+               <mimic_attr/>
+  </xacro:bhand_finger>
+
+  <xacro:bhand_transmission joint="finger1_joint_2" />
+
+  <xacro:bhand_finger parent="finger2_link_1" link="finger2_link_2" joint="finger2_joint_2" type="revolute">
+               <origin xyz="0.050 0.0 0.0" rpy="${M_PI/2} 0.0 0.0" /> 
+               <limit effort="30" velocity="1.5" lower="0.0" upper="${140 * M_PI / 180}" />
+               <mesh filename="package://ufrgs_bhand_description/meshes/bh_link2.stl" />
+               <mimic_attr/>
+  </xacro:bhand_finger>
+
+  <xacro:bhand_transmission joint="finger2_joint_2" />
+
+  <xacro:bhand_finger parent="finger3_link_1" link="finger3_link_2" joint="finger3_joint_2" type="revolute">
+               <origin xyz="0.050 0.0 0.0" rpy="${M_PI/2} 0.0 0.0" /> 
+               <limit effort="30" velocity="1.5" lower="0.0" upper="${140 * M_PI / 180}" />
+               <mesh filename="package://ufrgs_bhand_description/meshes/bh_link2.stl" />
+               <mimic_attr/>
+  </xacro:bhand_finger>
+
+  <xacro:bhand_transmission joint="finger3_joint_2" />
+
+  <xacro:bhand_finger parent="finger1_link_2" link="finger1_link_3" joint="finger1_joint_3" type="revolute">
+               <origin xyz="0.070 0.0 0.0" rpy="0.0 0 0.0" /> 
+               <limit effort="30" velocity="1.5" lower="${40 * M_PI / 180}" upper="2.44346095" />
+<!--
+       <origin xyz="0.070 0 0" rpy="0 0 ${42 * M_PI / 180}" />
+       <limit lower="0" upper="${48 * M_PI / 180}" effort="30" velocity="2.0"/>
+-->
+               <mesh filename="package://ufrgs_bhand_description/meshes/bh_link3.stl" />
+
+               <mimic_attr>
+                       <mimic joint="bhand_finger1_joint_2" multiplier="${48 / 140}" offset="${40 * M_PI / 180}"/>
+               </mimic_attr>
+  </xacro:bhand_finger>
+
+  <xacro:bhand_finger parent="finger2_link_2" link="finger2_link_3" joint="finger2_joint_3" type="revolute">
+               <origin xyz="0.070 0.0 0.0" rpy="0.0 0 0.0" /> 
+               <limit effort="30" velocity="1.5" lower="${40 * M_PI / 180}" upper="2.44346095" />
+               <mesh filename="package://ufrgs_bhand_description/meshes/bh_link3.stl" />
+<!--
+       <origin xyz="0.070 0 0" rpy="0 0 ${42 * M_PI / 180}" />
+       <limit lower="0" upper="${48 * M_PI / 180}" effort="30" velocity="2.0"/>
+-->
+               <mimic_attr>
+                       <mimic joint="bhand_finger2_joint_2" multiplier="${48 / 140}" offset="${40 * M_PI / 180}"/>
+               </mimic_attr>
+  </xacro:bhand_finger>
+
+  <xacro:bhand_finger parent="finger3_link_2" link="finger3_link_3" joint="finger3_joint_3" type="revolute">
+               <origin xyz="0.070 0.0 0.0" rpy="0.0 0 0.0" /> 
+               <limit effort="30" velocity="1.5" lower="${40 * M_PI / 180}" upper="2.44346095" />
+               <mesh filename="package://ufrgs_bhand_description/meshes/bh_link3.stl" />
+<!--
+       <origin xyz="0.070 0 0" rpy="0 0 ${42 * M_PI / 180}" />
+       <limit lower="0" upper="${48 * M_PI / 180}" effort="30" velocity="2.0"/>
+-->
+               <mimic_attr>
+                       <mimic joint="bhand_finger3_joint_2" multiplier="${48 / 140}" offset="${40 * M_PI / 180}"/>
+               </mimic_attr>
+  </xacro:bhand_finger>
+
+</robot>
diff --git a/ufrgs_bhand_description/xacro/bhand0.urdf.xacro b/ufrgs_bhand_description/xacro/bhand0.urdf.xacro
new file mode 100644 (file)
index 0000000..1722201
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<robot name="bhand" xmlns:xacro="http://ros.org/wiki/xacro">
+
+       <link name="world" />
+
+       <include filename="$(find ufrgs_bhand_description)/xacro/bhand.urdf.xacro" />
+
+       <joint name="bhand_origin" type="fixed">
+               <parent link="world"/>
+               <child link="bhand_origin" />
+               <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
+       </joint>
+
+</robot>
diff --git a/ufrgs_bhand_description/xacro/bhand_base.urdf.xacro b/ufrgs_bhand_description/xacro/bhand_base.urdf.xacro
new file mode 100644 (file)
index 0000000..5548aa2
--- /dev/null
@@ -0,0 +1,48 @@
+<?xml version="1.0" ?>
+
+<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
+   <xacro:macro name="bhand_base">
+
+       <link name="bhand_origin"/>
+       
+       <link name="bhand_base_link">
+               <inertial>
+                       <mass value="0.8"/>
+                       <origin rpy="0 0 0" xyz="0 0 0" />  
+                       <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+               </inertial>
+               <visual>
+                       <origin rpy="0 0 0" xyz="0 0 0"/>
+                       <geometry>
+                               <mesh filename="package://ufrgs_bhand_description/meshes/bh_base.stl" />
+                       </geometry>
+                       <material name="Blue">
+                               <color rgba="0.0 0.0 0.5 1.0"/>
+                       </material>
+               </visual>
+               <collision>
+                       <origin rpy="0 0 0" xyz="0 0 0"/>
+                       <geometry>
+                               <mesh filename="package://ufrgs_bhand_description/meshes/bh_base.stl" />
+                       </geometry>
+                       <contact_coefficients kd="1.0" kp="1000.0" mu="0"/>
+               </collision>
+       </link>  
+
+       <gazebo reference="bhand_base_link">
+               <selfCollide>true</selfCollide>
+               <material>Gazebo/Blue</material>
+       </gazebo>
+
+
+       <joint name="bhand_base_joint" type="fixed">
+               <!--origin rpy="0 0 0" xyz="-0.060 -0.140 0.206"/-->
+               <!--origin rpy="0 0 0" xyz="0.22 0.14 0.346"/-->
+               <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
+               <child link="bhand_base_link"/>
+               <parent link="bhand_origin"/>
+       </joint>
+
+    </xacro:macro>
+
+</robot>
diff --git a/ufrgs_bhand_description/xacro/bhand_finger.urdf.xacro b/ufrgs_bhand_description/xacro/bhand_finger.urdf.xacro
new file mode 100644 (file)
index 0000000..e9d9fc2
--- /dev/null
@@ -0,0 +1,72 @@
+<?xml version="1.0" ?>
+
+<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
+
+  <xacro:macro name="bhand_finger" params="parent link joint type *origin *limit *mesh **mimic_attr">
+
+       <link name="bhand_${link}">
+               <inertial>
+                       <mass value="0.1"/>
+                       <origin xyz="0 0 0" />  
+                       <inertia ixx="1.0" ixy="0.0" ixz="0.0" iyy="1.0" iyz="0.0" izz="1.0"/>
+               </inertial>
+               <visual>
+                       <origin rpy="0 0 0" xyz="0 0 0"/>
+                       <geometry>
+                               <xacro:insert_block name="mesh" />
+                       </geometry>
+                       <material name="Grey">
+                               <color rgba="0.5 0.5 0.5 1.0"/>
+                       </material>
+               </visual>
+               <collision>
+                       <origin rpy="0 0 0" xyz="0 0 0"/>
+                       <geometry>
+                               <xacro:insert_block name="mesh" />
+                       </geometry>
+                       <contact_coefficients kd="1.0" kp="1000.0" mu="0"/>
+               </collision>
+       </link>  
+
+       <gazebo reference="bhand_${link}">
+               <material>Gazebo/Grey</material>
+               <selfCollide>true</selfCollide>
+       </gazebo> 
+
+       <joint name="bhand_${joint}" type="${type}">
+               <!--origin xyz="-0.02475 0.0 0.0395" rpy="0.0 0 1.57079633" /--> 
+               <!--origin xyz="0.0 0.02475 0.1325" rpy="0.0 0 0" /--> 
+
+               <xacro:insert_block name="origin" />
+
+               <parent link="bhand_${parent}"/>
+               <child link="bhand_${link}" />
+               <axis xyz="0 0 1"/>
+
+               <xacro:insert_block name="limit" />
+
+               <!--joint_properties damping="100.0" friction="1000.0" /-->
+               <dynamics damping="1000"/>
+
+               <xacro:insert_block name="mimic_attr"/>
+
+       </joint >
+
+  </xacro:macro>
+
+  <xacro:macro name="bhand_transmission" params="joint">
+
+       <transmission name="bhand_${joint}_transmission">
+               <type>transmission_interface/SimpleTransmission</type>
+               <joint name="bhand_${joint}">
+                       <hardwareInterface>PositionJointInterface</hardwareInterface>
+               </joint>
+               <actuator name="bhand_${joint}_actuator">
+                       <hardwareInterface>PositionJointInterface</hardwareInterface>
+                       <mechanicalReduction>1</mechanicalReduction>
+               </actuator>
+       </transmission>
+
+  </xacro:macro>
+
+</robot>
index 42fc09d..e9c9698 100644 (file)
@@ -1,15 +1,19 @@
 <launch>
        <arg name="table" default="true"/>
+       <arg name="bhand" default="true"/>
        <arg name="use_gui" default="false"/>
 
        <remap from="/joint_states" to="wam/joint_states" />
 
        <include file="$(find wam_description)/launch/display.launch" >
                <arg name="table" value="$(arg table)"/>
+               <arg name="bhand" value="$(arg bhand)"/>
                <arg name="use_gui" value="$(arg use_gui)" />
 
        </include>
 
+       <!-- For this to work, a controller manager should be loaded -->
+
        <!--include file="$(find wam_controllers)/launch/computed_torque.launch" /-->
 
 </launch>
index a968552..0b3a777 100644 (file)
@@ -1,8 +1,17 @@
 <launch>
+       <arg name="paused" default="true"/>
+       <arg name="headless" default="false"/>
+       <arg name="use_sim_time" default="true"/>
        <arg name="table" default="true"/>
+       <arg name="bhand" default="false"/>
+       
 
        <include file="$(find wam_description)/launch/gazebo.launch" >
+               <arg name="paused" value="$(arg paused)"/>
+               <arg name="headless" value="$(arg headless)"/>
+               <arg name="use_sim_time" value="$(arg use_sim_time)"/>
                <arg name="table" value="$(arg table)"/>
+               <arg name="bhand" value="$(arg bhand)"/>
        </include>
 
        <include file="$(find wam_controllers)/launch/computed_torque.launch" />
index 55b3dd3..cc65b0d 100644 (file)
@@ -4,9 +4,11 @@
     type="wam_controllers::ComputedTorqueController"
     base_class_type="controller_interface::ControllerBase">
     <description>
-      The ComputedTorqueControllers linearizes the Barrett WAM dynamic
-      model.  The linearized inputs are joint accelerations.
-      It expects an EffortJointInterface type of hardware interface.
+      The ComputedTorqueController implements a computed torque controller
+      in joint space for the Barrett WAM dynamic model.  The reference
+      inputs (command in the ROS nomenclature) are joint positions,
+      velocities and accelerations.  This typf of controller expects an
+      EffortJointInterface type of hardware interface.
     </description>
   </class>
 
index fd1973b..144351b 100644 (file)
@@ -1,9 +1,11 @@
 <launch>
        <arg name="table" default="true"/>
+       <arg name="bhand" default="true"/>
        <arg name="use_gui" default="true"/>
 
        <include file="$(find wam_description)/launch/wam.launch" >
                <arg name="table" value="$(arg table)" />
+               <arg name="bhand" value="$(arg bhand)" />
        </include>
 
        <node if="$(arg use_gui)" name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" args="_use_gui:=true" />
index d042323..e2f5062 100644 (file)
@@ -1,14 +1,21 @@
 <launch>
        <arg name="paused" default="true"/>
+       <arg name="headless" default="false"/>
+       <arg name="use_sim_time" default="true"/>
        <arg name="table" default="true"/>
+       <arg name="bhand" default="true"/>
+
 
        <include file="$(find gazebo_ros)/launch/empty_world.launch">
                <arg name="paused" value="$(arg paused)"/>
+               <arg name="headless" value="$(arg headless)"/>
+               <arg name="use_sim_time" value="$(arg use_sim_time)"/>
                <arg name="world_name" value="worlds/empty_sky.world" />
        </include>
 
        <include file="$(find wam_description)/launch/wam.launch" >
                <arg name="table" value="$(arg table)" />
+               <arg name="bhand" value="$(arg bhand)" />
        </include>
 
        <node name="wam_spawner" pkg="gazebo_ros" type="spawn_model" args="-urdf -param robot_description -model wam" respawn="false" output="screen" />
index 4933667..0e37b66 100644 (file)
@@ -1,12 +1,22 @@
  <launch>
        <arg name="table" default="true"/>
+       <arg name="bhand" default="true"/>
        <arg name="world" default="false"/>
 
        <group unless="$(arg world)">
-               <param unless="$(arg table)" name="robot_description" command="$(find xacro)/xacro.py '$(find wam_description)/xacro/wam.urdf.xacro'" />
-               <param if="$(arg table)" name="robot_description" command="$(find xacro)/xacro.py '$(find wam_description)/xacro/wam_table.urdf.xacro'" />
+               <group unless="$(arg table)">
+                       <param unless="$(arg bhand)" name="robot_description" command="$(find xacro)/xacro.py '$(find wam_description)/xacro/wam.urdf.xacro'" />
+                       <param if="$(arg bhand)" name="robot_description" command="$(find xacro)/xacro.py '$(find wam_description)/xacro/wam_bhand.urdf.xacro'" />
+               </group>
+               <group if="$(arg table)">
+                       <param unless="$(arg bhand)" name="robot_description" command="$(find xacro)/xacro.py '$(find wam_description)/xacro/wam_table.urdf.xacro'" />
+                       <param if="$(arg bhand)" name="robot_description" command="$(find xacro)/xacro.py '$(find wam_description)/xacro/wam_bhand_table.urdf.xacro'" />
+               </group>
        </group>
 
-       <param if="$(arg world)" name="robot_description" command="$(find xacro)/xacro.py '$(find wam_description)/xacro/wam_world.urdf.xacro'" />
+       <group if="$(arg world)">
+               <param unless="$(arg bhand)" name="robot_description" command="$(find xacro)/xacro.py '$(find wam_description)/xacro/wam_world.urdf.xacro'" />
+               <param if="$(arg bhand)" name="robot_description" command="$(find xacro)/xacro.py '$(find wam_description)/xacro/wam_bhand_world.urdf.xacro'" />
+       </group>
 
 </launch>
index f4d4f2a..9534e40 100644 (file)
@@ -3,10 +3,13 @@
   <name>wam_description</name>
   <version>2.1.0</version>
   <description><p>The wam_description package</p>
-       <p>This package contains xacro files for the Barrett WAM robot
-       arm. It is based on the iri_wam_description package developed by the
-       IRI Robotics Lab but with robot parameters (mainly inertia
-       parameters) adapted to the Barrett WAM available at UFRGS.
+       <p>This package contains xacro files for the Barrett WAM robot arm. 
+       It is based on the iri_wam_description package developed by the IRI
+       Robotics Lab.  However, coordinate frames were modified to follow
+       the Denavit-Hartenberg convention, as libBarrett is based on it, 
+       and inertial parameters were included.  Inertial parameters were
+       obtained from Barrett Technology, Inc, WAM Arm Inertial
+       Specifications, 2008, Document: D1005, Version: AC.02.
        </p>
   </description>
 
index 6ae11f5..f36a19b 100644 (file)
@@ -7,8 +7,24 @@ Panels:
         - /Global Options1
         - /Status1
         - /Grid1
-      Splitter Ratio: 0.5
-    Tree Height: 553
+        - /RobotModel1
+        - /RobotModel1/Links1
+        - /RobotModel1/Links1/bhand_base_link1
+        - /RobotModel1/Links1/wam_link_01
+        - /RobotModel1/Links1/wam_link_11
+        - /RobotModel1/Links1/wam_link_21
+        - /RobotModel1/Links1/wam_link_31
+        - /RobotModel1/Links1/wam_link_41
+        - /RobotModel1/Links1/wam_link_51
+        - /RobotModel1/Links1/wam_link_61
+        - /RobotModel1/Links1/wam_link_71
+        - /RobotModel1/Links1/wam_link_base1
+        - /RobotModel1/Links1/wam_link_footprint1
+        - /RobotModel1/Links1/wam_origin1
+        - /RobotModel1/Links1/wam_tool_plate1
+        - /RobotModel1/Links1/world1
+      Splitter Ratio: 0.721154
+    Tree Height: 454
   - Class: rviz/Selection
     Name: Selection
   - Class: rviz/Tool Properties
@@ -49,7 +65,7 @@ Visualization Manager:
       Plane Cell Count: 10
       Reference Frame: <Fixed Frame>
       Value: true
-    - Alpha: 1
+    - Alpha: 0.3
       Class: rviz/RobotModel
       Collision Enabled: false
       Enabled: true
@@ -59,55 +75,153 @@ Visualization Manager:
         Expand Link Details: false
         Expand Tree: false
         Link Tree Style: Links in Alphabetic Order
-        wam_link_1:
+        bhand_base_link:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+          Value: true
+        bhand_finger1_link_1:
           Alpha: 1
           Show Axes: false
           Show Trail: false
           Value: true
-        wam_link_2:
+        bhand_finger1_link_2:
           Alpha: 1
           Show Axes: false
           Show Trail: false
           Value: true
-        wam_link_3:
+        bhand_finger1_link_3:
           Alpha: 1
           Show Axes: false
           Show Trail: false
           Value: true
-        wam_link_4:
+        bhand_finger2_link_1:
           Alpha: 1
           Show Axes: false
           Show Trail: false
           Value: true
-        wam_link_5:
+        bhand_finger2_link_2:
           Alpha: 1
           Show Axes: false
           Show Trail: false
           Value: true
-        wam_link_6:
+        bhand_finger2_link_3:
           Alpha: 1
           Show Axes: false
           Show Trail: false
           Value: true
-        wam_link_7:
+        bhand_finger3_link_1:
           Alpha: 1
           Show Axes: false
           Show Trail: false
           Value: true
-        wam_link_base:
+        bhand_finger3_link_2:
           Alpha: 1
           Show Axes: false
           Show Trail: false
           Value: true
-        wam_origin:
+        bhand_finger3_link_3:
           Alpha: 1
           Show Axes: false
           Show Trail: false
-        wam_tool_plate:
+          Value: true
+        bhand_origin:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+        leg1_link:
           Alpha: 1
           Show Axes: false
           Show Trail: false
           Value: true
+        leg2_link:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        leg3_link:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        leg4_link:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        table_top_link:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        wam_link_0:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+          Value: true
+        wam_link_1:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+          Value: true
+        wam_link_2:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+          Value: true
+        wam_link_3:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+          Value: true
+        wam_link_3_virtual:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+        wam_link_4:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+          Value: true
+        wam_link_4_virtual:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+        wam_link_5:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+          Value: true
+        wam_link_6:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+          Value: true
+        wam_link_7:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+          Value: true
+        wam_link_base:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+        wam_link_footprint:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+        wam_origin:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+        wam_tool_plate:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
+        world:
+          Alpha: 1
+          Show Axes: true
+          Show Trail: false
       Name: RobotModel
       Robot Description: robot_description
       TF Prefix: ""
@@ -117,7 +231,7 @@ Visualization Manager:
   Enabled: true
   Global Options:
     Background Color: 48; 48; 48
-    Fixed Frame: wam_origin
+    Fixed Frame: world
     Frame Rate: 30
   Name: root
   Tools:
@@ -138,30 +252,30 @@ Visualization Manager:
   Views:
     Current:
       Class: rviz/Orbit
-      Distance: 10
+      Distance: 0.776736
       Enable Stereo Rendering:
         Stereo Eye Separation: 0.06
         Stereo Focal Distance: 1
         Swap Stereo Eyes: false
         Value: false
       Focal Point:
-        X: 0
-        Y: 0
-        Z: 0
+        X: -0.948974
+        Y: 0.396795
+        Z: 1.84864
       Name: Current View
       Near Clip Distance: 0.01
-      Pitch: 0.785398
+      Pitch: 0.0148
       Target Frame: <Fixed Frame>
       Value: Orbit (rviz)
-      Yaw: 0.785398
+      Yaw: 2.54046
     Saved: ~
 Window Geometry:
   Displays:
     collapsed: false
-  Height: 846
+  Height: 741
   Hide Left Dock: false
-  Hide Right Dock: false
-  QMainWindow State: 000000ff00000000fd00000004000000000000013c000002b6fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005300fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000038000002b6000000b900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002b6fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000038000002b60000009f00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b00000025a00fffffffb0000000800540069006d0065010000000000000450000000000000000000000259000002b600000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
+  Hide Right Dock: true
+  QMainWindow State: 000000ff00000000fd00000004000000000000013c00000251fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005300fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003600000251000000b700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f00000251fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730000000036000002510000009b00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b00000024700fffffffb0000000800540069006d006501000000000000045000000000000000000000036e0000025100000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
   Selection:
     collapsed: false
   Time:
@@ -169,7 +283,7 @@ Window Geometry:
   Tool Properties:
     collapsed: false
   Views:
-    collapsed: false
+    collapsed: true
   Width: 1200
-  X: 476
-  Y: 54
+  X: 82
+  Y: 0
diff --git a/wam_description/rviz/urdf.rviz.bkp b/wam_description/rviz/urdf.rviz.bkp
new file mode 100644 (file)
index 0000000..6ae11f5
--- /dev/null
@@ -0,0 +1,175 @@
+Panels:
+  - Class: rviz/Displays
+    Help Height: 78
+    Name: Displays
+    Property Tree Widget:
+      Expanded:
+        - /Global Options1
+        - /Status1
+        - /Grid1
+      Splitter Ratio: 0.5
+    Tree Height: 553
+  - Class: rviz/Selection
+    Name: Selection
+  - Class: rviz/Tool Properties
+    Expanded:
+      - /2D Pose Estimate1
+      - /2D Nav Goal1
+      - /Publish Point1
+    Name: Tool Properties
+    Splitter Ratio: 0.588679
+  - Class: rviz/Views
+    Expanded:
+      - /Current View1
+    Name: Views
+    Splitter Ratio: 0.5
+  - Class: rviz/Time
+    Experimental: false
+    Name: Time
+    SyncMode: 0
+    SyncSource: ""
+Visualization Manager:
+  Class: ""
+  Displays:
+    - Alpha: 0.5
+      Cell Size: 1
+      Class: rviz/Grid
+      Color: 160; 160; 164
+      Enabled: true
+      Line Style:
+        Line Width: 0.03
+        Value: Lines
+      Name: Grid
+      Normal Cell Count: 0
+      Offset:
+        X: 0
+        Y: 0
+        Z: 0
+      Plane: XY
+      Plane Cell Count: 10
+      Reference Frame: <Fixed Frame>
+      Value: true
+    - Alpha: 1
+      Class: rviz/RobotModel
+      Collision Enabled: false
+      Enabled: true
+      Links:
+        All Links Enabled: true
+        Expand Joint Details: false
+        Expand Link Details: false
+        Expand Tree: false
+        Link Tree Style: Links in Alphabetic Order
+        wam_link_1:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        wam_link_2:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        wam_link_3:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        wam_link_4:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        wam_link_5:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        wam_link_6:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        wam_link_7:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        wam_link_base:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+        wam_origin:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+        wam_tool_plate:
+          Alpha: 1
+          Show Axes: false
+          Show Trail: false
+          Value: true
+      Name: RobotModel
+      Robot Description: robot_description
+      TF Prefix: ""
+      Update Interval: 0
+      Value: true
+      Visual Enabled: true
+  Enabled: true
+  Global Options:
+    Background Color: 48; 48; 48
+    Fixed Frame: wam_origin
+    Frame Rate: 30
+  Name: root
+  Tools:
+    - Class: rviz/Interact
+      Hide Inactive Objects: true
+    - Class: rviz/MoveCamera
+    - Class: rviz/Select
+    - Class: rviz/FocusCamera
+    - Class: rviz/Measure
+    - Class: rviz/SetInitialPose
+      Topic: /initialpose
+    - Class: rviz/SetGoal
+      Topic: /move_base_simple/goal
+    - Class: rviz/PublishPoint
+      Single click: true
+      Topic: /clicked_point
+  Value: true
+  Views:
+    Current:
+      Class: rviz/Orbit
+      Distance: 10
+      Enable Stereo Rendering:
+        Stereo Eye Separation: 0.06
+        Stereo Focal Distance: 1
+        Swap Stereo Eyes: false
+        Value: false
+      Focal Point:
+        X: 0
+        Y: 0
+        Z: 0
+      Name: Current View
+      Near Clip Distance: 0.01
+      Pitch: 0.785398
+      Target Frame: <Fixed Frame>
+      Value: Orbit (rviz)
+      Yaw: 0.785398
+    Saved: ~
+Window Geometry:
+  Displays:
+    collapsed: false
+  Height: 846
+  Hide Left Dock: false
+  Hide Right Dock: false
+  QMainWindow State: 000000ff00000000fd00000004000000000000013c000002b6fc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005300fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c0061007900730100000038000002b6000000b900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000002b6fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a005600690065007700730100000038000002b60000009f00fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004b00000003efc0100000002fb0000000800540069006d00650100000000000004b00000025a00fffffffb0000000800540069006d0065010000000000000450000000000000000000000259000002b600000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
+  Selection:
+    collapsed: false
+  Time:
+    collapsed: false
+  Tool Properties:
+    collapsed: false
+  Views:
+    collapsed: false
+  Width: 1200
+  X: 476
+  Y: 54
index f559eea..7607a32 100644 (file)
@@ -14,7 +14,7 @@
   <xacro:include filename="$(find wam_description)/xacro/wam_tool_plate.urdf.xacro" />
 
   <xacro:wam_base/>
-  <xacro:wam_j1 parent="wam_link_base"/>
+  <xacro:wam_j1 parent="wam_link_0"/>
   <xacro:wam_j2 parent="wam_link_1"/>
   <xacro:wam_j3 parent="wam_link_2"/>
   <xacro:wam_j4 parent="wam_link_3"/>
index 4d1f765..6de0675 100644 (file)
@@ -2,19 +2,56 @@
 
 <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
 
+  <xacro:property name="M_PI" value="3.1415926535897931" />
+
   <xacro:macro name="wam_base">
 
        <link name="wam_origin"/>
-       
-       <link name="wam_link_base">
+       <link name="wam_link_footprint" />
+       <joint name="wam_link_footprint_joint" type="fixed">
+               <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+               <child link="wam_link_footprint"/>
+               <parent link="wam_origin"/>
+       </joint>
+
+       <link name="wam_link_base" />
+       <joint name="wam_link_base_joint" type="fixed">
+               <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+               <child link="wam_link_base"/>
+               <parent link="wam_origin"/>
+       </joint>
+
+
+<!-- Just to debug link 0 inertial orientation -->
+<!--
+       <link name="wam_link_0_inertial" />
+       <joint name="wam_link_0_inertial_joint" type="fixed">
+               <origin xyz="-0.14071720 -0.02017671 -0.26604706" rpy="${M_PI/2} 0 ${M_PI/2}"/>
+               <child link="wam_link_0_inertial"/>
+               <parent link="wam_link_0"/>
+       </joint>
+-->
+
+       <link name="wam_link_0">
                <inertial>
-                       <mass value="9.97059584"/>
-                       <origin xyz="-0.02017671 -0.26604706 -0.14071720" />
-                       <inertia ixx="1.01232865" ixy="0.05992441" ixz="0.05388736" iyy="0.38443311" iyz="0.37488748" izz="0.82739198"/>
+<!--
+       Inertia parameters from Barrett Technology, Inc, WAM Arm Inertial
+       Specifications, 2008, pages 9-10, Document: D1005, Version: AC.02
+
+       Note that the AXES used to compute the parameters are ROTATED with
+       respect to the frame axes:
+
+       Inertial_X -> Frame Y
+       Inertial_Y -> Frame Z
+       Inertial_Z -> Frame_X
+-->
+                       <mass value="9.97059584"/>
+                       <origin xyz="-0.14071720 -0.02017671 -0.26604706"  rpy="${M_PI/2} 0 ${M_PI/2}"/>
+                       <inertia ixx="0.10916849" ixy="0.00640270" ixz="0.02557874" iyy="0.18294303" iyz="0.00161433" izz="0.11760385"/>
                </inertial>
                <visual>
                        <origin rpy="0 0 0" xyz="0 0 0"/>
-                       <geometry name="wam_link_base_visual">
+                       <geometry name="wam_link_0_visual">
                                <mesh filename="package://wam_description/meshes/wambase.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
                        <material name="LightGrey">
                </collision>
        </link>
 
-       <gazebo reference="wam_link_base">
+       <gazebo reference="wam_link_0">
                <selfCollide>true</selfCollide>
                <material>Gazebo/White</material>
        </gazebo>
 
 
-       <joint name="wam_base_joint" type="fixed">
+       <joint name="wam_joint_0" type="fixed">
                <!--origin rpy="0 0 0" xyz="-0.060 -0.140 0.206"/-->
                <origin rpy="0 0 0" xyz="0.22 0.14 0.346"/>
-               <child link="wam_link_base"/>
-               <parent link="wam_origin"/>
+               <child link="wam_link_0"/>
+               <parent link="wam_link_base"/>
        </joint>
 
        </xacro:macro>
diff --git a/wam_description/xacro/wam_bhand.urdf.xacro b/wam_description/xacro/wam_bhand.urdf.xacro
new file mode 100644 (file)
index 0000000..7b07be7
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0"?>
+<robot name="wam" xmlns:xacro="http://ros.org/wiki/xacro">
+
+  <xacro:property name="M_PI" value="3.1415926535897931" />  
+  
+  <xacro:include filename="$(find wam_description)/xacro/wam.urdf.xacro" />
+
+  <xacro:include filename="$(find ufrgs_bhand_description)/xacro/bhand.urdf.xacro" />
+
+       <joint name="wam_tool_plate_bhand_joint" type="fixed">
+               <parent link="wam_tool_plate"/>
+               <child link="bhand_origin" />
+               <!--origin xyz="0.0 0.013 0.0" rpy="${-M_PI/2} 0.0 0.0" /-->
+               <origin xyz="0.0 0.0 -0.06" rpy="0.0 0.0 ${M_PI}" />
+       </joint>
+
+</robot>
diff --git a/wam_description/xacro/wam_bhand_table.urdf.xacro b/wam_description/xacro/wam_bhand_table.urdf.xacro
new file mode 100644 (file)
index 0000000..45cfe16
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0"?>
+
+<robot name ="wam" xmlns:xacro="http://ros.org/wiki/xacro">
+
+       <property name="M_PI" value="3.1415926535897931" />
+
+       <link name="world" />
+
+       <xacro:include filename="$(find wam_description)/xacro/table.urdf.xacro" />
+
+       <joint name="world_table_joint" type="fixed">
+               <parent link="world"/>
+               <child link="table_top_link" />
+               <origin xyz="${-table_x} ${-table_y} ${-table_z}" rpy="0.0 0.0 0.0" />
+       </joint>
+
+  
+       <xacro:include filename="$(find wam_description)/xacro/wam_bhand.urdf.xacro" />
+
+       <joint name="table_wam_joint" type="fixed">
+               <parent link="table_top_link"/>
+               <child link="wam_origin" />
+               <origin xyz="${(1.0-0.220)} -0.140 ${table_height}" rpy="0.0 0.0 0.0" />
+       </joint>
+
+</robot>
diff --git a/wam_description/xacro/wam_bhand_world.urdf.xacro b/wam_description/xacro/wam_bhand_world.urdf.xacro
new file mode 100644 (file)
index 0000000..91f0b41
--- /dev/null
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+
+<robot name ="wam" xmlns:xacro="http://ros.org/wiki/xacro">
+
+       <link name="world" />
+
+       <xacro:include filename="$(find wam_description)/xacro/wam_bhand.urdf.xacro" />
+
+       <joint name="world_wam_joint" type="fixed">
+               <parent link="world"/>
+               <child link="wam_origin" />
+               <origin xyz="0.0 0.0 0.0" rpy="0.0 0.0 0.0" />
+       </joint>
+
+</robot>
index 10aafbb..bce4033 100644 (file)
@@ -2,16 +2,23 @@
 
 <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
 
+  <xacro:property name="M_PI" value="3.1415926535897931" />
+
   <xacro:macro name="wam_j1" params="parent">
 
        <link name="wam_link_1">
                <inertial>
+<!--
+       from Barrett Technology, Inc, WAM Arm Inertial Specifications, 2008,
+       pages 11-12, Document: D1005, Version: AC.02
+-->
+
                        <mass value="10.76768767"/>
                        <origin xyz="-0.00443422 0.12189039 -0.00066489" />
-                       <inertia ixx="0.29486350" ixy="-0.00795023" ixz="-0.00009311" iyy="0.11350017" iyz="0.00018711" izz="0.25065343"/>
+                       <inertia ixx="0.13488033" ixy="-0.00213041" ixz="-0.00012485" iyy="0.11328369" iyz="0.00068555" izz="0.09046330"/>
                </inertial>
                <visual>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="${M_PI/2} 0 0" xyz="0.0 0.0 0.0"/>
                        <geometry name="wam_link_1_visual">
                                <mesh filename="package://wam_description/meshes/wam1.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
@@ -20,7 +27,7 @@
                        </material>
                </visual>
                <collision>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="${M_PI/2} 0 0" xyz="0.0 0.0 0.0"/>
                        <geometry name="wam_j1_collision">
                                <mesh filename="package://wam_description/meshes/wam1.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
@@ -38,8 +45,8 @@
        <joint name="wam_joint_1" type="revolute">
                <parent link="${parent}"/>
                <child link="wam_link_1"/>
-               <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
-               <axis xyz="0 0 1"/>
+               <origin rpy="${-M_PI/2} 0 0" xyz="0.0 0.0 0.0"/>
+               <axis xyz="0 -1 0"/>
                <limit effort="30" lower="-2.6" upper="2.6" velocity="2.0"/>
                <!-- <safety_controller k_velocity="0.5"/> -->
                <!-- <joint_properties damping="100.0" friction="1000.0" /> -->
@@ -47,7 +54,7 @@
        </joint>
 
        <transmission name="j1_transmission">
-               <type>transmission_interface/SimpleTransmission"</type>
+               <type>transmission_interface/SimpleTransmission</type>
                <joint name="wam_joint_1">
                        <hardwareInterface>EffortJointInterface</hardwareInterface>
                </joint>
index 47871f9..484214f 100644 (file)
@@ -2,13 +2,20 @@
 
 <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
 
+  <xacro:property name="M_PI" value="3.1415926535897931" />
+
   <xacro:macro name="wam_j2" params="parent">
 
        <link name="wam_link_2">
                <inertial>
+<!--
+       from Barrett Technology, Inc, WAM Arm Inertial Specifications, 2008,
+       pages 13-14, Document: D1005, Version: AC.02
+
+-->
                        <mass value="3.87493756"/>
                        <origin xyz="-0.00236983 0.03105614 0.01542114" />
-                       <inertia ixx="0.02606840" ixy="-0.00001346" ixz="-0.00011701" iyy="0.01472202" iyz="0.00003659" izz="0.01934814"/>
+                       <inertia ixx="0.02140958" ixy="0.00027172" ixz="0.00002461" iyy="0.01377875" iyz="-0.00181920" izz="0.01558906"/>
                </inertial>
                <visual>
                        <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
@@ -36,7 +43,7 @@
        <joint name="wam_joint_2" type="revolute">
                <parent link="${parent}"/>
                <child link="wam_link_2"/>
-               <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+               <origin rpy="${M_PI/2} 0 0" xyz="0.0 0.0 0.0"/>
                <axis xyz="0 1 0"/>
                <limit effort="30" lower="-2.0" upper="2.0" velocity="2.0"/>
                <!-- <joint_properties damping="100.0" friction="1000.0" /> -->
@@ -44,7 +51,7 @@
        </joint>
 
        <transmission name="j2_transmission">
-               <type>transmission_interface/SimpleTransmission"</type>
+               <type>transmission_interface/SimpleTransmission</type>
                <joint name="wam_joint_2">
                        <hardwareInterface>EffortJointInterface</hardwareInterface>
                </joint>
index 7a37d4c..f0e8d53 100644 (file)
@@ -2,16 +2,22 @@
 
 <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
 
+  <xacro:property name="M_PI" value="3.1415926535897931" />
+
   <xacro:macro name="wam_j3" params="parent">
 
        <link name="wam_link_3">
                <inertial>
+<!--
+       Inertial parameters from Barrett Technology, Inc, WAM Arm Inertial
+       Specifications, 2008, pages 15-16, Document: D1005, Version: AC.02
+-->
                        <mass value="1.80228141"/>
                        <origin xyz="-0.03825858 0.20750770 0.00003309" />
-                       <inertia ixx="0.13671601" ixy="-0.01680434" ixz="0.00000510" iyy="0.00588354" iyz="-0.00000530" izz="0.13951371"/>
+                       <inertia ixx="0.05911077" ixy="-0.00249612" ixz="0.00000738" iyy="0.00324550" iyz="-0.00001767" izz="0.05927043"/>
                </inertial>
                <visual>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="${M_PI/2} 0 0" xyz="-0.045 0.55 0.0"/>
                        <geometry name="wam_link_3_visual">
                                <mesh filename="package://wam_description/meshes/wam3.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
@@ -20,7 +26,7 @@
                        </material>
                </visual>
                <collision>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="${M_PI/2} 0 0" xyz="-0.045 0.55 0.0"/>
                        <geometry name="wam_link_3_collision">
                                <mesh filename="package://wam_description/meshes/wam3.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
                <selfCollide>true</selfCollide>
        </gazebo>
 
+       <!-- Virtual joint and link are necessary due to the offset, in
+       order to keep the Denavit-Hartenberg convention, as libBarrett and
+       the Inertial Specifications uses it.  -->
+       <link name="wam_link_3_virtual" />
        <joint name="wam_joint_3" type="revolute">
                <parent link="${parent}"/>
-               <child link="wam_link_3"/>
-               <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
-               <axis xyz="0 0 1"/>
+               <child link="wam_link_3_virtual"/>
+               <origin rpy="${-M_PI/2} 0 0" xyz="0.0 0.0 0.55"/>
+               <axis xyz="0 1 0"/>
                <limit effort="30" lower="-2.8" upper="2.8" velocity="2.0"/>
                <!-- <joint_properties damping="100.0" friction="1000.0" /> -->
                <dynamics damping="0.75" friction="${3.0/7}"/>
        </joint>
 
+       <joint name="wam_joint_3_virtual" type="fixed">
+               <parent link="wam_link_3_virtual"/>
+               <child link="wam_link_3"/>
+               <origin rpy="0 0 0" xyz="0.045 0.0 0.0"/>
+       </joint>
+
        <transmission name="j3_transmission">
-               <type>transmission_interface/SimpleTransmission"</type>
+               <type>transmission_interface/SimpleTransmission</type>
                <joint name="wam_joint_3">
                        <hardwareInterface>EffortJointInterface</hardwareInterface>
                </joint>
@@ -57,4 +73,3 @@
   </xacro:macro>
 
 </robot>
-
index 3b81011..1f8db90 100644 (file)
@@ -2,16 +2,22 @@
 
 <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
 
+  <xacro:property name="M_PI" value="3.1415926535897931" />
+
   <xacro:macro name="wam_j4" params="parent">
 
        <link name="wam_link_4">
                <inertial>
-                       <mass value="1.06513649"/>
-                       <origin xyz="0.01095471 -0.00002567 0.14053900" />
-                       <inertia ixx="0.03952350" ixy="0.00000189" ixz="0.00003117" iyy="0.04008214" iyz="0.00000131" izz="0.00210299"/>
+<!--
+       Inertial parameters from Barrett Technology, Inc, WAM Arm Inertial
+       Specifications, 2008, pages 21-22, Document: D1005, Version: AC.02
+-->
+                       <mass value="2.40016804"/>
+                       <origin xyz="0.00498512 -0.000022942 0.13271662" />
+                       <inertia ixx="0.01491672" ixy="0.00001741" ixz="-0.00150604" iyy="0.01482922" iyz="-0.00002109" izz="0.00294463"/>
                </inertial>
                <visual>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="${-M_PI/2} 0 0" xyz="0.045 0.0 0.0"/>
                        <geometry name="wam_link_4_visual">
                                <mesh filename="package://wam_description/meshes/wam4.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
@@ -20,7 +26,7 @@
                        </material>
                </visual>
                <collision>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="${-M_PI/2} 0 0" xyz="0.045 0.0 0.0"/>
                        <geometry name="wam_link_4_collision">
                                <mesh filename="package://wam_description/meshes/wam4.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
                <selfCollide>true</selfCollide>
        </gazebo>
 
+       <!-- Virtual joint and link are necessary due to the offset, in
+       order to keep the Denavit-Hartenberg convention, as libBarrett and
+       the Inertial Specifications uses it.  -->
+       <link name="wam_link_4_virtual" />
        <joint name="wam_joint_4" type="revolute">
                <parent link="${parent}"/>
-               <child link="wam_link_4"/>
-               <origin rpy="-1.57079632679 0 0" xyz="0.045 0.0 0.55"/>
-               <axis xyz="0 0 1"/>
+               <child link="wam_link_4_virtual"/>
+               <origin rpy="${M_PI/2} 0 0" xyz="0.0 0.0 0.0"/>
+               <axis xyz="0 1 0"/>
                <limit effort="35" lower="-0.9" upper="3.1" velocity="2.0"/>
                <!-- <joint_properties damping="100.0" friction="1000.0" /> -->
                <dynamics damping="0.4" friction="${3.0/7}"/>
        </joint>
 
+       <joint name="wam_joint_4_virtual" type="fixed">
+               <parent link="wam_link_4_virtual"/>
+               <child link="wam_link_4"/>
+               <origin rpy="0 0 0" xyz="-0.045 0.0 0.0"/>
+       </joint>
+
+
        <transmission name="j4_transmission">
-               <type>transmission_interface/SimpleTransmission"</type>
+               <type>transmission_interface/SimpleTransmission</type>
                <joint name="wam_joint_4">
                        <hardwareInterface>EffortJointInterface</hardwareInterface>
                </joint>
@@ -57,4 +74,3 @@
   </xacro:macro>
 
 </robot>
-
index 0c1a49a..4ee45de 100644 (file)
@@ -2,16 +2,22 @@
 
 <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
 
+  <xacro:property name="M_PI" value="3.1415926535897931" />
+
   <xacro:macro name="wam_j5" params="parent">
 
        <link name="wam_link_5">
                <inertial>
+<!--
+       Inertial parameters from Barrett Technology, Inc, WAM Arm Inertial
+       Specifications, 2008, pages 23-24, Document: D1005, Version: AC.02
+-->
                        <mass value="0.12376019"/>
                        <origin xyz="0.00008921 0.00511217 0.00435824" />
-                       <inertia ixx="0.00005587" ixy="0.00000026" ixz="0.00000000" iyy="0.00007817" iyz="-0.00000083" izz="0.00006594"/>
+                       <inertia ixx="0.00005029" ixy="0.00000020" ixz="-0.00000005" iyy="0.00007582" iyz="-0.00000359" izz="0.00006270"/>
                </inertial>
                <visual>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="${M_PI/2} 0 0" xyz="0.0 0.0 0.0"/>
                        <geometry name="wam_link_5_visual">
                                <mesh filename="package://wam_description/meshes/wam5.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
@@ -20,7 +26,7 @@
                        </material>
                </visual>
                <collision>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="${M_PI/2} 0 0" xyz="0.0 0.0 0.0"/>
                        <geometry name="wam_link_5_collision">
                                <mesh filename="package://wam_description/meshes/wam5.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
        <joint name="wam_joint_5" type="revolute">
                <parent link="${parent}"/>
                <child link="wam_link_5"/>
-               <origin rpy="1.57079632679 0 0" xyz="-0.045 -0.3 0.0"/>
-               <axis xyz="0 0 1"/>
+               <origin rpy="${-M_PI/2} 0 0" xyz="0.0 0.0 0.3"/>
+               <axis xyz="0 1 0"/>
                <limit effort="30" lower="-4.8" upper="1.3" velocity="2.0"/>
                <!-- <joint_properties damping="100.0" friction="1000.0" /> -->
                <dynamics damping="0.25" friction="${3.0/7}"/>
        </joint>
 
        <transmission name="j5_transmission">
-               <type>transmission_interface/SimpleTransmission"</type>
+               <type>transmission_interface/SimpleTransmission</type>
                <joint name="wam_joint_5">
                        <hardwareInterface>EffortJointInterface</hardwareInterface>
                </joint>
index 87e5958..f8c9b21 100644 (file)
@@ -2,16 +2,22 @@
 
 <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
 
+  <xacro:property name="M_PI" value="3.1415926535897931" />
+
   <xacro:macro name="wam_j6" params="parent">
 
        <link name="wam_link_6">
                <inertial>
+<!--
+       Inertial parameters from Barrett Technology, Inc, WAM Arm Inertial
+       Specifications, 2008, pages 25-26, Document: D1005, Version: AC.02
+-->
                        <mass value="0.41797364"/>
                        <origin xyz="-0.00012262 -0.01703194 0.02468336" />
-                       <inertia ixx="0.00093106" ixy="0.00000148" ixz="-0.00000201" iyy="0.00049833" iyz="-0.00022162" izz="0.00057483"/>
+                       <inertia ixx="0.00055516" ixy="0.00000061" ixz="-0.00000074" iyy="0.00024367" iyz="-0.00004590" izz="0.00045358"/>
                </inertial>
                <visual>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="${-M_PI/2} 0 0" xyz="0.0 0.0 0.0"/>
                        <geometry name="wam_link_6_visual">
                                <mesh filename="package://wam_description/meshes/wam6.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
@@ -20,7 +26,7 @@
                        </material>
                </visual>
                <collision>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="${-M_PI/2} 0 0" xyz="0.0 0.0 0.0"/>
                        <geometry name="wam_link_6_collision">
                                <mesh filename="package://wam_description/meshes/wam6.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
        <joint name="wam_joint_6" type="revolute">
                <parent link="${parent}"/>
                <child link="wam_link_6"/>
-               <origin rpy="-1.57079632679 0 0" xyz="0.0 0.0 0.0"/>
-               <axis xyz="0 0 1"/>
+               <origin rpy="${M_PI/2} 0 0" xyz="0.0 0.0 0.0"/>
+               <axis xyz="0 1 0"/>
                <limit effort="30" lower="-1.6" upper="1.6" velocity="2.0"/>
                <!-- <joint_properties damping="100.0" friction="1000.0" /> -->
                <dynamics damping="0.05" friction="0.0"/>
        </joint>
 
        <transmission name="j6_transmission">
-               <type>transmission_interface/SimpleTransmission"</type>
+               <type>transmission_interface/SimpleTransmission</type>
                <joint name="wam_joint_6">
                        <hardwareInterface>EffortJointInterface</hardwareInterface>
                </joint>
@@ -57,4 +63,3 @@
   </xacro:macro>
 
 </robot>
-
index 2695f23..b837171 100644 (file)
@@ -6,12 +6,16 @@
 
        <link name="wam_link_7">
                <inertial>
+<!--
+       Inertial parameters from Barrett Technology, Inc, WAM Arm Inertial
+       Specifications, 2008, pages 27-28, Document: D1005, Version: AC.02
+-->
                        <mass value="0.06864753"/>
                        <origin xyz="-0.00007974 0.00016313 -0.00323552" />
-                       <inertia ixx="0.00003845" ixy="-0.00000019" ixz="0.00000002" iyy="0.00003878" iyz="-0.00000004" izz="0.00007408"/>
+                       <inertia ixx="0.00003773" ixy="-0.00000019" ixz="0.00000000" iyy="0.00003806" iyz="-0.00000000" izz="0.00007408"/>
                </inertial>
                <visual>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="0 0 0" xyz="0.0 0.0 -0.06"/>
                        <geometry name="wam_link_7_visual">
                                <mesh filename="package://wam_description/meshes/wam7.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
@@ -20,7 +24,7 @@
                        </material>
                </visual>
                <collision>
-                       <origin rpy="0 0 0" xyz="0.0 0.0 0.0"/>
+                       <origin rpy="0 0 0" xyz="0.0 0.0 -0.06"/>
                        <geometry name="wam_link_7_collision">
                                <mesh filename="package://wam_description/meshes/wam7.stl" scale="1.0 1.0 1.0"/>
                        </geometry>
@@ -36,7 +40,7 @@
        <joint name="wam_joint_7" type="revolute">
                <parent link="${parent}"/>
                <child link="wam_link_7"/>
-               <origin rpy="1.57079632679 0 0" xyz="0.0 0.0 0.0"/>
+               <origin rpy="0 0 0" xyz="0.0 0.0 0.06"/>
                <axis xyz="0 0 1"/>
                <limit effort="30" lower="-2.2" upper="2.2" velocity="2.0"/>
                <!-- <joint_properties damping="100.0" friction="1000.0" /> -->
@@ -44,7 +48,7 @@
        </joint>
 
        <transmission name="j7_transmission">
-               <type>transmission_interface/SimpleTransmission"</type>
+               <type>transmission_interface/SimpleTransmission</type>
                <joint name="wam_joint_7">
                        <hardwareInterface>EffortJointInterface</hardwareInterface>
                </joint>
@@ -57,4 +61,3 @@
   </xacro:macro>
 
 </robot>
-
index 7b95484..140d680 100644 (file)
@@ -2,41 +2,13 @@
 
 <robot xmlns:xacro="http://www.ros.org/wiki/xacro">
 
-<property name="M_PI" value="3.1415926535897931" />
-
   <xacro:macro name="wam_tool_plate" params="parent">
 
-    <link name="wam_tool_plate">
-        <inertial>
-            <mass value="0.0001" />
-            <inertia  ixx="1.0" ixy="0.0"  ixz="0.0"  iyy="1.0"  iyz="0.0"  izz="1.0" />
-        </inertial>
-        <visual>
-            <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
-            <geometry name="wam_tool_plate_visual">
-              <box size="0.001 0.001 0.001" />
-            </geometry>
-            <material name="Grey" >
-                <color rgba="0.75 0.75 0.75 1.0"/>
-            </material>
-        </visual>
-        <collision>
-            <origin xyz="0.0 0.0 0.0" rpy="0 0 0"/>
-            <geometry name="wam_base_collision">
-              <box size="0.001 0.001 0.001" />
-            </geometry>
-            <contact_coefficients kd="1.0" kp="1000.0" mu="0"/>
-        </collision>
-    </link>
-    <gazebo reference="wam_tool_plate">
-        <material>Gazebo/White</material>
-        <selfCollide>true</selfCollide>
-    </gazebo>
+    <link name="wam_tool_plate" />
 
     <joint name="wam_tool_plate_joint" type="fixed">
         <parent link="${parent}"/>
         <child link="wam_tool_plate"/>
-        <!--origin xyz="-0.045 -0.3 0.0" rpy="${M_PI/2} 0 0" /-->
         <origin xyz="0.0 0.0 0.0" rpy="0 0 0" />
      </joint>