Skip to content

Commit

Permalink
Add support for AR2010 (rebased #396) (#480)
Browse files Browse the repository at this point in the history
Squashed commits:

* Added AR2010 support.
* ar2010: update minimum CMake version to avoid warnings on Noetic
* ar2010: add XML preambles where they were missing
* ar2010: tabs to spaces
* ar2010: remove Gazebo-isms
* ar2010: use correct "no-version" version
* ar2010: correctly capitalise series name
* ar2010: tests should have variant suffix
* ar2010: add note about all joints rotating around Z+

Co-authored-by: Alec Tiefenthal <[email protected]>
  • Loading branch information
gavanderhoorn and Alec Tiefenthal authored Mar 23, 2022
1 parent bd1fc3f commit 19e629f
Show file tree
Hide file tree
Showing 24 changed files with 346 additions and 0 deletions.
15 changes: 15 additions & 0 deletions motoman_ar2010_support/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 3.0.2)

project(motoman_ar2010_support)

find_package(catkin REQUIRED)

catkin_package()

if (CATKIN_ENABLE_TESTING)
find_package(roslaunch REQUIRED)
roslaunch_add_file_check(test/launch_test_ar2010.xml)
endif()

install(DIRECTORY config launch meshes urdf
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
1 change: 1 addition & 0 deletions motoman_ar2010_support/config/joint_names_ar2010.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
controller_joint_names: ['joint_1_s', 'joint_2_l', 'joint_3_u', 'joint_4_r', 'joint_5_b', 'joint_6_t']
4 changes: 4 additions & 0 deletions motoman_ar2010_support/launch/load_ar2010.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 motoman_ar2010_support)/urdf/ar2010.xacro'" />
</launch>
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
<?xml version="1.0" ?>
<!--
Manipulator specific version of 'robot_interface_streaming.launch'.
Defaults provided for ar2010:
- 7 joints
Usage:
robot_interface_streaming_ar2010.launch robot_ip:=<value> controller:=<yrc1000>
-->
<launch>
<arg name="robot_ip" />

<!-- controller: Controller name (yrc1000) -->
<arg name="controller"/>

<rosparam command="load" file="$(find motoman_ar2010_support)/config/joint_names_ar2010.yaml" />

<include file="$(find motoman_driver)/launch/robot_interface_streaming_$(arg controller).launch">
<arg name="robot_ip" value="$(arg robot_ip)" />
</include>
</launch>
28 changes: 28 additions & 0 deletions motoman_ar2010_support/launch/robot_state_visualize_ar2010.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?xml version="1.0" ?>
<!--
Manipulator specific version of the state visualizer.
Defaults provided for ar2010:
- 7 joints
Usage:
robot_state_visualize_ar2010.launch robot_ip:=<value> controller:=<yrc1000>
-->
<launch>
<arg name="robot_ip" />

<!-- controller: Controller name (yrc1000) -->
<arg name="controller" />

<rosparam command="load" file="$(find motoman_ar2010_support)/config/joint_names_ar2010.yaml" />

<include file="$(find motoman_driver)/launch/robot_state_$(arg controller).launch">
<arg name="robot_ip" value="$(arg robot_ip)" />
</include>

<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

<include file="$(find motoman_ar2010_support)/launch/load_ar2010.launch" />

<node name="rviz" pkg="rviz" type="rviz" args="-d $(find industrial_robot_client)/config/robot_state_visualize.rviz" required="true" />
</launch>
8 changes: 8 additions & 0 deletions motoman_ar2010_support/launch/test_ar2010.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<?xml version="1.0" ?>
<launch>
<include file="$(find motoman_ar2010_support)/launch/load_ar2010.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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added motoman_ar2010_support/meshes/visual/link_6_t.stl
Binary file not shown.
61 changes: 61 additions & 0 deletions motoman_ar2010_support/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format2.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="2">
<name>motoman_ar2010_support</name>
<version>0.1.0</version>
<description>
<p>ROS-Industrial support for the Motoman AR2010 (and variants).</p>
<p>
This package contains configuration data, 3D models and launch files
for Motoman AR2010 manipulators.
</p>
<p>
<b>Specifications</b>
</p>
<ul>
<li>AR2010 - Default</li>
</ul>
<p>
Joint limits and maximum joint velocities are based on the information
found in <em>YASKAWA MOTOMAN AR2010 INSTRUCTIONS (HW1484892)</em> version
<em>182442-1CD, rev 0</em>.
All urdfs are based on the default motion and joint velocity limits,
unless noted otherwise.
</p>
<p>
Before using any of the configuration files and / or meshes included
in this package, be sure to check they are correct for the particular
robot model and configuration you intend to use them with.
</p>
<p>
NOTE: the base model xacro macro has all joints oriented such that they
rotate around the Z+ axis. As a consequence, link frames in this model
do not follow REP-103 wrt frame orientation.
</p>
</description>
<author>Alec Tiefenthal</author>
<maintainer email="[email protected]">Alec Tiefenthal</maintainer>
<maintainer email="[email protected]">Eric Marcil</maintainer>
<maintainer email="[email protected]">G.A. vd. Hoorn (TU Delft Robotics Institute)</maintainer>
<license>BSD</license>

