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

MoveIt will most definitely work, I invite you to take a look at their tutorial on integrating a new robot. Where you would struggle a bit would be the definition of the hardware_interface for the robot, which would essentially allow ros2_control to be able to send control commands over to your system and read the joint states.

There are tutorials and relevant literature online that would help you write your own hardware interface. I do not know if your linear actuators come with encoders, if not, you would have to think about how you would provide feedback to the ROS side.

If you already have motor controllers with you that you use to control your machine, you can look at how you can adapt your controller to be able to speak to ROS _(usually it is UART over USB)_ . If not, you can search for some sort of motor controller that already has a ROS interface - like the Maxon EPOS Series of controllers.

MoveIt will most definitely work, I invite you to take a look at their tutorial on integrating a new robot. Where you would struggle a bit would be the definition of the hardware_interface for the robot, which would essentially allow ros2_control to be able to send control commands over to your system and read the joint states.

There are tutorials and relevant literature online that would help you write your own hardware interface. I do not know if your linear actuators come with encoders, if not, you would have to think about how you would provide feedback to the ROS side.

If you already have motor controllers with you that you use to control your machine, you can look at how you can adapt your controller to be able to speak to ROS _(usually it is UART over USB)_ . If not, you can search for some sort of motor controller that already has a ROS interface - like the Maxon EPOS Series of controllers.

Something like this might serve as a good starting point for a robot with 3 prismatic joints:

<robot name="3prism_robot">
<link name="base_link" />

<joint name="base_footprint" type="prismatic">
  <parent link="base_link" />
  <child link="link_1" />
  <origin xyz="0 0 0" rpy="0 0 0" />
  <axis xyz="0 0 1" />
  <limit lower="0.0" upper="0.5" />
</joint>
<link name="link_1">
    <visual>
        <geometry>
            <box size="0.3 0.3 0.05" />
        </geometry>
    </visual>
</link>

<joint name="link1_to_link2" type="prismatic">
  <parent link="link_1" />
  <child link="link_2" />
  <origin xyz="0 0 0.15" rpy="0 0 1.57" />
  <axis xyz="0 1 0" />
  <limit lower="-0.15" upper="0.15" />
</joint>
<link name="link_2">
    <visual>
      <geometry>
        <box size="0.1 0.1 0.3"/>
      </geometry>
    </visual>
</link>
 <joint name="link2_to_link3" type="prismatic">
  <parent link="link_2" />
  <child link="link_3" />
  <origin xyz="0 0 0.1" rpy="0 0 0" />
  <axis xyz="1 0 0" />
  <limit lower="-0.1" upper="0.1" />
</joint>
<link name="link_3">
    <visual>
      <geometry>
        <box size="0.2 0.05 0.05"/>
      </geometry>
    </visual>
</link>

</robot>

MoveIt will most definitely work, I invite you to take a look at their tutorial on integrating a new robot. Where you would struggle a bit would be the definition of the hardware_interface for the robot, which would essentially allow ros2_control to be able to send control commands over to your system and read the joint states.

There are tutorials and relevant literature online that would help you write your own hardware interface. I do not know if your linear actuators come with encoders, if not, you would have to think about how you would provide feedback to the ROS side.

If you already have motor controllers with you that you use to control your machine, you can look at how you can adapt your controller to be able to speak to ROS _(usually it is UART over USB)_ . If not, you can search for some sort of motor controller that already has a ROS interface - like the Maxon EPOS Series of controllers.

Something like this might serve as a good starting point for a robot with 3 prismatic joints:

<robot name="3prism_robot">
<link name="base_link" />

<joint name="base_footprint" type="prismatic">
  <parent link="base_link" />
  <child link="link_1" />
  <origin xyz="0 0 0" rpy="0 0 0" />
  <axis xyz="0 0 1" />
  <limit lower="0.0" upper="0.5" />
</joint>
<link name="link_1">
    <visual>
        <geometry>
            <box size="0.3 0.3 0.05" />
        </geometry>
    </visual>
</link>

<joint name="link1_to_link2" type="prismatic">
  <parent link="link_1" />
  <child link="link_2" />
  <origin xyz="0 0 0.15" rpy="0 0 1.57" />
  <axis xyz="0 1 0" />
  <limit lower="-0.15" upper="0.15" />
</joint>
<link name="link_2">
    <visual>
      <geometry>
        <box size="0.1 0.1 0.3"/>
      </geometry>
    </visual>
</link>
 <joint name="link2_to_link3" type="prismatic">
  <parent link="link_2" />
  <child link="link_3" />
  <origin xyz="0 0 0.1" rpy="0 0 0" />
  <axis xyz="1 0 0" />
  <limit lower="-0.1" upper="0.1" />
</joint>
<link name="link_3">
    <visual>
      <geometry>
        <box size="0.2 0.05 0.05"/>
      </geometry>
    </visual>
</link>
</robot>

</robot>