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

Have you seen the Creating a Dual-Arm System (Indigo+) page? It's not perfect, but it should show you how to setup a configuration file for a multi-group system.

I would also recommend using a .launch file instead of starting things manually. That will be much more convenient.

Have you seen the Creating a Dual-Arm System (Indigo+) page? It's not perfect, but it should show you how to setup a configuration file for a multi-group system.

I would also recommend using a .launch file instead of starting things manually. That will be much more convenient.

The specific errors you show are basically caused by the fact that the driver is unaware of the configuration of your controller.

Have you seen the Creating a Dual-Arm System (Indigo+) page? It's not perfect, but it should show you how to setup a configuration file for a multi-group system.

I would also recommend using a .launch file instead of starting things manually. That will be much more convenient.

The specific errors you show are basically caused by the fact that the driver is unaware of the configuration of your controller.


Edit: partial example (created from memory: I'm away from my computer so I can't test it):

launch file:

<?xml version="1.0"?>
<launch>
  <arg name="robot_ip" default="192.168.0.20" />
  <arg name="controller" default="fs100" />

  <param name="robot_description"
    textfile="$(find motoman_mh5_support)/urdf/dual_motoman_mh5/dual_motoman_mh5.urdf"/>

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

  <include file="$(find motoman_driver)/launch/robot_multigroup_interface_streaming_$(arg controller).launch">
    <arg name="robot_ip" value="$(arg robot_ip)" />
  </include>
</launch>

You may also need a joint_state_publisher to gather and merge all the joint_state topics that the driver publishes, but I can't check right now (and it also depends on your use-case(s)).

the referenced motion_interface.yaml:

topic_list:
  - name: r1
    ns: mh5
    group: 0
    joints: [r1_joint_s, r1_joint_l, r1_joint_u, r1_joint_r, r1_joint_b, r1_joint_t]
  - name: r2
    ns: mh5
    group: 1
    joints: [r2_joint_s, r2_joint_l, r2_joint_u, r2_joint_r, r2_joint_b, r2_joint_t]

You'll obviously have to check whether the group: 0 and group: 1 are correct.

Have you seen the Creating a Dual-Arm System (Indigo+) page? It's not perfect, but it should show you how to setup a configuration file for a multi-group system.

I would also recommend using a .launch file instead of starting things manually. That will be much more convenient.

The specific errors you show are basically caused by the fact that the driver is unaware of the configuration of your controller.


Edit: partial example (created from memory: I'm away from my computer so I can't test it):

launch file:

<?xml version="1.0"?>
<launch>
  <arg name="robot_ip" default="192.168.0.20" />
  <arg name="controller" default="fs100" />

  <param name="robot_description"
    textfile="$(find motoman_mh5_support)/urdf/dual_motoman_mh5/dual_motoman_mh5.urdf"/>

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

  <include file="$(find motoman_driver)/launch/robot_multigroup_interface_streaming_$(arg controller).launch">
    <arg name="robot_ip" value="$(arg robot_ip)" />
  </include>

  <!-- if you already have one external to this launch file, then don't add this one -->
  <node type="robot_state_publisher" pkg="robot_state_publisher" name="robot_state_publisher" />

</launch>

You may also need a joint_state_publisher to gather and merge all the joint_state topics that the driver publishes, but I can't check right now (and it also depends on your use-case(s)).

the referenced motion_interface.yaml:

topic_list:
  - name: r1
    ns: mh5
    group: 0
    joints: [r1_joint_s, r1_joint_l, r1_joint_u, r1_joint_r, r1_joint_b, r1_joint_t]
  - name: r2
    ns: mh5
    group: 1
    joints: [r2_joint_s, r2_joint_l, r2_joint_u, r2_joint_r, r2_joint_b, r2_joint_t]

You'll obviously have to check whether the group: 0 and group: 1 are correct.

Have you seen the Creating a Dual-Arm System (Indigo+) page? It's not perfect, but it should show you how to setup a configuration file for a multi-group system.

I would also recommend using a .launch file instead of starting things manually. That will be much more convenient.

The specific errors you show are basically caused by the fact that the driver is unaware of the configuration of your controller.


Edit: partial example (created from memory: I'm away from my computer so I can't test it):

launch file:

<?xml version="1.0"?>
<launch>
  <arg name="robot_ip" default="192.168.0.20" />
  <arg name="controller" default="fs100" />

  <param name="robot_description"
    textfile="$(find motoman_mh5_support)/urdf/dual_motoman_mh5/dual_motoman_mh5.urdf"/>

  <!-- the yaml file could obviously be anywhere -->
  <rosparam command="load" file="$(find motoman_mh5_support)/config/motion_interface.yaml" />

  <include file="$(find motoman_driver)/launch/robot_multigroup_interface_streaming_$(arg controller).launch">
    <arg name="robot_ip" value="$(arg robot_ip)" />
  </include>

  <!-- if you already have one external to this launch file, then don't add this one -->
  <node type="robot_state_publisher" pkg="robot_state_publisher" name="robot_state_publisher" />

</launch>

You may also need a joint_state_publisher to gather and merge all the joint_state topics that the driver publishes, but I can't check right now (and it also depends on your use-case(s)).

the referenced motion_interface.yaml:

topic_list:
  - name: r1
    ns: mh5
    group: 0
    joints: [r1_joint_s, r1_joint_l, r1_joint_u, r1_joint_r, r1_joint_b, r1_joint_t]
  - name: r2
    ns: mh5
    group: 1
    joints: [r2_joint_s, r2_joint_l, r2_joint_u, r2_joint_r, r2_joint_b, r2_joint_t]

You'll obviously have to check whether the group: 0 and group: 1 are correct.

Have you seen the Creating a Dual-Arm System (Indigo+) page? It's not perfect, but it should show you how to setup a configuration file for a multi-group system.

I would also recommend using a .launch file instead of starting things manually. That will be much more convenient.

The specific errors you show are basically caused by the fact that the driver is unaware of the configuration of your controller.


Edit: partial example (created from memory: I'm away from my computer so I can't test it):

launch file:

<?xml version="1.0"?>
<launch>
  <arg name="robot_ip" default="192.168.0.20" />
  <arg name="controller" default="fs100" />

  <param name="robot_description"
    textfile="$(find motoman_mh5_support)/urdf/dual_motoman_mh5/dual_motoman_mh5.urdf"/>

  <!-- the yaml file could obviously be anywhere -->
  <rosparam command="load" file="$(find motoman_mh5_support)/config/motion_interface.yaml" />

  <include file="$(find motoman_driver)/launch/robot_multigroup_interface_streaming_$(arg controller).launch">
    <arg name="robot_ip" value="$(arg robot_ip)" />
  </include>

  <!-- if you already have one external to this launch file, then don't add this one -->
  <node type="robot_state_publisher" pkg="robot_state_publisher" name="robot_state_publisher" />

</launch>

You may also need a joint_state_publisher to gather and merge all the joint_state topics that the driver publishes, but I can't check right now (and it also depends on your use-case(s)).

the referenced motion_interface.yaml:

topic_list:
  - name: r1
r1 # might have to be switched with the 'ns' key
    ns: mh5
    group: 0
    joints: [r1_joint_s, r1_joint_l, r1_joint_u, r1_joint_r, r1_joint_b, r1_joint_t]
  - name: r2
r2 # might have to be switched with the 'ns' key
    ns: mh5
    group: 1
    joints: [r2_joint_s, r2_joint_l, r2_joint_u, r2_joint_r, r2_joint_b, r2_joint_t]

You'll obviously have to check whether the group: 0 and group: 1 are correct.