<url type="website">http://wiki.ros.org/motoman_ar2010_support</url>
<url type="bugtracker">https://github.com/ros-industrial/motoman/issues</url>
<url type="repository">https://github.com/ros-industrial/motoman</url>

<buildtool_depend>catkin</buildtool_depend>

<test_depend>roslaunch</test_depend>

<exec_depend>joint_state_publisher</exec_depend>
<exec_depend>motoman_driver</exec_depend>
<exec_depend>motoman_resources</exec_depend>
<exec_depend>robot_state_publisher</exec_depend>
<exec_depend>joint_state_publisher_gui</exec_depend>
<exec_depend>rviz</exec_depend>
<exec_depend>xacro</exec_depend>

<export>
<architecture_independent/>
</export>
</package>
31 changes: 31 additions & 0 deletions motoman_ar2010_support/test/launch_test_ar2010.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<launch>
<arg name="req_arg" value="default"/>
<arg name="yrc1000" value="yrc1000"/>

<group ns="load_ar2010">
<include file="$(find motoman_ar2010_support)/launch/load_ar2010.launch"/>
</group>

<group ns="test_ar2010">
<include file="$(find motoman_ar2010_support)/launch/test_ar2010.launch"/>
</group>

<group ns="robot_interface_streaming_ar2010">
<group ns="yrc1000" >
<include file="$(find motoman_ar2010_support)/launch/robot_interface_streaming_ar2010.launch">
<arg name="robot_ip" value="$(arg req_arg)" />
<arg name="controller" value="$(arg yrc1000)"/>
</include>
</group>
</group>

<group ns="robot_state_visualize_ar2010">
<group ns="yrc1000" >
<include file="$(find motoman_ar2010_support)/launch/robot_state_visualize_ar2010.launch">
<arg name="robot_ip" value="$(arg req_arg)" />
<arg name="controller" value="$(arg yrc1000)"/>
</include>
</group>
</group>

</launch>
5 changes: 5 additions & 0 deletions motoman_ar2010_support/urdf/ar2010.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" ?>
<robot name="motoman_ar2010" xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:include filename="$(find motoman_ar2010_support)/urdf/ar2010_macro.xacro" />
<xacro:motoman_ar2010 prefix=""/>
</robot>
171 changes: 171 additions & 0 deletions motoman_ar2010_support/urdf/ar2010_macro.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,171 @@
<?xml version="1.0" ?>
<robot xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:macro name="motoman_ar2010" params="prefix">

<xacro:include filename="$(find motoman_resources)/urdf/common_materials.xacro"/>

