Add support for digital I/O an ABB IRC5?

355 views
Skip to first unread message

adrian-k

unread,
Sep 29, 2015, 9:41:48 AM9/29/15
to swri-ros-pkg-dev
Ladies, Gentlemen:

We started "out-of-the-box" two days ago with a Win7 PC, an IRC5 Controller and an ABB IRB120 manipulator. We had the robot working in RobotStudio earlier. We installed VirtualBox, ubuntu on top, ros, and all ros-industrial packages. We then found the abb_experimental package, fiddled with that, loaded the drivers onto the ABB box. Long story short: it just worked. We are now controlling the robot from moveit. You guys are amazing. Thanks for all your work. By the way, we can recommend adding the IRB120 stuff to the official package.

Now, because all this worked much faster than we thought, we thought it might be a great idea to try to add digital I/O support for these ABB robots.This would allow us to do a couple neat things with our grippers, which at the moment are just deadweight.

Is anybody interested in starting a discussion here how this could be achieved in a "sustainable" way? Alternatively, is anybody already working on this? Is there a way we can help?

Looking forward to getting on board...

-Adrian

--
ak, Univ. Appl. Sc. Lucerne, CH.

Shaun Edwards

unread,
Sep 30, 2015, 10:10:19 PM9/30/15
to swri-ros-pkg-dev
Adrian,

Thanks for kind words.  If you are interested in contributing the IRB120 to ROS-I, please do so.  We do enforce a standard layout for robot packages to ensure consistency across all packages.  See here: http://wiki.ros.org/Industrial/Tutorials/SuggestedPackageLayoutNewRepositories for details. Assuming the IRB 120 package meets these requirements, simply submit a PR through Github for review (http://wiki.ros.org/Industrial/Tutorials/IndustrialPullRequestReview ).

Some thought has been put into a generic IO interface.  See here: https://github.com/ros-industrial/rep/pull/7 .  The rendered version here: https://github.com/gavanderhoorn/rep-ros-i/blob/rep-xxxx_generic_io/rep-ixxxx.rst may be easier to read.  As far as I know, nobody has implemented this, so the outlined approach hasn't been verified.  

Alternatively, the UR has it's own (vendor/hardware specific) implementation.  See

While we would prefer the generic approach, a hardware specific approach with a standard ROS API, similar to the UR would also be of interest.  Either way, if you are interested contributing either, that would be great.  I suggest we take this conversation off list to talk about implementation details.  Just let me know.

Shaun

--
You received this message because you are subscribed to the Google Groups "swri-ros-pkg-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to swri-ros-pkg-d...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

G.A. vd. Hoorn - 3ME

