Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove mimic tags and rename sim_ignition to sim_gazebo #54

Merged
merged 8 commits into from
Jul 18, 2024
Merged
Show file tree
Hide file tree
Changes from 3 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
37 changes: 11 additions & 26 deletions robotiq_description/urdf/2f_140.ros2_control.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<xacro:macro name="robotiq_gripper_ros2_control" params="
name
prefix
sim_ignition:=false
sim_gazebo:=false
sim_isaac:=false
isaac_joint_commands:=/isaac_joint_commands
isaac_joint_states:=/isaac_joint_states
Expand All @@ -20,15 +20,15 @@
<param name="joint_commands_topic">${isaac_joint_commands}</param>
<param name="joint_states_topic">${isaac_joint_states}</param>
</xacro:if>
<xacro:if value="${sim_ignition}">
<xacro:if value="${sim_gazebo}">
<plugin>ign_ros2_control/IgnitionSystem</plugin>
</xacro:if>
<xacro:if value="${use_fake_hardware}">
<plugin>mock_components/GenericSystem</plugin>
<param name="fake_sensor_commands">${fake_sensor_commands}</param>
<param name="state_following_offset">0.0</param>
</xacro:if>
<xacro:unless value="${use_fake_hardware or sim_ignition or sim_isaac}">
<xacro:unless value="${use_fake_hardware or sim_gazebo or sim_isaac}">
<plugin>robotiq_driver/RobotiqGripperHardwareInterface</plugin>
<param name="gripper_closed_position">0.695</param>
<param name="COM_port">${com_port}</param>
Expand All @@ -38,7 +38,7 @@
</hardware>

<!-- Joint interfaces -->
<!-- With Ignition or Hardware, they handle mimic joints, so we only need this command interface activated -->
<!-- With Gazebo or Hardware, they handle mimic joints, so we only need this command interface activated -->
<joint name="${prefix}finger_joint">
<command_interface name="position" />
<state_interface name="position">
Expand All @@ -47,56 +47,41 @@
<state_interface name="velocity"/>
</joint>
<!-- When simulating we need to include the rest of the gripper joints -->
<xacro:if value="${use_fake_hardware or sim_isaac or sim_ignition}">
<xacro:if value="${use_fake_hardware or sim_isaac or sim_gazebo}">
<joint name="${prefix}left_inner_knuckle_joint">
<param name="mimic">${prefix}finger_joint</param>
<param name="multiplier">-1</param>
<xacro:unless value="${sim_ignition}">
<command_interface name="position"/>
<xacro:unless value="${sim_gazebo}">
<state_interface name="position"/>
<state_interface name="velocity"/>
</xacro:unless>
</joint>
<joint name="${prefix}left_inner_finger_joint">
<param name="mimic">${prefix}finger_joint</param>
<param name="multiplier">1</param>
<xacro:unless value="${sim_ignition}">
<command_interface name="position"/>
<xacro:unless value="${sim_gazebo}">
<state_interface name="position"/>
<state_interface name="velocity"/>
</xacro:unless>
</joint>
<joint name="${prefix}right_outer_knuckle_joint">
<param name="mimic">${prefix}finger_joint</param>
<param name="multiplier">-1</param>
<xacro:unless value="${sim_ignition}">
<command_interface name="position"/>
<xacro:unless value="${sim_gazebo}">
<state_interface name="position"/>
<state_interface name="velocity"/>
</xacro:unless>
</joint>
<joint name="${prefix}right_inner_knuckle_joint">
<param name="mimic">${prefix}finger_joint</param>
<param name="multiplier">-1</param>
<xacro:unless value="${sim_ignition}">
<command_interface name="position"/>
<xacro:unless value="${sim_gazebo}">
<state_interface name="position"/>
<state_interface name="velocity"/>
</xacro:unless>
</joint>
<joint name="${prefix}right_inner_finger_joint">
<param name="mimic">${prefix}finger_joint</param>
<param name="multiplier">1</param>
<xacro:unless value="${sim_ignition}">
<command_interface name="position"/>
<xacro:unless value="${sim_gazebo}">
<state_interface name="position"/>
<state_interface name="velocity"/>
</xacro:unless>
</joint>
</xacro:if>