<!-- link list -->
<link name="${prefix}base_link">
<visual>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/visual/base_link.stl"/>
</geometry>
<xacro:material_yaskawa_blue/>
</visual>
<collision>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/collision/base_link.stl"/>
</geometry>
</collision>
</link>
<link name="${prefix}link_1_s">
<visual>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/visual/link_1_s.stl"/>
</geometry>
<xacro:material_yaskawa_blue/>
</visual>
<collision>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/collision/link_1_s.stl"/>
</geometry>
</collision>
</link>
<link name="${prefix}link_2_l">
<visual>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/visual/link_2_l.stl"/>
</geometry>
<xacro:material_yaskawa_blue/>
</visual>
<collision>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/collision/link_2_l.stl"/>
</geometry>
</collision>
</link>
<link name="${prefix}link_3_u">
<visual>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/visual/link_3_u.stl"/>
</geometry>
<xacro:material_yaskawa_blue/>
</visual>
<collision>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/collision/link_3_u.stl"/>
</geometry>
</collision>
</link>
<link name="${prefix}link_4_r">
<visual>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/visual/link_4_r.stl"/>
</geometry>
<xacro:material_yaskawa_blue/>
</visual>
<collision>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/collision/link_4_r.stl"/>
</geometry>
</collision>
</link>
<link name="${prefix}link_5_b">
<visual>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/visual/link_5_b.stl"/>
</geometry>
<xacro:material_yaskawa_blue/>
</visual>
<collision>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/collision/link_5_b.stl"/>
</geometry>
</collision>
</link>
<link name="${prefix}link_6_t">
<visual>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/visual/link_6_t.stl"/>
</geometry>
<xacro:material_yaskawa_blue/>
</visual>
<collision>
<geometry>
<mesh filename="package://motoman_ar2010_support/meshes/collision/link_6_t.stl"/>
</geometry>
</collision>
</link>
<!-- end of link list -->

<!-- joint list -->
<!-- Joints are specified such that the driver rotates the joints about the positive Z axis. -->
<joint name="${prefix}joint_1_s" type="revolute">
<parent link="${prefix}base_link"/>
<child link="${prefix}link_1_s"/>
<origin xyz="0 0 0.505" rpy="0 0 0"/>
<axis xyz="0 0 1"/>
<limit lower="${radians(-180)}" upper="${radians(180)}" effort="3087" velocity="${radians(210)}"/>
</joint>
<joint name="${prefix}joint_2_l" type="revolute">
<parent link="${prefix}link_1_s"/>
<child link="${prefix}link_2_l"/>
<origin xyz="0.150 0 0" rpy="${pi/2} ${-pi/2} ${-pi}"/>
<axis xyz="0 0 1"/>
<limit lower="${radians(-105)}" upper="${radians(155)}" effort="3087" velocity="${radians(210)}"/>
</joint>
<joint name="${prefix}joint_3_u" type="revolute">
<parent link="${prefix}link_2_l"/>
<child link="${prefix}link_3_u"/>
<origin xyz="0.760 0 0" rpy="${pi} 0 0"/>
<axis xyz="0 0 1"/>
<limit lower="${radians(-86)}" upper="${radians(160)}" effort="926.1" velocity="${radians(220)}"/>
</joint>
<joint name="${prefix}joint_4_r" type="revolute">
<parent link="${prefix}link_3_u"/>
<child link="${prefix}link_4_r"/>
<origin xyz="0.200 -1.082 0" rpy="${-pi/2} 0 0"/>
<axis xyz="0 0 1"/>
<limit lower="${radians(-150)}" upper="${radians(150)}" effort="78.4" velocity="${radians(435)}"/>
</joint>
<joint name="${prefix}joint_5_b" type="revolute">
<parent link="${prefix}link_4_r"/>
<child link="${prefix}link_5_b"/>
<origin xyz="0 0 0" rpy="${pi/2} 0 0"/>
<axis xyz="0 0 1"/>
<limit lower="${radians(-135)}" upper="${radians(90)}" effort="67.03" velocity="${radians(435)}"/>
</joint>
<joint name="${prefix}joint_6_t" type="revolute">
<parent link="${prefix}link_5_b"/>
<child link="${prefix}link_6_t"/>
<origin xyz="0 -0.100 0" rpy="${-pi/2} 0 0"/>
<axis xyz="0 0 1"/>
<limit lower="${radians(-210)}" upper="${radians(210)}" effort="33.3" velocity="${radians(700)}"/>
</joint>
<!-- end of joint list -->

<!-- ROS base_link to Robot Manufacturer World Coordinates transform -->
<link name="${prefix}base"/>
<joint name="${prefix}base_link-base" type="fixed">
<origin xyz="0 0 0.505" 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 name="${prefix}joint_6_t-flange" type="fixed">
<origin xyz="0 0 0" rpy="0 ${pi/2} 0"/>
<parent link="${prefix}link_6_t"/>
<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="${pi} ${-pi/2.0} 0"/>
<parent link="${prefix}flange"/>
<child link="${prefix}tool0"/>
</joint>
</xacro:macro>
</robot>

0 comments on commit 19e629f

Please sign in to comment.