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

Added cr7ial support #33

Merged
merged 21 commits into from
Jul 28, 2017
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
1b6a519
Added a cr7ia support library and a urdf and moveit configuration for…
dniewinski Jul 21, 2017
2490e04
cr7ia: make 'use_gui' a private param.
gavanderhoorn Jul 21, 2017
3e04145
cr7ia: be specific about the exact variant supported.
gavanderhoorn Jul 21, 2017
66397a3
cr7ia: add at least one ROS-I maintainer.
gavanderhoorn Jul 21, 2017
7441351
cr7ia: add variant suffix to roslaunch test file.
gavanderhoorn Jul 21, 2017
4618626
cr7ia: when using Jade+ xacro, pi is already defined.
gavanderhoorn Jul 21, 2017
9c4fadb
cr7ial_moveit: add readme.
gavanderhoorn Jul 21, 2017
dc97aaf
cr7ia: roslaunch test the correct file.
gavanderhoorn Jul 21, 2017
99ee7d7
cr7ial_moveit: fixup manifest.
gavanderhoorn Jul 21, 2017
3d0ef53
cr7ia: fixup variant name in launch files.
gavanderhoorn Jul 21, 2017
5ecc3af
updated default_planner_config to RRTConnectkConfigDefault
dniewinski Jul 21, 2017
73efdec
Removed myself as a maintainer
dniewinski Jul 21, 2017
be8988a
Fixed a typo in zeros and removed shipping state
dniewinski Jul 21, 2017
b80aab5
Updated joint limits and the manual used to get them
dniewinski Jul 21, 2017
505ac1e
Updated the kinematics to use trac_ik
dniewinski Jul 21, 2017
1e43651
cr7ia: set /L limits based on sysvars.
gavanderhoorn Jul 23, 2017
898dcff
cr7ia_moveit: update MoveIt limits as well.
gavanderhoorn Jul 23, 2017
d50561f
cr7ia_moveit: don't depend on metapackage for kin plugin.
gavanderhoorn Jul 23, 2017
ccc54fd
Fixed world virtual joint
dniewinski Jul 26, 2017
60f88ba
cr7ial_moveit: saner RViz cfg.
gavanderhoorn Jul 28, 2017
90a0208
cr7ia: this is not an LR Mate.
gavanderhoorn Jul 28, 2017
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
17 changes: 17 additions & 0 deletions fanuc_cr7ia_support/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
cmake_minimum_required(VERSION 2.8.3)

project(fanuc_cr7ia_support)

find_package(catkin REQUIRED)

catkin_package()

if (CATKIN_ENABLE_TESTING)
find_package(roslaunch REQUIRED)
roslaunch_add_file_check(tests/roslaunch_test_cr7ial.xml)
endif()

install(DIRECTORY config launch meshes urdf
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})

install(FILES readme.md DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
1 change: 1 addition & 0 deletions fanuc_cr7ia_support/config/joint_names_cr7ial.yaml
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 fanuc_cr7ia_support/launch/load_cr7ial.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 fanuc_cr7ia_support)/urdf/cr7ial.xacro'" />
</launch>
25 changes: 25 additions & 0 deletions fanuc_cr7ia_support/launch/robot_interface_streaming_cr7ial.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<?xml version="1.0"?>
<!--
Manipulator specific version of 'robot_interface_streaming.launch'.

Defaults provided for LR Mate CR-7iA/L:
- J23_factor = 1
- use_bswap = true
- 6 joints

Usage:
robot_interface_streaming_cr7ial.launch robot_ip:=<value>
-->
<launch>
<arg name="robot_ip" doc="IP of controller" />
<arg name="J23_factor" default="1" doc="Compensation factor for joint 2-3 coupling (-1, 0 or 1)" />
<arg name="use_bswap" default="true" doc="If true, robot driver will byte-swap all incoming and outgoing data" />

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

<include file="$(find fanuc_driver)/launch/robot_interface_streaming.launch">
<arg name="robot_ip" value="$(arg robot_ip)" />
<arg name="J23_factor" value="$(arg J23_factor)" />
<arg name="use_bswap" value="$(arg use_bswap)" />
</include>
</launch>
32 changes: 32 additions & 0 deletions fanuc_cr7ia_support/launch/robot_state_visualize_cr7ial.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?xml version="1.0"?>
<!--
Manipulator specific version of the state visualizer.

Defaults provided for LR Mate CR-7iA/L:
- J23_factor = 1
- use_bswap = true
- 6 joints

Usage:
robot_state_visualize_cr7ial.launch robot_ip:=<value>
-->
<launch>
<arg name="robot_ip" doc="IP of controller" />
<arg name="J23_factor" default="1" doc="Compensation factor for joint 2-3 coupling (-1, 0 or 1)" />
<arg name="use_bswap" default="true" doc="If true, robot driver will byte-swap all incoming and outgoing data" />

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

<include file="$(find fanuc_driver)/launch/robot_state.launch">
<arg name="robot_ip" value="$(arg robot_ip)" />
<arg name="J23_factor" value="$(arg J23_factor)" />
<arg name="use_bswap" value="$(arg use_bswap)" />
</include>

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

<include file="$(find fanuc_cr7ia_support)/launch/load_cr7ial.launch" />

