Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ find_package(ament_cmake_python REQUIRED)

# Shared folders:
install(
DIRECTORY ewellix beamagine franka husarion nmea_gps ouster realsense seekthermal velodyne ur xsens zed
DIRECTORY ewellix beamagine franka husarion nmea_gps ouster realsense robotiq seekthermal velodyne ur xsens zed
DESTINATION share/${PROJECT_NAME}
)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# SPDX-FileCopyrightText: Alliander N. V.
#
# SPDX-License-Identifier: Apache-2.0

/**:
controller_manager:
ros__parameters:
update_rate: 500

joint_state_broadcaster:
type: joint_state_broadcaster/JointStateBroadcaster

position_controller:
type: position_controllers/JointGroupPositionController

position_controller:
ros__parameters:
joints:
- palm_finger_1_joint
- palm_finger_2_joint
- finger_1_joint_1
- finger_1_joint_2
- finger_1_joint_3
- finger_2_joint_1
- finger_2_joint_2
- finger_2_joint_3
- finger_middle_joint_1
- finger_middle_joint_2
- finger_middle_joint_3
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: Alliander N. V.

SPDX-License-Identifier: Apache-2.0
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: Alliander N. V.

SPDX-License-Identifier: Apache-2.0
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: Alliander N. V.

SPDX-License-Identifier: Apache-2.0
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: Alliander N. V.

SPDX-License-Identifier: Apache-2.0
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: Alliander N. V.

SPDX-License-Identifier: Apache-2.0

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: Alliander N. V.

SPDX-License-Identifier: Apache-2.0

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: Alliander N. V.

SPDX-License-Identifier: Apache-2.0

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: Alliander N. V.

SPDX-License-Identifier: Apache-2.0

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: Alliander N. V.

SPDX-License-Identifier: Apache-2.0

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: Alliander N. V.

SPDX-License-Identifier: Apache-2.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
<?xml version="1.0"?>
<!--
SPDX-FileCopyrightText: Alliander N. V.
SPDX-License-Identifier: Apache-2.0
-->
<!--
Based on:
https://github.com/ros-industrial-attic/robotiq/blob/kinetic-devel/robotiq_3f_gripper_visualization/cfg/robotiq-3f-gripper_articulated.xacro
-->
<robot xmlns:xacro="http://ros.org/wiki/xacro" name="3f-gripper">
<gazebo>
<plugin filename="gz_ros2_control-system"
name="gz_ros2_control::GazeboSimROS2ControlPlugin">
<parameters>$(find alliander_description)/robotiq/config/controllers.yaml</parameters>
<ros>
<namespace>$(arg namespace)</namespace>
</ros>
</plugin>
</gazebo>

<ros2_control name="hardware" type="system">
<hardware>
<plugin>gz_ros2_control/GazeboSimSystem</plugin>
</hardware>

<!-- Palm -->
<joint name="palm_finger_1_joint">
<command_interface name="position" />
<state_interface name="position" />
<state_interface name="velocity" />
<state_interface name="effort" />
</joint>
<joint name="palm_finger_2_joint">
<command_interface name="position" />
<state_interface name="position" />
<state_interface name="velocity" />
<state_interface name="effort" />
</joint>

<!-- Finger 1 -->
<joint name="finger_1_joint_1">
<command_interface name="position" />
<state_interface name="position" />
<state_interface name="velocity" />
<state_interface name="effort" />
</joint>
<joint name="finger_1_joint_2">
<command_interface name="position" />
<state_interface name="position" />
<state_interface name="velocity" />
<state_interface name="effort" />
</joint>
<joint name="finger_1_joint_3">
<command_interface name="position" />
<state_interface name="position" />
<state_interface name="velocity" />
<state_interface name="effort" />
</joint>

<!-- Finger 2 -->
<joint name="finger_2_joint_1">
<command_interface name="position" />
<state_interface name="position" />
<state_interface name="velocity" />
<state_interface name="effort" />
</joint>
<joint name="finger_2_joint_2">
<command_interface name="position" />
<state_interface name="position" />
<state_interface name="velocity" />
<state_interface name="effort" />
</joint>
<joint name="finger_2_joint_3">
<command_interface name="position" />
<state_interface name="position" />
<state_interface name="velocity" />
<state_interface name="effort" />
</joint>

<!-- Finger middle -->
<joint name="finger_middle_joint_1">
<command_interface name="position" />
<state_interface name="position" />
<state_interface name="velocity" />
<state_interface name="effort" />
</joint>
<joint name="finger_middle_joint_2">
<command_interface name="position" />
<state_interface name="position" />
<state_interface name="velocity" />
<state_interface name="effort" />
</joint>
<joint name="finger_middle_joint_3">
<command_interface name="position" />
<state_interface name="position" />
<state_interface name="velocity" />
<state_interface name="effort" />
</joint>
</ros2_control>

<xacro:macro name="gripper"
params="
namespace
parent
">

<xacro:include
filename="$(find alliander_description)/robotiq/urdf/3f-gripper_macro.urdf.xacro" />
<xacro:robotiq-3f-gripper_articulated prefix="" />

<!-- Rotate to have gripper pointing downwards: -->
<link name="base_link" />
<joint name="base_joint" type="fixed">
<parent link="base_link" />
<child link="palm" />
<origin xyz="0 0 0" rpy="-${pi/2} 0 0" />
</joint>

<!-- Gazebo requires a joint to a link called "world" for statically mounted robots -->
<xacro:if value="${parent == 'world'}">
<link name="${parent}" />
<joint name="${parent}_joint" type="fixed">
<parent link="${parent}" />
<child link="base_link" />
</joint>
</xacro:if>
</xacro:macro>
<xacro:arg name="namespace" default="l3cam" />
<xacro:arg name="parent" default="" />
<xacro:gripper namespace="$(arg namespace)" parent="$(arg parent)" />
</robot>
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
<!--
SPDX-FileCopyrightText: Alliander N. V.
SPDX-License-Identifier: Apache-2.0
-->
<!--
Based on:
https://github.com/ros-industrial-attic/robotiq/blob/kinetic-devel/robotiq_3f_gripper_visualization/cfg/robotiq-3f-gripper_finger_articulated_macro.xacro
-->
<!--
robotiq-3f-gripper_finder_articulated_macro(prefix)

Creates an articulated robotiq-3f-gripper finder with the passed in prefix. The
prefix typcially includes the hand prefix and an identifier for the
finger(i.e. finger_1, etc...).

-->
<robot xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:macro name="robotiq-3f-gripper_finger_articulated" params="prefix">
<!-- link list -->
<link name="${prefix}link_0">
<visual>
<origin xyz="0.020 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://alliander_description/robotiq/meshes/visual/link_0.dae" />
</geometry>
<material name="gray">
<color rgba="0.2 0.2 0.2 1" />
</material>
</visual>
<collision>
<origin xyz="0.020 0 0" rpy="0 0 0" />
<geometry>
<mesh filename="package://alliander_description/robotiq/meshes/collision/link_0.STL" />
</geometry>
<material name="yellow">
<color rgba="0 1 1 1" />
</material>
</collision>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0" />
<mass value="0.05" />
<inertia ixx="1e-7" ixy="0" ixz="0" iyy="1e-7" iyz="0" izz="1e-7" />
</inertial>
</link>
<link name="${prefix}link_1">
<visual>
<origin xyz="0.050 -.028 0" rpy="0 0 -0.52" />
<geometry>
<mesh filename="package://alliander_description/robotiq/meshes/visual/link_1.dae" />
</geometry>
<material name="gray" />
</visual>
<collision>
<origin xyz="0.050 -.028 0" rpy="0 0 -0.52" />
<geometry>
<mesh filename="package://alliander_description/robotiq/meshes/collision/link_1.STL" />
</geometry>
<material name="yellow" />
</collision>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0" />
<mass value="0.15" />
<inertia ixx="1e-7" ixy="0" ixz="0" iyy="1e-7" iyz="0" izz="1e-7" />
</inertial>
</link>
<link name="${prefix}link_2">
<!--
NOTE: This link has an offset in the z-direction based on the models that were
used to generate grap-it poses. With the offset below the model appears visually
correct, but it is suspect.
-->
<visual>
<origin xyz="0.039 0 0.0075" rpy="0 0 0" />
<geometry>
<mesh filename="package://alliander_description/robotiq/meshes/visual/link_2.dae" />
</geometry>
<material name="gray" />
</visual>
<collision>
<origin xyz="0.039 0 0.0075" rpy="0 0 0" />
<geometry>
<mesh filename="package://alliander_description/robotiq/meshes/collision/link_2.STL" />
</geometry>
<material name="yellow" />
</collision>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0" />
<mass value="0.15" />
<inertia ixx="1e-7" ixy="0" ixz="0" iyy="1e-7" iyz="0" izz="1e-7" />
</inertial>
</link>
<link name="${prefix}link_3">
<visual>
<origin xyz="0 0 0" rpy="0 0 0.52" />
<geometry>
<mesh filename="package://alliander_description/robotiq/meshes/visual/link_3.dae" />
</geometry>
<material name="gray" />
</visual>
<collision>
<origin xyz="0 0 0" rpy="0 0 0.52" />
<geometry>
<mesh filename="package://alliander_description/robotiq/meshes/collision/link_3.STL" />
</geometry>
<material name="yellow" />
</collision>
<inertial>
<origin xyz="0 0 0" rpy="0 0 0" />
<mass value="0.05" />
<inertia ixx="1e-7" ixy="0" ixz="0" iyy="1e-7" iyz="0" izz="1e-7" />
</inertial>
</link>

<!-- end of link list -->
<!-- joint list -->
<joint name="${prefix}joint_1" type="revolute">
<parent link="${prefix}link_0" />
<child link="${prefix}link_1" />
<axis xyz="0 0 1" />
<origin xyz="0.020 0 0" rpy="0 0 0" />
<limit lower="0.0495" upper="1.2218" effort="100" velocity="100" />
</joint>
<joint name="${prefix}joint_2" type="revolute">
<parent link="${prefix}link_1" />
<child link="${prefix}link_2" />
<axis xyz="0 0 1" />
<origin xyz="0.050 -.028 0" rpy="0 0 -0.52" />
<limit lower="0.0" upper="1.5708" effort="100" velocity="100" />
</joint>
<joint name="${prefix}joint_3" type="revolute">
<parent link="${prefix}link_2" />
<child link="${prefix}link_3" />
<axis xyz="0 0 1" />
<origin xyz="0.039 0 0" rpy="0 0 0" />
<limit lower="-1.2217" upper="-0.0523" effort="100" velocity="100" />
</joint>
<!-- end of joint list -->
</xacro:macro>
</robot>
Loading
Loading