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

Is it right that motoman has only one hardware ethernet ip address to connect two controllers?

No. SDA* robots use a single FS100 (or newer) controller that controls all groups (4) simultaneously.

The driver thus only needs a single TCP/IP connection to the controller.

So the motoplus or controller app will send all states or receive command in one port? How they can pub all states in only one /joint_states?

I think this is now clearer from my earlier answer above.

In more detail: JOINT_FEEDBACK_EX messages contain one JOINT_FEEDBACK message per motion group, for a total of four messages.

Is it right to go that I use use two connect with two standalone ip address? How to handle two controller states and commands in one topic, /joint_states, and /joint_trajectory_command? For Q2, I am synchronously coding, it is a really heavy work. I hope anyone could give me advice or a yes to go.

If you have two controllers, then asynchronous motion and joint state feedback could be achieved by simply running two instances of the relevant industrial_robot_client nodes (robot_state and motion_streaming_interface) at the same time, each set connecting to their own controller (just supply a different robot_ip to each launch file). Run each set in their own ROS namespace.

This would effectively treat your two arms as two independent, separate robots.

If combined joint states are desired, then an instance of joint_state_publisher with its source_list parameter (see the documentation) set to include the joint_states topics in both namespaces should work.

Synchronous motion with two separate controllers is going to be difficult -- if not impossible -- to achieve without some form of (mfg supported?) synchronisation between the two controllers. It is also not a use-case that the staubli_val3_driver was designed for.

Is it right that motoman has only one hardware ethernet ip address to connect two controllers?

No. SDA* robots use a single FS100 (or newer) controller that controls all groups (4) simultaneously.

The driver thus only needs a single TCP/IP connection to the controller.

So the motoplus or controller app will send all states or receive command in one port? How they can pub all states in only one /joint_states?

I think this is now clearer from my earlier answer above.

In more detail: JOINT_FEEDBACK_EX messages contain one JOINT_FEEDBACK message per motion group, for a total of four messages.

Is it right to go that I use use two connect with two standalone ip address? How to handle two controller states and commands in one topic, /joint_states, and /joint_trajectory_command? For Q2, I am synchronously coding, it is a really heavy work. I hope anyone could give me advice or a yes to go.

If you have two controllers, then asynchronous motion and joint state feedback could be achieved by simply running two instances of the relevant industrial_robot_client nodes (robot_state and motion_streaming_interface) at the same time, each set connecting to their own controller (just supply a different robot_ip to each launch file). Run each set in their own ROS namespace.namespace (ie: group="left_arm" and group="right_arm" on your launch file include tags).

This would effectively treat your two arms as two independent, separate robots.

If combined joint states are desired, then an instance of joint_state_publisher with its source_list parameter (see the documentation) set to include the joint_states topics in both namespaces should work.

Synchronous motion with two separate controllers is going to be difficult -- if not impossible -- to achieve without some form of (mfg supported?) synchronisation between the two controllers. It is also not a use-case that the staubli_val3_driver was designed for.

Is it right that motoman has only one hardware ethernet ip address to connect two controllers?

No. SDA* robots use a single FS100 (or newer) controller that controls all groups (4) simultaneously.

The driver thus only needs a single TCP/IP connection to the controller.

So the motoplus or controller app will send all states or receive command in one port? How they can pub all states in only one /joint_states?

I think this is now clearer from my earlier answer above.

In more detail: JOINT_FEEDBACK_EX messages contain one JOINT_FEEDBACK message per motion group, for a total of four messages.

Is it right to go that I use use two connect with two standalone ip address? How to handle two controller states and commands in one topic, /joint_states, and /joint_trajectory_command? For Q2, I am synchronously coding, it is a really heavy work. I hope anyone could give me advice or a yes to go.

If you have two controllers, then asynchronous motion and joint state feedback could be achieved by simply running two instances of the relevant industrial_robot_client nodes (robot_state and motion_streaming_interface) of staubli_val3_driver/launch/robot_interface_streaming.launch at the same time, each set instance connecting to their its own controller (just supply a different robot_ip to each launch file). Run each set in their own ROS namespace (ie: (you could set group="left_arm" and group="right_arm" on your launch file include tags).tags, if you decide to create a single wrapper launch file).

This would effectively treat your two arms as two independent, separate robots.

If combined joint states are desired, then an instance of joint_state_publisher with its source_list parameter (see the documentation) set to include the joint_states topics in both namespaces should work.

Synchronous motion with two separate controllers is going to be difficult -- if not impossible -- to achieve without some form of (mfg supported?) synchronisation between the two controllers. It is also not a use-case that the staubli_val3_driver was designed for.