Skip to content

Commit

Permalink
Experimental support for CRB 15000-12/1.27 (#149)
Browse files Browse the repository at this point in the history
Squashed commits:

* Added support for CRB 15000-12
* Added support for CRB 15000-12
* Update package.xml
* Unified mesh normals, fixed joint and speed limits.
* Make sure to run 12/1.27 variant roslaunch test as well
* Clarify source of joint limits and other specs

---------

Co-authored-by: gavanderhoorn <[email protected]>
  • Loading branch information
mmmarcopalma and gavanderhoorn authored Sep 22, 2024
1 parent 20b9cf8 commit e7ee7b0
Show file tree
Hide file tree
Showing 16 changed files with 207 additions and 5 deletions.
1 change: 1 addition & 0 deletions abb_crb15000_support/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ catkin_package()
if (CATKIN_ENABLE_TESTING)
find_package(roslaunch REQUIRED)
roslaunch_add_file_check(tests/roslaunch_test_crb15000_5_95.xml)
roslaunch_add_file_check(tests/roslaunch_test_crb15000_12_127.xml)
endif()

install(DIRECTORY config launch meshes urdf
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
controller_joint_names: ['joint_1', 'joint_2', 'joint_3', 'joint_4', 'joint_5', 'joint_6']
4 changes: 4 additions & 0 deletions abb_crb15000_support/launch/load_crb15000_12_127.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<?xml version="1.0" ?>
<launch>
<param name="robot_description" command="$(find xacro)/xacro --inorder '$(find abb_crb15000_support)/urdf/crb15000_12_127.xacro'" />
</launch>
7 changes: 7 additions & 0 deletions abb_crb15000_support/launch/test_crb15000_12_127.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" ?>
<launch>
<include file="$(find abb_crb15000_support)/launch/load_crb15000_12_127.launch"/>
<node name="joint_state_publisher_gui" pkg="joint_state_publisher_gui" type="joint_state_publisher_gui" />
<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />
<node name="rviz" pkg="rviz" type="rviz" args="-d $(find industrial_robot_client)/config/robot_state_visualize.rviz" required="true" />
</launch>
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.
14 changes: 9 additions & 5 deletions abb_crb15000_support/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,22 @@
<p>
This package contains configuration data, 3D models and launch files
for ABB GoFa CRB 15000 manipulators. This currently includes the
CRB 15000-5/0.95 variant only.
CRB 15000-5/0.95 and CRB 15000-12/1.27 variants.
</p>
<p>
Joint limits and max joint velocities are based on the information in the
<em>ABB CRB 15000 Datasheet</em>, document ID: <em>TODO, Feb 2021</em>.
<em>ABB CRB 15000 Datasheet</em>, document ID: <em>TODO, Feb 2021</em> for
the CRB 15000-5/0.95. For CRB 15000-12/1.27, they are based on the
information in <em>ABB CRB 15000 Product manual</em>, document ID:
<em>3HAC077389-001, Rev. P</em>.
All urdfs / xacros are based on the default motion and joint velocity
limits, unless noted otherwise (ie: no support for high speed joints,
extended / limited motion ranges or other options).
</p>
<p>
Note 1: this is an early conversion from CAD data downloaded from ABB's
library with geometry and kinematics partially based on the GoFa
datasheet.
Note 1: the CRB 15000-5/0.95 is an early conversion from CAD data
downloaded from ABB's library with geometry and kinematics partially
based on the GoFa datasheet.
There may be conversion errors and other deviations from the real robot.
</p>
<p>
Expand All @@ -37,6 +40,7 @@
</p>
</description>
<author>G.A. vd. Hoorn (TU Delft Robotics Institute)</author>
<author>Marco Palma (TU Vienna Institute of Art and Design)</author>
<maintainer email="[email protected]">G.A. vd. Hoorn (TU Delft Robotics Institute)</maintainer>
<license>Apache-2.0</license>

Expand Down
10 changes: 10 additions & 0 deletions abb_crb15000_support/tests/roslaunch_test_crb15000_12_127.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" ?>
<launch>
<group ns="load_crb15000_12_127__">
<include file="$(find abb_crb15000_support)/launch/load_crb15000_12_127.launch"/>
</group>

<group ns="test_crb15000_12_127__">
<include file="$(find abb_crb15000_support)/launch/test_crb15000_12_127.launch"/>
</group>
</launch>
6 changes: 6 additions & 0 deletions abb_crb15000_support/urdf/crb15000_12_127.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<?xml version="1.0" ?>
<robot name="abb_crb15000_12_127" xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:include filename="$(find abb_crb15000_support)/urdf/crb15000_12_127_macro.xacro"/>
<xacro:abb_crb15000_12_127 prefix=""/>
</robot>

169 changes: 169 additions & 0 deletions abb_crb15000_support/urdf/crb15000_12_127_macro.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:include filename="$(find abb_resources)/urdf/common_materials.xacro"/>

<xacro:macro name="abb_crb15000_12_127" params="prefix">
<!-- link list -->
<link name="${prefix}base_link">
<collision>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_12_127/collision/base_link.stl"/>
</geometry>
</collision>
<visual>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_12_127/visual/base_link.stl"/>
</geometry>
<xacro:material_abb_dark_gray />
</visual>
</link>
<link name="${prefix}link_1">
<collision>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_12_127/collision/link_1.stl"/>
</geometry>
</collision>
<visual>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_12_127/visual/link_1.stl"/>
</geometry>
<xacro:material_abb_dark_gray />
</visual>
</link>
<link name="${prefix}link_2">
<collision>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_12_127/collision/link_2.stl"/>
</geometry>
</collision>
<visual>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_12_127/visual/link_2.stl"/>
</geometry>
<xacro:material_abb_dark_gray />
</visual>
</link>
<link name="${prefix}link_3">
<collision>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_5_95/collision/link_3.stl"/>
</geometry>
</collision>
<visual>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_5_95/visual/link_3.stl"/>
</geometry>
<xacro:material_abb_dark_gray />
</visual>
</link>
<link name="${prefix}link_4">
<collision>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_12_127/collision/link_4.stl"/>
</geometry>
</collision>
<visual>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_12_127/visual/link_4.stl"/>
</geometry>
<xacro:material_abb_graphite_white />
</visual>
</link>
<link name="${prefix}link_5">
<collision>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_5_95/collision/link_5.stl"/>
</geometry>
</collision>
<visual>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_5_95/visual/link_5.stl"/>
</geometry>
<xacro:material_abb_graphite_white />
</visual>
</link>
<link name="${prefix}link_6">
<collision>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_5_95/collision/link_6.stl"/>
</geometry>
</collision>
<visual>
<geometry>
<mesh filename="package://abb_crb15000_support/meshes/crb15000_5_95/visual/link_6.stl"/>
</geometry>
<xacro:material_abb_gray_white />
</visual>
</link>
<!-- end of link list -->

<!-- joint list -->
<joint type="revolute" name="${prefix}joint_1">
<origin xyz="0 0 0.338" rpy="0 0 0"/>
<axis xyz="0 0 1"/>
<parent link="${prefix}base_link"/>
<child link="${prefix}link_1"/>
<limit effort="0" lower="${radians(-270)}" upper="${radians(270)}" velocity="${radians(120)}"/>
</joint>
<joint type="revolute" name="${prefix}joint_2">
<origin xyz="0 0 0" rpy="0 0 0"/>
<axis xyz="0 1 0"/>
<parent link="${prefix}link_1"/>
<child link="${prefix}link_2"/>
<limit effort="0" lower="${radians(-180)}" upper="${radians(180)}" velocity="${radians(120)}"/>
</joint>
<joint type="revolute" name="${prefix}joint_3">
<origin xyz="0 0 0.707" rpy="0 0 0"/>
<axis xyz="0 1 0"/>
<parent link="${prefix}link_2"/>
<child link="${prefix}link_3"/>
<limit effort="0" lower="${radians(-225)}" upper="${radians(85)}" velocity="${radians(125)}"/>
</joint>
<joint type="revolute" name="${prefix}joint_4">
<origin xyz="0 0 0.110" rpy="0 0 0"/>
<axis xyz="1 0 0"/>
<parent link="${prefix}link_3"/>
<child link="${prefix}link_4"/>
<limit effort="0" lower="${radians(-180)}" upper="${radians(180)}" velocity="${radians(200)}"/>
</joint>
<joint type="revolute" name="${prefix}joint_5">
<origin xyz="0.534 0 0" rpy="0 0 0"/>
<axis xyz="0 1 0"/>
<parent link="${prefix}link_4"/>
<child link="${prefix}link_5"/>
<limit effort="0" lower="${radians(-180)}" upper="${radians(180)}" velocity="${radians(200)}"/>
</joint>
<joint type="revolute" name="${prefix}joint_6">
<origin xyz="0.101 0 0.080" rpy="0 0 0"/>
<axis xyz="1 0 0"/>
<parent link="${prefix}link_5"/>
<child link="${prefix}link_6"/>
<limit effort="0" lower="${radians(-270)}" upper="${radians(270)}" velocity="${radians(200)}"/>
</joint>
<!-- end of joint list -->

<!-- ROS-Industrial 'base' frame: base_link to ABB World Coordinates transform -->
<link name="${prefix}base" />
<joint name="${prefix}base_link-base" type="fixed">
<origin xyz="0 0 0" rpy="0 0 0"/>
<parent link="${prefix}base_link"/>
<child link="${prefix}base"/>
</joint>

<!-- ROS-Industrial 'flange' frame: attachment point for EEF models -->
<link name="${prefix}flange"/>
<joint type="fixed" name="${prefix}joint_6-flange">
<origin xyz="0 0 0" rpy="0 0 0"/>
<parent link="${prefix}link_6"/>
<child link="${prefix}flange"/>
</joint>

<!-- ROS-Industrial 'tool0' frame: all-zeros tool frame -->
<link name="${prefix}tool0" />
<joint name="${prefix}flange-tool0" type="fixed">
<origin xyz="0 0 0" rpy="0 ${radians(90)} 0" />
<parent link="${prefix}flange" />
<child link="${prefix}tool0" />
</joint>
</xacro:macro>
</robot>

0 comments on commit e7ee7b0

Please sign in to comment.