<node name="rviz" pkg="rviz" type="rviz" args="-d $(find industrial_robot_client)/config/robot_state_visualize.rviz" required="true" />
</launch>
9 changes: 9 additions & 0 deletions fanuc_cr7ia_support/launch/test_cr7ial.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0"?>
<launch>
<include file="$(find fanuc_cr7ia_support)/launch/load_cr7ial.launch" />
<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher">
<param name="use_gui" value="true" />
</node>
<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 not shown.
65 changes: 65 additions & 0 deletions fanuc_cr7ia_support/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
<?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>fanuc_cr7ia_support</name>
<version>0.1.0</version>
<description>
<p>
ROS-Industrial support for the Fanuc CR-7iA (and variants).
</p>
<p>
This package contains configuration data, 3D models and launch files
for Fanuc CR-7iA manipulators. This currently includes the /L model
only.
</p>
<p><b>Specifications</b>:</p>
<ul>
<li>CR-7iA/L - Normal Range</li>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just making sure: have you verified this? What did you choose in the initial robot setup?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Verifying this now. J3 limits on Fanuc change depending on J2, and since it's linked-arm, the J3 value is also tied to J2. Is there any way to have the limits of J3 updated based on the current value of J2? Unless the limits are set small enough that they are always within the actual limits, there will always be cases where you can plan outside of actual limits

Copy link
Member

@gavanderhoorn gavanderhoorn Jul 21, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

re: limits based on J2-J3: true, but normal range only refers to the range of motion of J1 in this case.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Limits have been update as of manual. I don't see any reference to max joint speeds in the manual though

Copy link
Member

@gavanderhoorn gavanderhoorn Jul 21, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, Fanuc doesn't do that for their CR range. Where'd you get the joint speed limits that you have in there now?

Copy link
Member

@gavanderhoorn gavanderhoorn Jul 21, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you get me a copy of all sy*.va files on the controller? Either simulated or real, doesn't matter. A zip file to my email would be very much appreciated.

FTP is probably easiest.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will get a backup to you shortly

</ul>
<p>
Joint limits and maximum joint velocities are based on the information in
the FANUC Robot CR-7iA Mechanical Unit Operator's Manual.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you please be exact about which version of the manual you used? Fanuc documents are versioned, so I'd like this to be as specific as possible. It should be something like B-NNNNNLL/VV (with NNNNN the doc id, LL the language and VV the revision).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated

All urdfs 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>
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>
</description>
<author email="dniewinski@clearpathrobotics.com">Dave Niewinski</author>
<maintainer email="g.a.vanderhoorn@tudelft.nl">G.A. vd. Hoorn (TU Delft Robotics Institute)</maintainer>
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've added myself as maintainer, as we do that for all ROS-I packages.

Are you actually planning to maintain this? I'd very much welcome that, but it is a committment.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can maintain, but you would likely be better-suited. I'll just contribute

<license>BSD</license>

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

<buildtool_depend>catkin</buildtool_depend>

<test_depend>roslaunch</test_depend>

<exec_depend>fanuc_driver</exec_depend>
<exec_depend>fanuc_resources</exec_depend>
<exec_depend>joint_state_publisher</exec_depend>
<exec_depend>robot_state_publisher</exec_depend>
<exec_depend>rviz</exec_depend>
<exec_depend>xacro</exec_depend>

<export>
<architecture_independent />
<rosindex>
<tags>
<tag>cr7ia</tag>
<tag>description</tag>
<tag>experimental</tag>
<tag>fanuc</tag>
<tag>industrial</tag>
<tag>ros-industrial</tag>
<tag>support_package</tag>
</tags>
</rosindex>
</export>
</package>
10 changes: 10 additions & 0 deletions fanuc_cr7ia_support/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# fanuc_cr7ia_support

## Overview

This package is part of the [ROS-Industrial][] program. See the main
[fanuc_experimental][] page on the ROS wiki for more information on usage.


[ROS-Industrial]: http://wiki.ros.org/Industrial
[fanuc_experimental]: http://wiki.ros.org/fanuc_experimental
40 changes: 40 additions & 0 deletions fanuc_cr7ia_support/tests/roslaunch_test_cr7ial.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?xml version="1.0"?>
<launch>
<arg name="ip_str" value="127.0.0.1" />

<group ns="load_cr7ial__">
<include file="$(find fanuc_cr7ia_support)/launch/load_cr7ial.launch"/>
</group>

<group ns="test_cr7ial__">
<include file="$(find fanuc_cr7ia_support)/launch/test_cr7ial.launch"/>
</group>

<group ns="robot_interface_streaming_cr7ial__">
<include file="$(find fanuc_cr7ia_support)/launch/robot_interface_streaming_cr7ial.launch">
<arg name="robot_ip" value="$(arg ip_str)" />
</include>
</group>

<group ns="robot_state_visualize_cr7ial__">
<include file="$(find fanuc_cr7ia_support)/launch/robot_state_visualize_cr7ial.launch">
<arg name="robot_ip" value="$(arg ip_str)" />
</include>
</group>


<!-- without bswap -->
<group ns="robot_interface_streaming_cr7ial_f__">
<include file="$(find fanuc_cr7ia_support)/launch/robot_interface_streaming_cr7ial.launch">
<arg name="robot_ip" value="$(arg ip_str)" />
<arg name="use_bswap" value="false" />
</include>
</group>

<group ns="robot_state_visualize_cr7ial_f__">
<include file="$(find fanuc_cr7ia_support)/launch/robot_state_visualize_cr7ial.launch">
<arg name="robot_ip" value="$(arg ip_str)" />
<arg name="use_bswap" value="false" />
</include>
</group>
</launch>
5 changes: 5 additions & 0 deletions fanuc_cr7ia_support/urdf/cr7ial.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" ?>
<robot name="fanuc_cr7ial" xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:include filename="$(find fanuc_cr7ia_support)/urdf/cr7ial_macro.xacro"/>
<xacro:fanuc_cr7ial prefix=""/>
</robot>
Loading