Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WAM Add #349

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 68 additions & 0 deletions roboticstoolbox/models/URDF/WAM.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#!/usr/bin/env python

import numpy as np
from roboticstoolbox.robot.ERobot import ERobot, ERobot2
from spatialmath import SE3


class WAM(ERobot):
"""
Class that imports a WAM URDF model

``WAM()`` is a class which imports a Barrett WAM robot definition
from a URDF file. The model describes its kinematic and graphical
characteristics.

.. runblock:: pycon

>>> import roboticstoolbox as rtb
>>> robot = rtb.models.URDF.WAM()
>>> print(robot)

Defined joint configurations are:

- qz, zero joint angle configuration, 'L' shaped configuration
- qr, vertical 'READY' configuration
- qs, arm is stretched out in the x-direction
- qn, arm is at a nominal non-singular configuration

.. codeauthor:: Longsen Gao
.. sectionauthor:: Peter Corke
"""

def __init__(self):

links, name, urdf_string, urdf_filepath = self.URDF_read(
"wam_description/barrett_model/robots/wam7.urdf.xacro"
)

super().__init__(
links,
name=name,
manufacturer="Barrett Robtoics",
gripper_links=links[8],
urdf_string=urdf_string,
urdf_filepath=urdf_filepath,
)

self.grippers[0].tool = SE3(0, 0, 0)

self.qdlim = np.array(
[2.1750, 2.1750, 2.1750, 2.1750, 2.6100, 2.6100, 2.6100, 3.0, 3.0]
)

self.qr = np.array([0, 0, 0, 0, 0, 0, 0])
self.qz = np.zeros(7)

self.addconfiguration("qr", self.qr)
self.addconfiguration("qz", self.qz)


if __name__ == "__main__": # pragma nocover

r = WAM()

r.qz

for link in r.grippers[0].links:
print(link)
2 changes: 2 additions & 0 deletions roboticstoolbox/models/URDF/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
from roboticstoolbox.models.URDF.FetchCamera import FetchCamera
from roboticstoolbox.models.URDF.Valkyrie import Valkyrie
from roboticstoolbox.models.URDF.AL5D import AL5D
from roboticstoolbox.models.URDF.WAM import WAM

__all__ = [
"Panda",
Expand Down Expand Up @@ -50,4 +51,5 @@
"FetchCamera",
"Valkyrie",
"AL5D",
"WAM",
]
128 changes: 128 additions & 0 deletions rtb-data/rtbdata/xacro/wam_description/barrett_model/CHANGELOG.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package barrett_model
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

0.5.1 (2014-12-10)
------------------
* fixing collada up-axes
* Merge branch 'master' into devel
* fixing orientation of bhand inertia
* Contributors: Jonathan Bohren

0.5.0 (2014-12-08)
------------------
* adding tf frame for fingertips, fixing naming of the first two fingers
* updating damping to have a global scale factor
* Merge branch 'master' of github.com:jhu-lcsr/barrett_model
* adding cleaner top-level xacro file for barrett system
* reducing friction and disabling collision for some links
* decreasing damping for gazebo 2.2.3
* adding a single xacro file with a bunch of options
* Merge branch 'master' of github.com:jhu-lcsr/barrett_model
* updating palm limits
* fixing stl headers
* Contributors: Jonathan Bohren

0.4.0 (2014-08-29)
------------------
* increasing max effort for wrist joints
* updating ball urdf to have a frame in the middle of the ball
* Contributors: Jonathan Bohren

0.3.0 (2014-07-22)
------------------
* adding additional frames for use as moveit end-effectors
* decreasing joint damping for simulation
* Contributors: Jonathan Bohren

0.2.0 (2014-07-15)
------------------
* decreasing damping for wam joints to increase performance
* increasing damping for simulation stability
* Contributors: Christopher Paxton, Jonathan Bohren

