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

Native Robot I/O #27

Open
shaun-edwards opened this issue Jul 31, 2013 · 10 comments
Open

Native Robot I/O #27

shaun-edwards opened this issue Jul 31, 2013 · 10 comments

Comments

@shaun-edwards
Copy link
Member

This issue has been moved from: ros-industrial/ros_industrial_issues#2 (submitted by @clay-flannigan)

Native robot I/O should be supported through standard ROS-I interfaces. Most industrial controllers have built-in (embedded) I/O standard functions like fence-status, gripper-close, etc. They generally also support general purpose I/O. Exposing these I/O points would remove the requirement for separate networked I/O from the ROS PC.

@liborw
Copy link
Contributor

liborw commented Aug 1, 2013

We have already implemented an IO interface for motoman (DX100) robot. With bit of help we can make it more general.

The current implementation uses another simple message. The message is composed of pairs, IO address and command. Command represents reading, writing and read value (in case of reply from the controller).

@gavanderhoorn
Copy link
Member

@liborw: is this code publicly accessible? I'm wondering if you considered (and how you dealt with) issues with consistency?

@liborw
Copy link
Contributor

liborw commented Aug 1, 2013

@gavanderhoorn: yes, the motoman side is here io_interface.[cpp,h], and the message is here io_data.[cpp,h]

@shaun-edwards
Copy link
Member Author

@liborw, @gavanderhoorn, It seemed like this could be the start of a new feature discussion. Was there any resolution on this. This is definitely a feature of interest to a lot of users, but we (SwRI) doesn't have the resources to put to it.

@Samsagax
Copy link

I looked into @liborw code and I think I can implement something for an ABB robot. Maybe we should add a standard configuration file to map I/O units and addresses to human readable form.
Or perhaps we can add identifiers instead of I/O addresses, but that would depend greatly on each manufacturer's controller capabilities.

@shaun-edwards
Copy link
Member Author

@Samsagax, The difficulty in this issue is standardizing IO addressing across robot platforms. @gavanderhoorn is currently putting together a plan for this. While we could implement specific solutions for different robots, it makes sense to take a generic approach so we can standardize at a driver level. This will allow for code portability across vendor platforms.

@Samsagax
Copy link

@gavanderhoorn is currently putting together a plan for this.

@gavanderhoorn, are you open for help?

@shaun-edwards
Copy link
Member Author

@gavanderhoorn, ping...it looks like @Samsagax is willing to help out.

@gavanderhoorn
Copy link
Member

@shaun-edwards: I'd seen it, just hadn't had time to respond yet.

@Samsagax: please contact me off-list (to avoid cluttering this issue).

@gavanderhoorn
Copy link
Member

See also ros-industrial/rep#7.

Jmeyer1292 pushed a commit to Jmeyer1292/industrial_core that referenced this issue Feb 14, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests

4 participants