<!-- Only add this with fake hardware mode -->
<xacro:unless value="${sim_ignition or sim_isaac}">
<xacro:unless value="${sim_gazebo or sim_isaac}">
<gpio name="reactivate_gripper">
<command_interface name="reactivate_gripper_cmd" />
<command_interface name="reactivate_gripper_response" />
Expand Down
37 changes: 11 additions & 26 deletions robotiq_description/urdf/2f_85.ros2_control.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<xacro:macro name="robotiq_gripper_ros2_control" params="
name
prefix
sim_ignition:=false
sim_gazebo:=false
sim_isaac:=false
isaac_joint_commands:=/isaac_joint_commands
isaac_joint_states:=/isaac_joint_states
Expand All @@ -25,15 +25,15 @@
<param name="joint_states_topic">${isaac_joint_states}</param>
<param name="trigger_joint_command_threshold">0.02</param>
</xacro:if>
<xacro:if value="${sim_ignition}">
<xacro:if value="${sim_gazebo}">
<plugin>ign_ros2_control/IgnitionSystem</plugin>
</xacro:if>
<xacro:if value="${use_fake_hardware}">
<plugin>mock_components/GenericSystem</plugin>
<param name="fake_sensor_commands">${fake_sensor_commands}</param>
<param name="state_following_offset">0.0</param>
</xacro:if>
<xacro:unless value="${use_fake_hardware or sim_ignition or sim_isaac}">
<xacro:unless value="${use_fake_hardware or sim_gazebo or sim_isaac}">
<plugin>robotiq_driver/RobotiqGripperHardwareInterface</plugin>
<param name="gripper_closed_position">0.7929</param>
<param name="COM_port">${com_port}</param>
Expand All @@ -43,7 +43,7 @@
</hardware>

<!-- Joint interfaces -->
<!-- With Ignition or Hardware, they handle mimic joints, so we only need this command interface activated -->
<!-- With Gazebo or Hardware, they handle mimic joints, so we only need this command interface activated -->
<joint name="${prefix}robotiq_85_left_knuckle_joint">
<command_interface name="position" />
<state_interface name="position">
Expand All @@ -52,56 +52,41 @@
<state_interface name="velocity"/>
</joint>
<!-- When simulating we need to include the rest of the gripper joints -->
<xacro:if value="${use_fake_hardware or sim_isaac or sim_ignition}">
<xacro:if value="${use_fake_hardware or sim_isaac or sim_gazebo}">
<joint name="${prefix}robotiq_85_right_knuckle_joint">
<param name="mimic">${prefix}robotiq_85_left_knuckle_joint</param>
<param name="multiplier">-1</param>
<xacro:unless value="${sim_ignition}">
<command_interface name="position"/>
<xacro:unless value="${sim_gazebo}">
<state_interface name="position"/>
<state_interface name="velocity"/>
</xacro:unless>
</joint>
<joint name="${prefix}robotiq_85_left_inner_knuckle_joint">
<param name="mimic">${prefix}robotiq_85_left_knuckle_joint</param>
<param name="multiplier">1</param>
<xacro:unless value="${sim_ignition}">
<command_interface name="position"/>
<xacro:unless value="${sim_gazebo}">
<state_interface name="position"/>
<state_interface name="velocity"/>
</xacro:unless>
</joint>
<joint name="${prefix}robotiq_85_right_inner_knuckle_joint">
<param name="mimic">${prefix}robotiq_85_left_knuckle_joint</param>
<param name="multiplier">-1</param>
<xacro:unless value="${sim_ignition}">
<command_interface name="position"/>
<xacro:unless value="${sim_gazebo}">
<state_interface name="position"/>
<state_interface name="velocity"/>
</xacro:unless>
</joint>
<joint name="${prefix}robotiq_85_left_finger_tip_joint">
<param name="mimic">${prefix}robotiq_85_left_knuckle_joint</param>
<param name="multiplier">-1</param>
<xacro:unless value="${sim_ignition}">
<command_interface name="position"/>
<xacro:unless value="${sim_gazebo}">
<state_interface name="position"/>
<state_interface name="velocity"/>
</xacro:unless>
</joint>
<joint name="${prefix}robotiq_85_right_finger_tip_joint">
<param name="mimic">${prefix}robotiq_85_left_knuckle_joint</param>
<param name="multiplier">1</param>
<xacro:unless value="${sim_ignition}">
<command_interface name="position"/>
<xacro:unless value="${sim_gazebo}">
<state_interface name="position"/>
<state_interface name="velocity"/>
</xacro:unless>
</joint>
</xacro:if>