0.1.0 (2014-04-17)
------------------
* fixing joint limits
* more realistic damping
* updating wam ball
* bball
* fixing palm link, forearm, and upper arm inertia (palm link was in the wrong place)
* run dep
* Merge branch 'master' of github.com:jhu-lcsr/barrett_model
* decreasing damping
* Update README.md
* Update README.md
* Update README.md
* adding scrots
* adding simplified collision geometry
* adding realistic velocity limits, damping
* Tweaking limits
* fixing velocity limits which were messing up high-performance motions in gazebo
* increasing bhand damping in simulation
* moving gz tags to common and adding them to the hand
* Using new implicitSpringDamper tag instead of cfmDamping tag
* Adding better damping characterization
* updating for new xacro include tag
* adding in damping that gazebo actually reads
* updating doc
* Major cleanup
* Cleaning up robot urdfs
* updating wrist pitch limits
* Removing old dynamics tags, replacing with new gazebo xacro
* Adding missing mass to link, this was angering gazebo
* updating inertial properties
* Updating inertial parameters from those observed in the lab. Adding stubby 4-dof WAM.
* Fixing inertial properties
* fixing top-level xacro files
* adding better export frame
* gh formatting
* gh formatting
* gh formatting
* gh formatting
* fixing base link coordinate frame
* Create README.md
* adding cad files
* cleaning up...
* new and improved
* catkinizing
* add in bench lattice to urdf
* Removing big wall in base link, fixing damping-induced explosion when adding the last link
* fixing wrist link
* Fixing more stuff in urdf, making base link fixed to the world
* Updates, getting things running in gazebo
* Adding base to wam urdf
* Fixing two arm test, non-FT urdf wrist
* wam sim working with new launchfiles
* lots of launchfile refactoring
* updating wam stub test
* adding 4dof wam for testing
* adding single 7dof wam for testing
* adding ready-to-use models
* streamlining model
* renaming barrett_urdf back to bard_urdf
* renaming bard_urdf to barrett_urdf
* smooth gains, happy IK
* fixed joint effort limits, control switching could be made a bit less complex, joint traj controller is smooth, but could use more testing, experimentation with derivative gains needed
* working ik pose controller
* fixing urdf
* adding tesr urdf
* updating launchfile and fixing urdf
* lots of updates
* functioning grav comp
* working grav comp
* kdl chain solver takes link names and not joint names as arguments
* updating bard urdf to have non-ft stuff
* about to fix the wrist stuff
* adding non-ft barrett wrist
* renaming root to example, and separating the wam arm with and without a hand
* adding this, will be gone soon
* renaming darpa_arm to wam_arm
* removing center bar
* fixing normals
* fixing normals
* adding popeye bench lattice, will move soon
* adding base back in
* removing WAM from urdf path name
* adding bard urdf
* Contributors: Jonathan Bohren
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
cmake_minimum_required(VERSION 2.8.3)
project(barrett_model)

find_package(catkin REQUIRED)

catkin_package()
63 changes: 63 additions & 0 deletions rtb-data/rtbdata/xacro/wam_description/barrett_model/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
Barrett Model
=============

This repository contains Barrett WAM & BHand-280 CAD and modular URDFs with inertial properties.

The meshes and kinematics are based on publicly available resources from barrett.com. The dynamic properties are based on guidance from barrett.com as well as experiences with a real WAM and BH8-280.

## Visual

These are based on meshes exported directly from SolidWorks.

![](doc/wam_visual.png)

## Collision Meshes

The meshes used for collsion are sets of convex meshes processed manually in Blender to capture important surfaces and geometry.

![](doc/wam_collision.png)


### Joint Naming Conventions

* macro: `wam_7dof`
* macro: `wam`
* `PREFIX/base_yaw_joint`
* `PREFIX/shoulder_pitch_joint`
* `PREFIX/shoulder_yaw_joint`
* `PREFIX/elbow_pitch_joint`
* macro: `wam_wrist`
* `PREFIX/wrist_yaw_joint`
* `PREFIX/wrist_pitch_joint`
* `PREFIX/palm_yaw_joint`

* macro: `bhand`
* `PREFIX/finger_1/prox_joint`
* `PREFIX/finger_1/med_joint`
* `PREFIX/finger_1/dist_joint`
* `PREFIX/finger_2/prox_joint`
* `PREFIX/finger_2/med_joint`
* `PREFIX/finger_2/dist_joint`
* `PREFIX/finger_3/med_joint`
* `PREFIX/finger_3/dist_joint`

### Examples

To create a 7-DOF WAM with a Barrett Hand:

