ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I'm working on a project that uses 4x ABB IRB6640 with IRBT6004 tracks. RobotWare 5.15, ROS Melodic. [..]

I don't really have any experience with RW5 I'm afraid, so I can't comment on any potential differences with RW6 based systems.

The company that has commissioned the robots for me have setup the track as a separate mechanical unit within the controller. They have said that they are not aware of a way of setting external axis up in the same mechanical unit. Is this correct or do they just not know how to do that?

re: single mechanical unit: the current implementation of abb_driver essentially starts only a single motion task. And as a single motion task can only control a single mechanical unit, that's where the "in a single mechanical unit" comment comes from.

If i understand the abb_driver wiki correctly, this means i have to have 2 instances of the abb_driver running in the controller, one for each mechanical unit?

Yes, that's one way to approach it.

I have found the following post, which is somewhat similar: ros-industrial/abb_driver#3.

however this is treating it as 2 separate robots on the ROS side (unless i misunderstood it). In my case i need ROS to see each of the robots with their respective rails as as single unit. do i need to have 2 sets of abb_driver nodes running for each robot?

The setup discussed in ros-industrial/abb_driver#3 indeed runs two driver instances per robot (in your case), which exposes two sets of action servers per robot. This removes the possibility to synchronously move all axes. If that's a problem, another solution must be found. If it's not a problem, then depending on how you interact with those action servers, it can be made to look like it's a single robot (MoveIt fi should be able to deal with that, but I'd have to verify, alternatively, a custom node could be created which splits a JointTrajectory in two parts, but presents a single action server to your application). From a JointStates perspective it's not difficult to pretend there's only a single mechanism.

If at all possible, setting up the ABB controller as a single mechanical unit would probably be the easiest way to get things going -- at least with the current implementation of abb_driver.

I'm working on a project that uses 4x ABB IRB6640 with IRBT6004 tracks. RobotWare 5.15, ROS Melodic. [..]

I don't really have any experience with RW5 I'm afraid, so I can't comment on any potential differences with RW6 based systems.

The company that has commissioned the robots for me have setup the track as a separate mechanical unit within the controller. They have said that they are not aware of a way of setting external axis up in the same mechanical unit. Is this correct or do they just not know how to do that?

re: single mechanical unit: the current implementation of abb_driver essentially starts only a single motion task. And as a single motion task can only control a single mechanical unit, that's where the "in a single mechanical unit" comment comes from.

If i understand the abb_driver wiki correctly, this means i have to have 2 instances of the abb_driver running in the controller, one for each mechanical unit?

Yes, that's one way to approach it.

I have found the following post, which is somewhat similar: ros-industrial/abb_driver#3.

however this is treating it as 2 separate robots on the ROS side (unless i misunderstood it). In my case i need ROS to see each of the robots with their respective rails as as single unit. do i need to have 2 sets of abb_driver nodes running for each robot?

The setup discussed in ros-industrial/abb_driver#3 indeed runs two driver instances per robot (in your case), which exposes two sets of action servers per robot. This removes the possibility to synchronously move all axes. If that's a problem, another solution must be found. If it's not a problem, then depending on how you interact with those action servers, it can be made to look like it's a single robot (MoveIt fi should be able to deal with that, but I'd have to verify, alternatively, a custom node could be created which splits a JointTrajectory in two parts, but presents a single action server to your application). From a JointStates perspective it's not difficult to pretend there's only a single mechanism.

If at all possible, setting up the ABB controller as a single mechanical unit would probably be the easiest way to get things going -- at least with the current implementation of abb_driver.

. Perhaps a quick call to your local ABB branch office to get confirmation whether that would be possible with RW5?

I'm working on a project that uses 4x ABB IRB6640 with IRBT6004 tracks. RobotWare 5.15, ROS Melodic. [..]

I don't really have any experience with RW5 I'm afraid, so I can't comment on any potential differences with RW6 based systems.

The company that has commissioned the robots for me have setup the track as a separate mechanical unit within the controller. They have said that they are not aware of a way of setting external axis up in the same mechanical unit. Is this correct or do they just not know how to do that?

re: single mechanical unit: the current implementation of abb_driver essentially starts only a single motion task. And as a that single motion task can only control a single mechanical unit, unit (in its current implementation), that's where the "in a single mechanical unit" comment comes from.

If i understand the abb_driver wiki correctly, this means i have to have 2 instances of the abb_driver running in the controller, one for each mechanical unit?

Yes, that's one way to approach it.

I have found the following post, which is somewhat similar: ros-industrial/abb_driver#3.

however this is treating it as 2 separate robots on the ROS side (unless i misunderstood it). In my case i need ROS to see each of the robots with their respective rails as as single unit. do i need to have 2 sets of abb_driver nodes running for each robot?

The setup discussed in ros-industrial/abb_driver#3 indeed runs two driver instances per robot (in your case), which exposes two sets of action servers per robot. This removes the possibility to synchronously move all axes. If that's a problem, another solution must be found. If it's not a problem, then depending on how you interact with those action servers, it can be made to look like it's a single robot (MoveIt fi should be able to deal with that, but I'd have to verify, alternatively, a custom node could be created which splits a JointTrajectory in two parts, but presents a single action server to your application). From a JointStates perspective it's not difficult to pretend there's only a single mechanism.

If at all possible, setting up the ABB controller as a single mechanical unit would probably be the easiest way to get things going -- at least with the current implementation of abb_driver. Perhaps a quick call to your local ABB branch office to get confirmation whether that would be possible with RW5?

I'm working on a project that uses 4x ABB IRB6640 with IRBT6004 tracks. RobotWare 5.15, ROS Melodic. [..]

I don't really have any experience with RW5 I'm afraid, so I can't comment on any potential differences with RW6 based systems.

The company that has commissioned the robots for me have setup the track as a separate mechanical unit within the controller. They have said that they are not aware of a way of setting external axis up in the same mechanical unit. Is this correct or do they just not know how to do that?

re: single mechanical unit: the current implementation of abb_driver essentially starts only a single motion task. And as that single motion task can only control a single mechanical unit (in its current implementation), that's where the "in a single mechanical unit" comment comes from.

If i understand the abb_driver wiki correctly, this means i have to have 2 instances of the abb_driver running in the controller, one for each mechanical unit?

Yes, that's one way to approach it.

I have found the following post, which is somewhat similar: ros-industrial/abb_driver#3.

however this is treating it as 2 separate robots on the ROS side (unless i misunderstood it). In my case i need ROS to see each of the robots with their respective rails as as single unit. do i need to have 2 sets of abb_driver nodes running for each robot?

The setup discussed in ros-industrial/abb_driver#3 indeed runs two driver instances per robot (in your case), which exposes two sets of action servers per robot. This removes the possibility to synchronously move all axes. If that's a problem, another solution must be found. If it's not a problem, then depending on how you interact with those action servers, it can be made to look like it's a single robot (MoveIt fi should be able to deal with that, but I'd have to verify, alternatively, a custom node could be created which splits a JointTrajectory in two parts, but presents a single action server to your application). From a JointStates perspective it's not difficult to pretend there's only a single mechanism.

If at all possible, setting up the ABB controller with the robot + track as a single mechanical unit would probably be the easiest way to get things going -- at least with the current implementation of abb_driver. Perhaps a quick call to your local ABB branch office to get confirmation whether that would be possible with RW5?