<!-- Only add this with fake hardware mode -->
<xacro:unless value="${sim_ignition or sim_isaac}">
<xacro:unless value="${sim_gazebo or sim_isaac}">
<gpio name="reactivate_gripper">
<command_interface name="reactivate_gripper_cmd" />
<command_interface name="reactivate_gripper_response" />
Expand Down
4 changes: 2 additions & 2 deletions robotiq_description/urdf/robotiq_2f_140_macro.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
prefix
parent
*origin
sim_ignition:=false
sim_gazebo:=false
sim_isaac:=false
isaac_joint_commands:=/isaac_joint_commands
isaac_joint_states:=/isaac_joint_states
Expand All @@ -20,7 +20,7 @@
<xacro:if value="${include_ros2_control}">
<xacro:robotiq_gripper_ros2_control
name="${name}" prefix="${prefix}"
sim_ignition="${sim_ignition}"
sim_gazebo="${sim_gazebo}"
sim_isaac="${sim_isaac}"
isaac_joint_commands="${isaac_joint_commands}"
isaac_joint_states="${isaac_joint_states}"
Expand Down
4 changes: 2 additions & 2 deletions robotiq_description/urdf/robotiq_2f_85_macro.urdf.xacro
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
prefix
parent
*origin
sim_ignition:=false
sim_gazebo:=false
sim_isaac:=false
isaac_joint_commands:=/isaac_joint_commands
isaac_joint_states:=/isaac_joint_states
Expand All @@ -20,7 +20,7 @@
<xacro:if value="${include_ros2_control}">
<xacro:robotiq_gripper_ros2_control
name="${name}" prefix="${prefix}"
sim_ignition="${sim_ignition}"
sim_gazebo="${sim_gazebo}"
sim_isaac="${sim_isaac}"
isaac_joint_commands="${isaac_joint_commands}"
isaac_joint_states="${isaac_joint_states}"
Expand Down
1 change: 0 additions & 1 deletion robotiq_driver/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@

<!-- Support for gtest and gmock-based tests in the ament buildsystem in CMake. -->
<test_depend>ament_cmake_gmock</test_depend>
<test_depend>ros2_control_test_assets</test_depend>

<export>
<build_type>ament_cmake</build_type>
Expand Down
5 changes: 1 addition & 4 deletions robotiq_driver/tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
find_package(ament_cmake_gtest REQUIRED)
find_package(ament_cmake_gmock REQUIRED)
find_package(ament_lint_auto REQUIRED)
find_package(ros2_control_test_assets REQUIRED)

ament_lint_auto_find_test_dependencies()

Expand All @@ -21,9 +20,7 @@ target_include_directories(test_robotiq_gripper_hardware_interface
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}
)
target_link_libraries(test_robotiq_gripper_hardware_interface robotiq_driver)
ament_target_dependencies(test_robotiq_gripper_hardware_interface
ros2_control_test_assets
)
ament_target_dependencies(test_robotiq_gripper_hardware_interface)

###############################################################################
# test_default_serial_factory
Expand Down
52 changes: 30 additions & 22 deletions robotiq_driver/tests/test_robotiq_gripper_hardware_interface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,6 @@
#include <lifecycle_msgs/msg/state.hpp>
#include <rclcpp_lifecycle/state.hpp>

#include <ros2_control_test_assets/components_urdfs.hpp>
#include <ros2_control_test_assets/descriptions.hpp>

namespace robotiq_driver::test
{

Expand All @@ -54,27 +51,38 @@ namespace robotiq_driver::test
*/
TEST(TestRobotiqGripperHardwareInterface, load_urdf)
{
std::string urdf_control_ =
std::string urdf =
R"(
<ros2_control name="robotiq_driver_ros2_control" type="system">
<hardware>
<plugin>robotiq_driver/RobotiqGripperHardwareInterface</plugin>
<param name="gripper_speed_multiplier">1.0</param>
<param name="gripper_force_multiplier">0.5</param>
<param name="COM_port">/dev/ttyUSB0</param>
<param name="gripper_closed_position">0.7929</param>
</hardware>
<joint name="robotiq_85_left_knuckle_joint">
<command_interface name="position" />
<state_interface name="position">
<param name="initial_value">0.7929</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
</ros2_control>
)";
<?xml version="1.0" encoding="utf-8"?>
<robot name="test_robot">
<link name="robotiq_85_base_link"/>
<link name="robotiq_85_left_knuckle_link"/>
<joint name="robotiq_85_left_knuckle_joint" type="revolute">
<parent link="robotiq_85_base_link" />
<child link="robotiq_85_left_knuckle_link" />
<axis xyz="0 -1 0" />
<origin xyz="0.03060114 0.0 0.05490452" rpy="0 0 0" />
<limit lower="0.0" upper="0.8" velocity="0.5" effort="50" />
</joint>
<ros2_control name="robotiq_driver_ros2_control" type="system">
<hardware>
<plugin>robotiq_driver/RobotiqGripperHardwareInterface</plugin>
<param name="gripper_speed_multiplier">1.0</param>
<param name="gripper_force_multiplier">0.5</param>
<param name="COM_port">/dev/ttyUSB0</param>
<param name="gripper_closed_position">0.7929</param>
</hardware>
<joint name="robotiq_85_left_knuckle_joint">
<command_interface name="position" />
<state_interface name="position">
<param name="initial_value">0.7929</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
</ros2_control>
</robot>
)";

auto urdf = ros2_control_test_assets::urdf_head + urdf_control_ + ros2_control_test_assets::urdf_tail;
hardware_interface::ResourceManager rm(urdf);

// Check interfaces
Expand Down
Loading