```xml
<xacro:wam_7dof
prefix="wam_left"
parent_link="bench_link"
xyz="0.02 0.46 1" rpy="${PI} ${-PI/2} 0"/>
<xacro:bhand
prefix="wam_left/bhand"
parent_link="wam_left/wrist_palm_link"
xyz="0 0 0.06" rpy="0 0 0"/>
```

The easiest way to view the robot models is with the `urdf_tutorial` package:

```
roslaunch urdf_tutorial xacrodisplay.launch model:=robots/wam7_bhand.urdf.xacro gui:=true
```
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[ZoneTransfer]
ZoneId=3
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[ZoneTransfer]
ZoneId=3
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[ZoneTransfer]
ZoneId=3
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[ZoneTransfer]
ZoneId=3
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[ZoneTransfer]
ZoneId=3
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
Please use key below to determine your top-level assembly of interest.

B2731 4-axis WAM arm
B3435 4-axis WAM arm with BarrettHand
B3320 7-axis WAM arm
B3321 7-axis WAM arm with BarrettHand
B2579 BarrettHand
B1314 WAM workspace
B2646 4-axis WAM arm with 3-axis rehabilitation gimbals

These associated Barrett assemblies and parts are current as of 22-July-2007.

Please contact [email protected] if you have trouble with these files or if you cannot find the format that you need.

Comments:
1. Native files were created in SolidWorks.
2. Translations may have broken mates. (small black squares showing up near the Hand model are likely only finger labels that can be safely deleted.
3. Coordinate frames with associated curved arrows may be deleted or hidden/supressed as desired.
4. The workspace may be hidden/supressed as desired.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<!--
* COPYRIGHT (C) 2010
* RE2, INC.
*
* Author: RE2
*
* This file is a part of RobotModel, which was developed for the
* DARPA ARM ROBOT Track C project.
*
* RobotModel is free software:
* you can redistribute it and/or modify it under the terms of the GNU General
* Public License as published by the Free Software Foundation, either version
* 3 of the License, or (at your option) any later version.
*
* You should have received a copy of the GNU General Public License along
* with this package. If not, see <http://www.gnu.org/licenses/>.
*
* RE2, INC. disclaims all warranties with regard to this software, including
* all implied warranties of merchantability and fitness, in no event shall
* RE2, INC. be liable for any special, indirect or consequential damages or
* any damages whatsoever resulting from loss of use, data or profits, whether
* in an action of contract, negligence or other tortious action, arising out
* of or in connection with the use or performance of this software.
-->

<robot xmlns:xacro="http://www.ros.org/wiki/xacro">

<xacro:include filename="$(find barrett_model)/models/common.urdf.xacro"/>
<xacro:include filename="$(find barrett_model)/models/components.urdf.xacro"/>

<xacro:macro name="wam_7dof" params="prefix xyz rpy">
<xacro:wam prefix="${prefix}" xyz="${xyz}" rpy="${rpy}"/>
<xacro:wam_wrist prefix="${prefix}"/>
<xacro:wam_wrist_palm_stump prefix="${prefix}"/>
</xacro:macro>

<xacro:macro name="wam_4dof" params="prefix parent_link xyz rpy">
<xacro:wam prefix="${prefix}" parent_link="${parent_link}" xyz="${xyz}" rpy="${rpy}"/>
<xacro:wam_stump prefix="${prefix}"/>
</xacro:macro>

<!-- upper arm only -->
<xacro:macro name="wam" params="prefix xyz rpy">
<!--<xacro:wam_base prefix="${prefix}" parent_link="${parent_link}" xyz="${xyz}" rpy="${rpy}"/>-->
<xacro:wam_shoulder_yaw prefix="${prefix}"/>
<xacro:wam_shoulder_pitch prefix="${prefix}"/>
<xacro:wam_upper_arm prefix="${prefix}"/>
</xacro:macro>

<!-- forearm with actuation "wrist" -->
<xacro:macro name="wam_wrist" params="prefix">
<xacro:wam_forearm prefix="${prefix}"/>
<xacro:wam_wrist_yaw prefix="${prefix}"/>
<xacro:wam_wrist_pitch prefix="${prefix}"/>
<xacro:wam_palm prefix="${prefix}"/>
</xacro:macro>

</robot>
Loading