ros-industrial / robotiq

Robotiq packages (http://wiki.ros.org/robotiq)
BSD 2-Clause "Simplified" License
228 stars 378 forks source link

Issue withs setting up ROS2 robotiq epick drivers from piknick #213

Open shrutichakraborty opened 1 week ago

shrutichakraborty commented 1 week ago

Hi! I am trying to setup the e_pick ros2 driivers from piknick https://github.com/PickNikRobotics/ros2_epick_gripper. I am trying to integrate it with a UR10e robot that I can communicate with using ROS2 humble with the ROS2 UR drivers. I have followed the setup instructions, and added he controller to my controller.yaml file :


controller_manager:
  ros__parameters:
    joint_state_broadcaster:
      type: joint_state_broadcaster/JointStateBroadcaster

    io_and_status_controller:
      type: ur_controllers/GPIOController

    speed_scaling_state_broadcaster:
      type: ur_controllers/SpeedScalingStateBroadcaster

    force_torque_sensor_broadcaster:
      type: force_torque_sensor_broadcaster/ForceTorqueSensorBroadcaster

    joint_trajectory_controller:
      type: joint_trajectory_controller/JointTrajectoryController

    scaled_joint_trajectory_controller:
      type: ur_controllers/ScaledJointTrajectoryController

    forward_velocity_controller:
      type: velocity_controllers/JointGroupVelocityController

    forward_position_controller:
      type: position_controllers/JointGroupPositionController

    # gripper_controller:
    #   type: position_controllers/GripperActionController

    epick_controller:
      type: epick_controllers/EpickController

I have updated my launch file to include the eick_gripper.launch.py file

vaccum_gripper_launch = IncludeLaunchDescription(
        PythonLaunchDescriptionSource(
            PathJoinSubstitution(
                [
                    FindPackageShare("epick_description"),
                    "launch",
                    "epick_gripper.launch.py"
                ]
            )
        ),
        launch_arguments={
            "description_package_param": "ur_description",
            "description_file_param" : "ur.urdf.xacro", 
            "controllers_package" : "ur_robot_driver", 
            "controllers_config_file_param" : "controllers.yaml",
        }.items(),

    )

I have added it to the controller_spawner list :

controller_spawner_names = [
        "joint_state_broadcaster",
        "io_and_status_controller",
        "speed_scaling_state_broadcaster",
        "force_torque_sensor_broadcaster",
        "epick_controller",
    ]

    controller_spawners = [controller_spawner(name) for name in controller_spawner_names] + [
        controller_spawner(name, active=False) for name in controller_spawner_inactive_names
    ]

On launching the robot I am having the following isseues : image

I also get a lot of [ERROR] [1719575918.998948099] [UR_Client_Library:]: Pipeline producer overflowed! <Pipeline> errors. Since I had an error saying the tye of the controller was not found I added the follwoing to the epick_gripper.launch.py file :

epick_controller_spawner = Node(
        package="controller_manager",
        executable="spawner",
        arguments=["epick_gripper_action_controller",
                    "-c", "/controller_manager",
                    "-t", "epick_controllers/EpickGripperActionController"
                    ],
    )

    epick_status_controller_spawner = Node(
        package="controller_manager",
        executable="spawner",
        arguments=["epick_status_publisher_controller", "-c", "/controller_manager",
                   "-t", "epick_controllers/EpickStatusPublisherController"
                ],
    )

On relaunching the robot, I no longer have the type issue but the controller still fails to activate, here are the logs :

[ur_ros2_control_node-1] [ERROR] [1719578549.617717056] [controller_manager]: Can't activate controller 'epick_status_publisher_controller': State interface with key 'gripper/object_detection_status' does not exist
[spawner-14] [INFO] [1719578549.623426428] [spawner_force_torque_sensor_broadcaster]: Configured and activated force_torque_sensor_broadcaster
[spawner-12] [INFO] [1719578549.624258477] [spawner_io_and_status_controller]: Configured and activated io_and_status_controller
[spawner-9] [INFO] [1719578549.639076731] [spawner_epick_status_publisher_controller]: Configured and activated epick_status_publisher_controller
[spawner-6] [INFO] [1719578549.640196009] [spawner_scaled_joint_trajectory_controller]: Configured and activated scaled_joint_trajectory_controller
[ur_ros2_control_node-1] [ERROR] [1719578549.646959416] [resource_manager]: Not acceptable command interfaces combination: 
[ur_ros2_control_node-1] Start interfaces: 
[ur_ros2_control_node-1] [
[ur_ros2_control_node-1]   gripper/grip_cmd
[ur_ros2_control_node-1] ]
[ur_ros2_control_node-1] Stop interfaces: 
[ur_ros2_control_node-1] [
[ur_ros2_control_node-1] ]
[ur_ros2_control_node-1] Not existing: 
[ur_ros2_control_node-1] [
[ur_ros2_control_node-1]  gripper/grip_cmd
[ur_ros2_control_node-1] ]
[ur_ros2_control_node-1] 
[ur_ros2_control_node-1] [ERROR] [1719578549.646989347] [controller_manager]: Could not switch controllers since prepare command mode switch was rejected.
[spawner-13] [INFO] [1719578549.653388027] [spawner_speed_scaling_state_broadcaster]: Configured and activated speed_scaling_state_broadcaster
[spawner-11] [INFO] [1719578549.667014625] [spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster
[spawner-8] [ERROR] [1719578549.669974280] [spawner_epick_gripper_action_controller]: Failed to activate controller

Could someone please tell me if there are additional parameters to change that I missed out and help me with the setup? Thanks!