unread,
Oct 1, 2015, 3:15:07 AM10/1/15
to swri-ros...@googlegroups.com
On 1-10-2015 4:10, Shaun Edwards wrote:
> Adrian,
>
> Thanks for kind words. If you are interested in contributing the IRB120 to
> ROS-I, please do so. We do enforce a standard layout for robot packages to
> ensure consistency across all packages. See here:
> http://wiki.ros.org/Industrial/Tutorials/SuggestedPackageLayoutNewRepositories
> for
> details. Assuming the IRB 120 package meets these requirements, simply
> submit a PR through Github for review (
> http://wiki.ros.org/Industrial/Tutorials/IndustrialPullRequestReview ).
[..]

just some clarification: the ABB IRB 120 (and T) are already supported,
the packages are just in the 'abb_experimental' repository [1].

They were contributed by Mark Culleton and Kevin Kelly from Trinity
College Dublin, Ireland.

@Adrian: of course, if you find something missing, or not working as it
should, please do follow Shaun's suggestions.


Gijs

[1] https://github.com/ros-industrial/abb_experimental

Shaun Edwards

unread,
Oct 2, 2015, 9:35:45 AM10/2/15
to swri-ros...@googlegroups.com
Gjis,

Good catch.  I should have looked there first.  Is it possible to move the IRB 120 support packages over to the ABB repo?  Could Adrian validate the package is correct?

-Shaun

G.A. vd. Hoorn - 3ME

unread,
Oct 2, 2015, 11:05:33 AM10/2/15
to swri-ros...@googlegroups.com
On 2-10-2015 15:35, Shaun Edwards wrote:
> Gjis,
>
> Good catch. I should have looked there first. Is it possible to move the
> IRB 120 support packages over to the ABB repo? Could Adrian validate the
> package is correct?

As with all new packages, they are left in '_experimental' repositories
a bit to 'soak'. Ideally they receive quite some use before we decide to
move them to the release repositories.

As these have only been there for a couple of months, and I don't have
any insight into their use, I don't think I'm in a position to decide this.

Levy is the maintainer of everything ABB, I'll leave it to him.


Gijs

adrian-k

unread,
Oct 5, 2015, 2:54:28 AM10/5/15
to swri-ros-pkg-dev
Gijs, Shaun,

we have only used the IRB120 package for a couple of days now. So, from that point of view, "still soaking". However, the package worked "as is", which to us was the really astounding part. We followed the tutorial on the ROS industrial wiki related to the ABB hardware. What I could do in a first step, is to propose the addition of more details on what we had to do the ABB IRC5 through the Flex Pendant and RobotStudio. The description in the tutorial involved quite a bit of guessing. Also, moving from the simulated to the real hardware in the ROS launch scripts required also some thinking.

As I mentioned earlier, at this point we can fully controll the motion of the robot. However, we cannot do any useful work with it because we have no control of any gripper through ROS. I am willing to invest some project time to explore what needs to be done to achieve that.

-Adrian
--
ak, Univ. Appl. Sc. Lucerne, CH.

G.A. vd. Hoorn - 3ME

unread,
Oct 7, 2015, 11:57:46 AM10/7/15
to swri-ros...@googlegroups.com
On 05/10/15 08:54, adrian-k wrote:
> Gijs, Shaun,

Hi Adrian,


> we have only used the IRB120 package for a couple of days now. So, from
> that point of view, "still soaking". However, the package worked "as is",
> which to us was the really astounding part.

Well, good to hear that things worked for you. That is part of why we
are doing this.


> We followed the tutorial on the
> ROS industrial wiki related to the ABB hardware. What I could do in a first
> step, is to propose the addition of more details on what we had to do the
> ABB IRC5 through the Flex Pendant and RobotStudio. The description in the
> tutorial involved quite a bit of guessing. Also, moving from the simulated
> to the real hardware in the ROS launch scripts required also some thinking.

This will sound a bit strange, but you are actually in a really good
place to do something about this, as you've encountered all these
difficulties yourself.

Do you think it would be possible for you to go in and update the page
with the information you found missing? It is a wiki, so you should be
able to edit everything.

Note that I suggest this not because I'm lazy, or unwilling to do this
myself, but because I believe that your experiences with the current
documentation -- as a new comer -- should allow you to do this much
better than I can.


> As I mentioned earlier, at this point we can fully controll the motion of
> the robot. However, we cannot do any useful work with it because we have no
> control of any gripper through ROS. I am willing to invest some project
> time to explore what needs to be done to achieve that.

You have some options here. One is to use any of the field buses your
robot supports (ethernet/ip, profibus, etc), and install a compatible
interface card in your PC. You could then write a node that exposes the
IO exported by the fieldbus interface to your ROS application.

Another alternative could be to extend the ABB driver with some IO
related messages, and expose those through the abb_robot_state node or a
new one. As to the message structures, the REP Shaun linked could be a
starting point.

The disadvantage of the fieldbus approach is that it might require
additional hardware. The advantage is that it requires the least
on-robot development.


Gijs
>>>> email to swri-ros-pkg-d...@googlegroups.com <javascript:>.

Huang Yijiang

unread,
Jun 4, 2017, 8:51:06 PM6/4/17
to swri-ros-pkg-dev
Hi Gijs,

Thank you for your suggestion and discussion, as always.

You have some options here. One is to use any of the field buses your 
robot supports (ethernet/ip, profibus, etc), and install a compatible 
interface card in your PC. You could then write a node that exposes the 
IO exported by the fieldbus interface to your ROS application. 

I'm wondering if there's any documentation and tutorials about the "field bus approach" you've mentioned? Or is this
too hardware-specific?

I noticed that ros-i community has remarkable contributions [1] related to industrial fieldbuses, but none of these
amazing packages are well-documented or accompanied with tutorials.

Could you please point me to some resources to learn about filed bus and these related packages? I can contribute
to draft a tutorial after my attempts.

Best,
Yijiang  

Reply all
Reply to author
Forward
0 new messages