-
 

Package Summary

Tags No category tags.
Version 0.2.2
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/Kinovarobotics/ros2_kortex.git
VCS Type git
VCS Version main
Last Updated 2024-11-06
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Additional Links

No additional links.

Maintainers

  • Marq Rasmussen

Authors

  • Alexandre Vannobel

Kortex Description

This package contains the URDF (Unified Robot Description Format), STL and configuration files for the Kortex-compatible robots.

Usage

To load the description of a robot, you simply have to load the ARM.xacro or the ARM_GRIPPER.xacro file, with ARM being your arm’s name (gen3, gen3_lite), and if you have a gripper, GRIPPER being your gripper’s name (robotiq_2f_85, gen3_lite_2f).

Arguments:

  • sim : If this argument is true, the Gazebo-specific files will be loaded. The default value is **false **.

For example:

  • To load the Gen3 description with a Robotiq 2-F 85 gripper for simulation, you would put in your launch file : <param name="robot_description" command="$(find xacro)/xacro --inorder $(find kortex_description)/robots/gen3_robotiq_2f_85.xacro sim:=true"\/>

  • To load the Gen3 lite description, you would put in your launch file : <param name="robot_description" command="$(find xacro)/xacro --inorder $(find kortex_description)/robots/gen3_lite_gen3_lite_2f.xacro sim:=false"\/>

Tool frame

The tool_frame link refers to the tool frame used by the arm when it reports end effector position feedback.

Xacro Parameters for load_robot macro

Parameter Table

Param | Description | Default | :—- | :———- | :—— | parent | Parent link in the URDF the arm should be attached to | - | origin | Origin of the robot relative to the specified parent link | - | prefix | This is an optional prefix for all joint and link names in the kortex_description. It is used to allow differentiating between different arms in the same URDF. | - | arm | Name of your robot arm model. | - | gripper | Name of gripper type | - | gripper_joint_name | Name of gripper joint to be actuated | - | dof | Number of DOFs of your robot. | - | vision | Boolean value to indicate if your arm has a Vision Module. This argument only affects the visual representation of the arm in RViz. | - | robot_ip | The IP address of the robot you’re connection to. | - | username | The username for the robot connection. | - | password | The password for the robot connection. | - | port | Port for Kortex hardware driver | - | port_realtime | Realtime port for Kortex hardware driver | - | session_inactivity_timeout_ms | The duration after which the robot will clean the client session if the client hangs up the connection brutally (should not happen with the ROS driver). | - | connection_inactivity_timeout_ms | The duration after which a connection is destroyed by the robot if no communication is detected between the client and the robot. | - | use_internal_bus_gripper_comm | Boolean value to indicate if your gripper will be communicated with through the internal Kinova communication interface. Set to true if the gripper is directly plugged into the kinova arm. Set to false if running in simulation or if gripper is connected to PC via USB. Setting to false will create a ros2_control instance for the gripper. | false | use_fake_hardware | Boolean value to indicate whether or not the hardware components will be mocked. If true the hardware params will be ignored and the hardware components will be mocked. | false | fake_sensor_commands | Boolean value. If set to true will create fake command interfaces for faking sensor measurements with an external command. | false | sim_gazebo | Boolean value to indicate whether or not the gazebo_ros2_control/GazeboSystem plugin will be loaded. | false | sim_ignition | Boolean value to indicate whether or not the ign_ros2_control/IgnitionSystem plugin will be loaded. | false | sim_isaac | Boolean value to indicate whether or not the topic_based_ros2_control/TopicBasedSystem plugin will be loaded and the “joint_commands_topic” and “joint_states_topic” parameters will be set to the isaac_joint_commands and isaac_joint_states values respectively. | false | isaac_joint_commands | Name of the joint commands topic to be used by Isaac Sim. | /isaac_joint_commands | isaac_joint_states | Name of the joint states topic to be used by Isaac Sim. | /isaac_joint_states | use_external_cable | Boolean value that sets joint limits to avoid wrapping of external cables if true. | false | initial_positions | Dictionary of initial joint positions. | {joint_1: 0.0, joint_2: 0.0, joint_3: 0.0, joint_4: 0.0, joint_5: 0.0, joint_6: 0.0, joint_7: 0.0} | gripper_max_velocity | Desired velocity in percentage (0.0-100.0%) with which the position will be set. | 100.0 | gripper_max_force | Desired force in percentage (0.0-100.0%) with which the position will be set. NOTE: deprecated according to the Kortex repo. | 100.0 | gripper_com_port | Specifies the USB port that the gripper is plugged in on. This will only be used if use_internal_bus_gripper_comm is false. | /dev/ttyUSB0 |

Example Usage

Kinova gen3 with robotiq_2f_85 end effector connected via the internal Kinova communication interface

<robot ...>
...
  <xacro:property name="initial_positions" value="${dict(joint_1=0.0, joint_2=0.0, joint_3=-3.14, joint_4=-2.51, joint_5=0.0, joint_6=0.96, joint_7=1.57)}"/>
  <xacro:load_robot
    parent="world"
    arm="gen3"
    gripper="robotiq_2f_85"
    gripper_joint_name="robotiq_85_left_knuckle_joint"
    dof="7"
    vision="true"
    robot_ip="192.168.1.10"
    username="admin"
    password="admin"
    port="10000"
    port_realtime="10001"
    session_inactivity_timeout_ms="60000"
    connection_inactivity_timeout_ms="2000"
    use_internal_bus_gripper_comm="true"
    sim_gazebo="false"
    sim_ignition="false"
    sim_isaac="false"
    prefix=""
    use_fake_hardware="false"
    initial_positions="${initial_positions}"
    use_external_cable="true"
    fake_sensor_commands="false"
    gripper_com_port="">
    <origin xyz="0 0 0.0" rpy="0 0 0" />
  </xacro:load_robot>
...
</robot>

CHANGELOG

Changelog for package kortex_description

0.2.2 (2023-08-09)

  • Refactor MoveIt Launch files (#162)
  • Add use_external_cable parameter to URDF (#155)
  • Contributors: Anthony Baker

0.2.1 (2023-07-26)

  • fix missing dependencies (#152) This fixes missing dependencies which were available from source build but were missing from released binary
  • Contributors: Alex Moriarty

0.2.0 (2023-07-17)

  • Initial Public ROS 2 release of kortex_description
  • Make Gripper velocity and force configurable through URDF (#137)
  • rename kortex2 -> kortex (#144)
  • Fault and Twist controller from new repo (#143)
  • Add camera to 7dof gen3 ignition sim (#141)
  • Remove circular dependency between Description and bringup package (#123)
  • Add moveit config for 6dof gen 3 (#109)
  • Add MoveIt Config for 7dof arm with robotiq_2f_85 gripper (#107)
  • Convert package to use robotiq_description and update xacros (#95)
    • add sim_isaac arg to gen3.xacro
  • Update gen3 URDF mesh path (#79)
  • Support Gen3 lite Hardware (#73)
    • Improve Protective Stop Reset and General Driver Robusteness (#75)
  • Add support for ros2_control of the kinova gen3 lite (#72)
  • Revert joint2 limit to factory values (#70)
  • Kortex fixes for simulations (#64)
  • Gripper controller adaptation (#66)
  • Remove ros1 files (#62)
  • Add conditional finger joint import. (#57)
  • Add default params for easier use in simulation. (#56)
  • Changes after debugging on real hardware (#51)
  • Additional parametrization (#47)
  • Use gripper through internal bus extension (#38)
  • Contributors: Alex Moriarty, Anthony Baker, Denis Štogl, Marq Rasmussen, livanov93

0.1.0 (2021-09-12)

  • Limited shoulder to keep elbow up (#22)
    • limited shoulder from +-2.41 to +-1.3
    • increase range to +-1.4 rad
  • Updated the gripper range to 1 - 99 (#18)
    • Updated the gripper range to 1 - 99
    • Fixed the gripper bug where it never successed
    • Added some better prunt statements
    • Added a gitignore to this project
  • Added an action server for the gripper (#14)
    • Fixed a error with an arg
    • Updated the name of open / close gripper group to be the same as the Ur5
    • Added hand_controller to movit controllers.yaml
    • Added a gripper driver for the 85 gripper
    • cleanup some code
    • Have the gripper opening
    • Updated the srdf so that open / close are the correct value
    • Updated the config so that it's range is 0 - 100
    • Working gripper action server
    • Working gripper action server
    • Removed an unused comment
    • Updated the copy write
    • linting
    • linting
    • removed un-used testing files
    • swapped the open / close the other way around
  • Add gripper to hw_interface (#5)
    • add robotiq driver
    • Fix hand controller
    • remove hand_controller from gen3_move_it_config
    • Combined launch file for kortex_(moveit/control)
    • Fix joint value for left_inner_finger_joint
    • Run pre-commit

    * Revert "Merge pull request #1 from PickNikRobotics/pr-robotiq_driver" This reverts commit 77d7e71b6cc7eea06eccff2cbcf3862cfbd5f2df, reversing changes made to 5ed5a8d1dde4ffadd0132043c894c1832153da47.

    • Send gripper commands, too

    * Launch the gripper controller Initialize gripper to position mode Copy gripper command from their action server

    • MoveIt does not manage gripper controller since it's not an action server anymore
    • Cannot check for 3 interfaces when gripper joints are included

    * Add missing deps Add more deps Add even more deps Restore default Kinova IP address Initialize info_

    • Move session initialization

    * Hard-code robot ip Comment the gripper write(), for now Fix gripper xacro Comment the writing of joint values Debug statement To test gripper, take out of Servo mode * Do not write() anything whatsoever Copy example directly Set to BYPASS_SERVOING before gripper cmd Try low-level gripper command Initialize gripper position

    • Only include <ros2_control> xacro stuff once
    • Cleanup and better comments
    • working arm and gripper interface, changed ip back to ..0.10
    • file cleanup
    • fix format

    * add documentation, revert ros-control files for non-working configurations Co-authored-by: Marq <<marq.razz@gmail.com>> Co-authored-by: JafarAbdi <<cafer.abdi@gmail.com>>

  • Merged in andyz/fix_arg_parsing_again (pull request #12) Fix arg parsing (again) Approved-by: brennand
  • Fix arg parsing (again)
  • Merged in andyz/standardize_arg_parsing (pull request #11) Standardize arg handling for 7dof gen3 xacros * Standardize arg handling for 7dof gen3 xacros Approved-by: Marq Rasmussen

  • Merged in pr-fix_precommit (pull request #9) Remove broken package dependencies and fix CI
    • Remove broken package dependencies and fix CI

    * pre commit fixes Approved-by: Andy Zelenak

  • Merged in pr-fix_ip_address (pull request #7) Add ip_address argument to all gen3 xacros
    • add ip_address argument to all gen3 xacros

    * revert hardware_interface changes Approved-by: Andy Zelenak

  • Merged in pr-fix_precommit (pull request #8) clang and pre-commit fixes Approved-by: Andy Zelenak
  • clang and pre-commit fixes
  • Merged in pr-ci_setup (pull request #3) Add CI and pre-commit and apply relevant formatting fixes
    • Add CI, pre commit and clang-format
    • pre-commit fixes

    * Add pre-commit docs Approved-by: Andy Zelenak

  • Add ros2_control hardware interface Approved-by: Andy Zelenak
  • Merged in pr-ros_control (pull request #2) * add ros2_control hardware interface Approved-by: Andy Zelenak

  • Merged in pr-update_urdf (pull request #1) Update URDF * enable parent argument for gen3 Approved-by: Andy Zelenak

  • updated readme with ported ROS2 packages
  • port robot_description to ros2
  • Contributors: Andy Zelenak, AndyZe, Brennand Pierce, Marq Rasmussen, Vatan Aksoy Tezer, marqrazz

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged kortex_description at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.2.2
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/Kinovarobotics/ros2_kortex.git
VCS Type git
VCS Version main
Last Updated 2024-11-06
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Additional Links

No additional links.

Maintainers

  • Marq Rasmussen

Authors

  • Alexandre Vannobel

Kortex Description

This package contains the URDF (Unified Robot Description Format), STL and configuration files for the Kortex-compatible robots.

Usage

To load the description of a robot, you simply have to load the ARM.xacro or the ARM_GRIPPER.xacro file, with ARM being your arm’s name (gen3, gen3_lite), and if you have a gripper, GRIPPER being your gripper’s name (robotiq_2f_85, gen3_lite_2f).

Arguments:

  • sim : If this argument is true, the Gazebo-specific files will be loaded. The default value is **false **.

For example:

  • To load the Gen3 description with a Robotiq 2-F 85 gripper for simulation, you would put in your launch file : <param name="robot_description" command="$(find xacro)/xacro --inorder $(find kortex_description)/robots/gen3_robotiq_2f_85.xacro sim:=true"\/>

  • To load the Gen3 lite description, you would put in your launch file : <param name="robot_description" command="$(find xacro)/xacro --inorder $(find kortex_description)/robots/gen3_lite_gen3_lite_2f.xacro sim:=false"\/>

Tool frame

The tool_frame link refers to the tool frame used by the arm when it reports end effector position feedback.

Xacro Parameters for load_robot macro

Parameter Table

Param | Description | Default | :—- | :———- | :—— | parent | Parent link in the URDF the arm should be attached to | - | origin | Origin of the robot relative to the specified parent link | - | prefix | This is an optional prefix for all joint and link names in the kortex_description. It is used to allow differentiating between different arms in the same URDF. | - | arm | Name of your robot arm model. | - | gripper | Name of gripper type | - | gripper_joint_name | Name of gripper joint to be actuated | - | dof | Number of DOFs of your robot. | - | vision | Boolean value to indicate if your arm has a Vision Module. This argument only affects the visual representation of the arm in RViz. | - | robot_ip | The IP address of the robot you’re connection to. | - | username | The username for the robot connection. | - | password | The password for the robot connection. | - | port | Port for Kortex hardware driver | - | port_realtime | Realtime port for Kortex hardware driver | - | session_inactivity_timeout_ms | The duration after which the robot will clean the client session if the client hangs up the connection brutally (should not happen with the ROS driver). | - | connection_inactivity_timeout_ms | The duration after which a connection is destroyed by the robot if no communication is detected between the client and the robot. | - | use_internal_bus_gripper_comm | Boolean value to indicate if your gripper will be communicated with through the internal Kinova communication interface. Set to true if the gripper is directly plugged into the kinova arm. Set to false if running in simulation or if gripper is connected to PC via USB. Setting to false will create a ros2_control instance for the gripper. | false | use_fake_hardware | Boolean value to indicate whether or not the hardware components will be mocked. If true the hardware params will be ignored and the hardware components will be mocked. | false | fake_sensor_commands | Boolean value. If set to true will create fake command interfaces for faking sensor measurements with an external command. | false | sim_gazebo | Boolean value to indicate whether or not the gazebo_ros2_control/GazeboSystem plugin will be loaded. | false | sim_ignition | Boolean value to indicate whether or not the ign_ros2_control/IgnitionSystem plugin will be loaded. | false | sim_isaac | Boolean value to indicate whether or not the topic_based_ros2_control/TopicBasedSystem plugin will be loaded and the “joint_commands_topic” and “joint_states_topic” parameters will be set to the isaac_joint_commands and isaac_joint_states values respectively. | false | isaac_joint_commands | Name of the joint commands topic to be used by Isaac Sim. | /isaac_joint_commands | isaac_joint_states | Name of the joint states topic to be used by Isaac Sim. | /isaac_joint_states | use_external_cable | Boolean value that sets joint limits to avoid wrapping of external cables if true. | false | initial_positions | Dictionary of initial joint positions. | {joint_1: 0.0, joint_2: 0.0, joint_3: 0.0, joint_4: 0.0, joint_5: 0.0, joint_6: 0.0, joint_7: 0.0} | gripper_max_velocity | Desired velocity in percentage (0.0-100.0%) with which the position will be set. | 100.0 | gripper_max_force | Desired force in percentage (0.0-100.0%) with which the position will be set. NOTE: deprecated according to the Kortex repo. | 100.0 | gripper_com_port | Specifies the USB port that the gripper is plugged in on. This will only be used if use_internal_bus_gripper_comm is false. | /dev/ttyUSB0 |

Example Usage

Kinova gen3 with robotiq_2f_85 end effector connected via the internal Kinova communication interface

<robot ...>
...
  <xacro:property name="initial_positions" value="${dict(joint_1=0.0, joint_2=0.0, joint_3=-3.14, joint_4=-2.51, joint_5=0.0, joint_6=0.96, joint_7=1.57)}"/>
  <xacro:load_robot
    parent="world"
    arm="gen3"
    gripper="robotiq_2f_85"
    gripper_joint_name="robotiq_85_left_knuckle_joint"
    dof="7"
    vision="true"
    robot_ip="192.168.1.10"
    username="admin"
    password="admin"
    port="10000"
    port_realtime="10001"
    session_inactivity_timeout_ms="60000"
    connection_inactivity_timeout_ms="2000"
    use_internal_bus_gripper_comm="true"
    sim_gazebo="false"
    sim_ignition="false"
    sim_isaac="false"
    prefix=""
    use_fake_hardware="false"
    initial_positions="${initial_positions}"
    use_external_cable="true"
    fake_sensor_commands="false"
    gripper_com_port="">
    <origin xyz="0 0 0.0" rpy="0 0 0" />
  </xacro:load_robot>
...
</robot>

CHANGELOG

Changelog for package kortex_description

0.2.2 (2023-08-09)

  • Refactor MoveIt Launch files (#162)
  • Add use_external_cable parameter to URDF (#155)
  • Contributors: Anthony Baker

0.2.1 (2023-07-26)

  • fix missing dependencies (#152) This fixes missing dependencies which were available from source build but were missing from released binary
  • Contributors: Alex Moriarty

0.2.0 (2023-07-17)

  • Initial Public ROS 2 release of kortex_description
  • Make Gripper velocity and force configurable through URDF (#137)
  • rename kortex2 -> kortex (#144)
  • Fault and Twist controller from new repo (#143)
  • Add camera to 7dof gen3 ignition sim (#141)
  • Remove circular dependency between Description and bringup package (#123)
  • Add moveit config for 6dof gen 3 (#109)
  • Add MoveIt Config for 7dof arm with robotiq_2f_85 gripper (#107)
  • Convert package to use robotiq_description and update xacros (#95)
    • add sim_isaac arg to gen3.xacro
  • Update gen3 URDF mesh path (#79)
  • Support Gen3 lite Hardware (#73)
    • Improve Protective Stop Reset and General Driver Robusteness (#75)
  • Add support for ros2_control of the kinova gen3 lite (#72)
  • Revert joint2 limit to factory values (#70)
  • Kortex fixes for simulations (#64)
  • Gripper controller adaptation (#66)
  • Remove ros1 files (#62)
  • Add conditional finger joint import. (#57)
  • Add default params for easier use in simulation. (#56)
  • Changes after debugging on real hardware (#51)
  • Additional parametrization (#47)
  • Use gripper through internal bus extension (#38)
  • Contributors: Alex Moriarty, Anthony Baker, Denis Štogl, Marq Rasmussen, livanov93

0.1.0 (2021-09-12)

  • Limited shoulder to keep elbow up (#22)
    • limited shoulder from +-2.41 to +-1.3
    • increase range to +-1.4 rad
  • Updated the gripper range to 1 - 99 (#18)
    • Updated the gripper range to 1 - 99
    • Fixed the gripper bug where it never successed
    • Added some better prunt statements
    • Added a gitignore to this project
  • Added an action server for the gripper (#14)
    • Fixed a error with an arg
    • Updated the name of open / close gripper group to be the same as the Ur5
    • Added hand_controller to movit controllers.yaml
    • Added a gripper driver for the 85 gripper
    • cleanup some code
    • Have the gripper opening
    • Updated the srdf so that open / close are the correct value
    • Updated the config so that it's range is 0 - 100
    • Working gripper action server
    • Working gripper action server
    • Removed an unused comment
    • Updated the copy write
    • linting
    • linting
    • removed un-used testing files
    • swapped the open / close the other way around
  • Add gripper to hw_interface (#5)
    • add robotiq driver
    • Fix hand controller
    • remove hand_controller from gen3_move_it_config
    • Combined launch file for kortex_(moveit/control)
    • Fix joint value for left_inner_finger_joint
    • Run pre-commit

    * Revert "Merge pull request #1 from PickNikRobotics/pr-robotiq_driver" This reverts commit 77d7e71b6cc7eea06eccff2cbcf3862cfbd5f2df, reversing changes made to 5ed5a8d1dde4ffadd0132043c894c1832153da47.

    • Send gripper commands, too

    * Launch the gripper controller Initialize gripper to position mode Copy gripper command from their action server

    • MoveIt does not manage gripper controller since it's not an action server anymore
    • Cannot check for 3 interfaces when gripper joints are included

    * Add missing deps Add more deps Add even more deps Restore default Kinova IP address Initialize info_

    • Move session initialization

    * Hard-code robot ip Comment the gripper write(), for now Fix gripper xacro Comment the writing of joint values Debug statement To test gripper, take out of Servo mode * Do not write() anything whatsoever Copy example directly Set to BYPASS_SERVOING before gripper cmd Try low-level gripper command Initialize gripper position

    • Only include <ros2_control> xacro stuff once
    • Cleanup and better comments
    • working arm and gripper interface, changed ip back to ..0.10
    • file cleanup
    • fix format

    * add documentation, revert ros-control files for non-working configurations Co-authored-by: Marq <<marq.razz@gmail.com>> Co-authored-by: JafarAbdi <<cafer.abdi@gmail.com>>

  • Merged in andyz/fix_arg_parsing_again (pull request #12) Fix arg parsing (again) Approved-by: brennand
  • Fix arg parsing (again)
  • Merged in andyz/standardize_arg_parsing (pull request #11) Standardize arg handling for 7dof gen3 xacros * Standardize arg handling for 7dof gen3 xacros Approved-by: Marq Rasmussen

  • Merged in pr-fix_precommit (pull request #9) Remove broken package dependencies and fix CI
    • Remove broken package dependencies and fix CI

    * pre commit fixes Approved-by: Andy Zelenak

  • Merged in pr-fix_ip_address (pull request #7) Add ip_address argument to all gen3 xacros
    • add ip_address argument to all gen3 xacros

    * revert hardware_interface changes Approved-by: Andy Zelenak

  • Merged in pr-fix_precommit (pull request #8) clang and pre-commit fixes Approved-by: Andy Zelenak
  • clang and pre-commit fixes
  • Merged in pr-ci_setup (pull request #3) Add CI and pre-commit and apply relevant formatting fixes
    • Add CI, pre commit and clang-format
    • pre-commit fixes

    * Add pre-commit docs Approved-by: Andy Zelenak

  • Add ros2_control hardware interface Approved-by: Andy Zelenak
  • Merged in pr-ros_control (pull request #2) * add ros2_control hardware interface Approved-by: Andy Zelenak

  • Merged in pr-update_urdf (pull request #1) Update URDF * enable parent argument for gen3 Approved-by: Andy Zelenak

  • updated readme with ported ROS2 packages
  • port robot_description to ros2
  • Contributors: Andy Zelenak, AndyZe, Brennand Pierce, Marq Rasmussen, Vatan Aksoy Tezer, marqrazz

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged kortex_description at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.2.2
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/Kinovarobotics/ros2_kortex.git
VCS Type git
VCS Version main
Last Updated 2024-11-06
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Additional Links

No additional links.

Maintainers

  • Marq Rasmussen

Authors

  • Alexandre Vannobel

Kortex Description

This package contains the URDF (Unified Robot Description Format), STL and configuration files for the Kortex-compatible robots.

Usage

To load the description of a robot, you simply have to load the ARM.xacro or the ARM_GRIPPER.xacro file, with ARM being your arm’s name (gen3, gen3_lite), and if you have a gripper, GRIPPER being your gripper’s name (robotiq_2f_85, gen3_lite_2f).

Arguments:

  • sim : If this argument is true, the Gazebo-specific files will be loaded. The default value is **false **.

For example:

  • To load the Gen3 description with a Robotiq 2-F 85 gripper for simulation, you would put in your launch file : <param name="robot_description" command="$(find xacro)/xacro --inorder $(find kortex_description)/robots/gen3_robotiq_2f_85.xacro sim:=true"\/>

  • To load the Gen3 lite description, you would put in your launch file : <param name="robot_description" command="$(find xacro)/xacro --inorder $(find kortex_description)/robots/gen3_lite_gen3_lite_2f.xacro sim:=false"\/>

Tool frame

The tool_frame link refers to the tool frame used by the arm when it reports end effector position feedback.

Xacro Parameters for load_robot macro

Parameter Table

Param | Description | Default | :—- | :———- | :—— | parent | Parent link in the URDF the arm should be attached to | - | origin | Origin of the robot relative to the specified parent link | - | prefix | This is an optional prefix for all joint and link names in the kortex_description. It is used to allow differentiating between different arms in the same URDF. | - | arm | Name of your robot arm model. | - | gripper | Name of gripper type | - | gripper_joint_name | Name of gripper joint to be actuated | - | dof | Number of DOFs of your robot. | - | vision | Boolean value to indicate if your arm has a Vision Module. This argument only affects the visual representation of the arm in RViz. | - | robot_ip | The IP address of the robot you’re connection to. | - | username | The username for the robot connection. | - | password | The password for the robot connection. | - | port | Port for Kortex hardware driver | - | port_realtime | Realtime port for Kortex hardware driver | - | session_inactivity_timeout_ms | The duration after which the robot will clean the client session if the client hangs up the connection brutally (should not happen with the ROS driver). | - | connection_inactivity_timeout_ms | The duration after which a connection is destroyed by the robot if no communication is detected between the client and the robot. | - | use_internal_bus_gripper_comm | Boolean value to indicate if your gripper will be communicated with through the internal Kinova communication interface. Set to true if the gripper is directly plugged into the kinova arm. Set to false if running in simulation or if gripper is connected to PC via USB. Setting to false will create a ros2_control instance for the gripper. | false | use_fake_hardware | Boolean value to indicate whether or not the hardware components will be mocked. If true the hardware params will be ignored and the hardware components will be mocked. | false | fake_sensor_commands | Boolean value. If set to true will create fake command interfaces for faking sensor measurements with an external command. | false | sim_gazebo | Boolean value to indicate whether or not the gazebo_ros2_control/GazeboSystem plugin will be loaded. | false | sim_ignition | Boolean value to indicate whether or not the ign_ros2_control/IgnitionSystem plugin will be loaded. | false | sim_isaac | Boolean value to indicate whether or not the topic_based_ros2_control/TopicBasedSystem plugin will be loaded and the “joint_commands_topic” and “joint_states_topic” parameters will be set to the isaac_joint_commands and isaac_joint_states values respectively. | false | isaac_joint_commands | Name of the joint commands topic to be used by Isaac Sim. | /isaac_joint_commands | isaac_joint_states | Name of the joint states topic to be used by Isaac Sim. | /isaac_joint_states | use_external_cable | Boolean value that sets joint limits to avoid wrapping of external cables if true. | false | initial_positions | Dictionary of initial joint positions. | {joint_1: 0.0, joint_2: 0.0, joint_3: 0.0, joint_4: 0.0, joint_5: 0.0, joint_6: 0.0, joint_7: 0.0} | gripper_max_velocity | Desired velocity in percentage (0.0-100.0%) with which the position will be set. | 100.0 | gripper_max_force | Desired force in percentage (0.0-100.0%) with which the position will be set. NOTE: deprecated according to the Kortex repo. | 100.0 | gripper_com_port | Specifies the USB port that the gripper is plugged in on. This will only be used if use_internal_bus_gripper_comm is false. | /dev/ttyUSB0 |

Example Usage

Kinova gen3 with robotiq_2f_85 end effector connected via the internal Kinova communication interface

<robot ...>
...
  <xacro:property name="initial_positions" value="${dict(joint_1=0.0, joint_2=0.0, joint_3=-3.14, joint_4=-2.51, joint_5=0.0, joint_6=0.96, joint_7=1.57)}"/>
  <xacro:load_robot
    parent="world"
    arm="gen3"
    gripper="robotiq_2f_85"
    gripper_joint_name="robotiq_85_left_knuckle_joint"
    dof="7"
    vision="true"
    robot_ip="192.168.1.10"
    username="admin"
    password="admin"
    port="10000"
    port_realtime="10001"
    session_inactivity_timeout_ms="60000"
    connection_inactivity_timeout_ms="2000"
    use_internal_bus_gripper_comm="true"
    sim_gazebo="false"
    sim_ignition="false"
    sim_isaac="false"
    prefix=""
    use_fake_hardware="false"
    initial_positions="${initial_positions}"
    use_external_cable="true"
    fake_sensor_commands="false"
    gripper_com_port="">
    <origin xyz="0 0 0.0" rpy="0 0 0" />
  </xacro:load_robot>
...
</robot>

CHANGELOG

Changelog for package kortex_description

0.2.2 (2023-08-09)

  • Refactor MoveIt Launch files (#162)
  • Add use_external_cable parameter to URDF (#155)
  • Contributors: Anthony Baker

0.2.1 (2023-07-26)

  • fix missing dependencies (#152) This fixes missing dependencies which were available from source build but were missing from released binary
  • Contributors: Alex Moriarty

0.2.0 (2023-07-17)

  • Initial Public ROS 2 release of kortex_description
  • Make Gripper velocity and force configurable through URDF (#137)
  • rename kortex2 -> kortex (#144)
  • Fault and Twist controller from new repo (#143)
  • Add camera to 7dof gen3 ignition sim (#141)
  • Remove circular dependency between Description and bringup package (#123)
  • Add moveit config for 6dof gen 3 (#109)
  • Add MoveIt Config for 7dof arm with robotiq_2f_85 gripper (#107)
  • Convert package to use robotiq_description and update xacros (#95)
    • add sim_isaac arg to gen3.xacro
  • Update gen3 URDF mesh path (#79)
  • Support Gen3 lite Hardware (#73)
    • Improve Protective Stop Reset and General Driver Robusteness (#75)
  • Add support for ros2_control of the kinova gen3 lite (#72)
  • Revert joint2 limit to factory values (#70)
  • Kortex fixes for simulations (#64)
  • Gripper controller adaptation (#66)
  • Remove ros1 files (#62)
  • Add conditional finger joint import. (#57)
  • Add default params for easier use in simulation. (#56)
  • Changes after debugging on real hardware (#51)
  • Additional parametrization (#47)
  • Use gripper through internal bus extension (#38)
  • Contributors: Alex Moriarty, Anthony Baker, Denis Štogl, Marq Rasmussen, livanov93

0.1.0 (2021-09-12)

  • Limited shoulder to keep elbow up (#22)
    • limited shoulder from +-2.41 to +-1.3
    • increase range to +-1.4 rad
  • Updated the gripper range to 1 - 99 (#18)
    • Updated the gripper range to 1 - 99
    • Fixed the gripper bug where it never successed
    • Added some better prunt statements
    • Added a gitignore to this project
  • Added an action server for the gripper (#14)
    • Fixed a error with an arg
    • Updated the name of open / close gripper group to be the same as the Ur5
    • Added hand_controller to movit controllers.yaml
    • Added a gripper driver for the 85 gripper
    • cleanup some code
    • Have the gripper opening
    • Updated the srdf so that open / close are the correct value
    • Updated the config so that it's range is 0 - 100
    • Working gripper action server
    • Working gripper action server
    • Removed an unused comment
    • Updated the copy write
    • linting
    • linting
    • removed un-used testing files
    • swapped the open / close the other way around
  • Add gripper to hw_interface (#5)
    • add robotiq driver
    • Fix hand controller
    • remove hand_controller from gen3_move_it_config
    • Combined launch file for kortex_(moveit/control)
    • Fix joint value for left_inner_finger_joint
    • Run pre-commit

    * Revert "Merge pull request #1 from PickNikRobotics/pr-robotiq_driver" This reverts commit 77d7e71b6cc7eea06eccff2cbcf3862cfbd5f2df, reversing changes made to 5ed5a8d1dde4ffadd0132043c894c1832153da47.

    • Send gripper commands, too

    * Launch the gripper controller Initialize gripper to position mode Copy gripper command from their action server

    • MoveIt does not manage gripper controller since it's not an action server anymore
    • Cannot check for 3 interfaces when gripper joints are included

    * Add missing deps Add more deps Add even more deps Restore default Kinova IP address Initialize info_

    • Move session initialization

    * Hard-code robot ip Comment the gripper write(), for now Fix gripper xacro Comment the writing of joint values Debug statement To test gripper, take out of Servo mode * Do not write() anything whatsoever Copy example directly Set to BYPASS_SERVOING before gripper cmd Try low-level gripper command Initialize gripper position

    • Only include <ros2_control> xacro stuff once
    • Cleanup and better comments
    • working arm and gripper interface, changed ip back to ..0.10
    • file cleanup
    • fix format

    * add documentation, revert ros-control files for non-working configurations Co-authored-by: Marq <<marq.razz@gmail.com>> Co-authored-by: JafarAbdi <<cafer.abdi@gmail.com>>

  • Merged in andyz/fix_arg_parsing_again (pull request #12) Fix arg parsing (again) Approved-by: brennand
  • Fix arg parsing (again)
  • Merged in andyz/standardize_arg_parsing (pull request #11) Standardize arg handling for 7dof gen3 xacros * Standardize arg handling for 7dof gen3 xacros Approved-by: Marq Rasmussen

  • Merged in pr-fix_precommit (pull request #9) Remove broken package dependencies and fix CI
    • Remove broken package dependencies and fix CI

    * pre commit fixes Approved-by: Andy Zelenak

  • Merged in pr-fix_ip_address (pull request #7) Add ip_address argument to all gen3 xacros
    • add ip_address argument to all gen3 xacros

    * revert hardware_interface changes Approved-by: Andy Zelenak

  • Merged in pr-fix_precommit (pull request #8) clang and pre-commit fixes Approved-by: Andy Zelenak
  • clang and pre-commit fixes
  • Merged in pr-ci_setup (pull request #3) Add CI and pre-commit and apply relevant formatting fixes
    • Add CI, pre commit and clang-format
    • pre-commit fixes

    * Add pre-commit docs Approved-by: Andy Zelenak

  • Add ros2_control hardware interface Approved-by: Andy Zelenak
  • Merged in pr-ros_control (pull request #2) * add ros2_control hardware interface Approved-by: Andy Zelenak

  • Merged in pr-update_urdf (pull request #1) Update URDF * enable parent argument for gen3 Approved-by: Andy Zelenak

  • updated readme with ported ROS2 packages
  • port robot_description to ros2
  • Contributors: Andy Zelenak, AndyZe, Brennand Pierce, Marq Rasmussen, Vatan Aksoy Tezer, marqrazz

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged kortex_description at Robotics Stack Exchange

Package Summary

Tags No category tags.
Version 0.2.2
License BSD
Build type AMENT_CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/Kinovarobotics/ros2_kortex.git
VCS Type git
VCS Version main
Last Updated 2024-11-06
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

Additional Links

No additional links.

Maintainers

  • Marq Rasmussen

Authors

  • Alexandre Vannobel

Kortex Description

This package contains the URDF (Unified Robot Description Format), STL and configuration files for the Kortex-compatible robots.

Usage

To load the description of a robot, you simply have to load the ARM.xacro or the ARM_GRIPPER.xacro file, with ARM being your arm’s name (gen3, gen3_lite), and if you have a gripper, GRIPPER being your gripper’s name (robotiq_2f_85, gen3_lite_2f).

Arguments:

  • sim : If this argument is true, the Gazebo-specific files will be loaded. The default value is **false **.

For example:

  • To load the Gen3 description with a Robotiq 2-F 85 gripper for simulation, you would put in your launch file : <param name="robot_description" command="$(find xacro)/xacro --inorder $(find kortex_description)/robots/gen3_robotiq_2f_85.xacro sim:=true"\/>

  • To load the Gen3 lite description, you would put in your launch file : <param name="robot_description" command="$(find xacro)/xacro --inorder $(find kortex_description)/robots/gen3_lite_gen3_lite_2f.xacro sim:=false"\/>

Tool frame

The tool_frame link refers to the tool frame used by the arm when it reports end effector position feedback.

Xacro Parameters for load_robot macro

Parameter Table

Param | Description | Default | :—- | :———- | :—— | parent | Parent link in the URDF the arm should be attached to | - | origin | Origin of the robot relative to the specified parent link | - | prefix | This is an optional prefix for all joint and link names in the kortex_description. It is used to allow differentiating between different arms in the same URDF. | - | arm | Name of your robot arm model. | - | gripper | Name of gripper type | - | gripper_joint_name | Name of gripper joint to be actuated | - | dof | Number of DOFs of your robot. | - | vision | Boolean value to indicate if your arm has a Vision Module. This argument only affects the visual representation of the arm in RViz. | - | robot_ip | The IP address of the robot you’re connection to. | - | username | The username for the robot connection. | - | password | The password for the robot connection. | - | port | Port for Kortex hardware driver | - | port_realtime | Realtime port for Kortex hardware driver | - | session_inactivity_timeout_ms | The duration after which the robot will clean the client session if the client hangs up the connection brutally (should not happen with the ROS driver). | - | connection_inactivity_timeout_ms | The duration after which a connection is destroyed by the robot if no communication is detected between the client and the robot. | - | use_internal_bus_gripper_comm | Boolean value to indicate if your gripper will be communicated with through the internal Kinova communication interface. Set to true if the gripper is directly plugged into the kinova arm. Set to false if running in simulation or if gripper is connected to PC via USB. Setting to false will create a ros2_control instance for the gripper. | false | use_fake_hardware | Boolean value to indicate whether or not the hardware components will be mocked. If true the hardware params will be ignored and the hardware components will be mocked. | false | fake_sensor_commands | Boolean value. If set to true will create fake command interfaces for faking sensor measurements with an external command. | false | sim_gazebo | Boolean value to indicate whether or not the gazebo_ros2_control/GazeboSystem plugin will be loaded. | false | sim_ignition | Boolean value to indicate whether or not the ign_ros2_control/IgnitionSystem plugin will be loaded. | false | sim_isaac | Boolean value to indicate whether or not the topic_based_ros2_control/TopicBasedSystem plugin will be loaded and the “joint_commands_topic” and “joint_states_topic” parameters will be set to the isaac_joint_commands and isaac_joint_states values respectively. | false | isaac_joint_commands | Name of the joint commands topic to be used by Isaac Sim. | /isaac_joint_commands | isaac_joint_states | Name of the joint states topic to be used by Isaac Sim. | /isaac_joint_states | use_external_cable | Boolean value that sets joint limits to avoid wrapping of external cables if true. | false | initial_positions | Dictionary of initial joint positions. | {joint_1: 0.0, joint_2: 0.0, joint_3: 0.0, joint_4: 0.0, joint_5: 0.0, joint_6: 0.0, joint_7: 0.0} | gripper_max_velocity | Desired velocity in percentage (0.0-100.0%) with which the position will be set. | 100.0 | gripper_max_force | Desired force in percentage (0.0-100.0%) with which the position will be set. NOTE: deprecated according to the Kortex repo. | 100.0 | gripper_com_port | Specifies the USB port that the gripper is plugged in on. This will only be used if use_internal_bus_gripper_comm is false. | /dev/ttyUSB0 |

Example Usage

Kinova gen3 with robotiq_2f_85 end effector connected via the internal Kinova communication interface

<robot ...>
...
  <xacro:property name="initial_positions" value="${dict(joint_1=0.0, joint_2=0.0, joint_3=-3.14, joint_4=-2.51, joint_5=0.0, joint_6=0.96, joint_7=1.57)}"/>
  <xacro:load_robot
    parent="world"
    arm="gen3"
    gripper="robotiq_2f_85"
    gripper_joint_name="robotiq_85_left_knuckle_joint"
    dof="7"
    vision="true"
    robot_ip="192.168.1.10"
    username="admin"
    password="admin"
    port="10000"
    port_realtime="10001"
    session_inactivity_timeout_ms="60000"
    connection_inactivity_timeout_ms="2000"
    use_internal_bus_gripper_comm="true"
    sim_gazebo="false"
    sim_ignition="false"
    sim_isaac="false"
    prefix=""
    use_fake_hardware="false"
    initial_positions="${initial_positions}"
    use_external_cable="true"
    fake_sensor_commands="false"
    gripper_com_port="">
    <origin xyz="0 0 0.0" rpy="0 0 0" />
  </xacro:load_robot>
...
</robot>

CHANGELOG

Changelog for package kortex_description

0.2.2 (2023-08-09)

  • Refactor MoveIt Launch files (#162)
  • Add use_external_cable parameter to URDF (#155)
  • Contributors: Anthony Baker

0.2.1 (2023-07-26)

  • fix missing dependencies (#152) This fixes missing dependencies which were available from source build but were missing from released binary
  • Contributors: Alex Moriarty

0.2.0 (2023-07-17)

  • Initial Public ROS 2 release of kortex_description
  • Make Gripper velocity and force configurable through URDF (#137)
  • rename kortex2 -> kortex (#144)
  • Fault and Twist controller from new repo (#143)
  • Add camera to 7dof gen3 ignition sim (#141)
  • Remove circular dependency between Description and bringup package (#123)
  • Add moveit config for 6dof gen 3 (#109)
  • Add MoveIt Config for 7dof arm with robotiq_2f_85 gripper (#107)
  • Convert package to use robotiq_description and update xacros (#95)
    • add sim_isaac arg to gen3.xacro
  • Update gen3 URDF mesh path (#79)
  • Support Gen3 lite Hardware (#73)
    • Improve Protective Stop Reset and General Driver Robusteness (#75)
  • Add support for ros2_control of the kinova gen3 lite (#72)
  • Revert joint2 limit to factory values (#70)
  • Kortex fixes for simulations (#64)
  • Gripper controller adaptation (#66)
  • Remove ros1 files (#62)
  • Add conditional finger joint import. (#57)
  • Add default params for easier use in simulation. (#56)
  • Changes after debugging on real hardware (#51)
  • Additional parametrization (#47)
  • Use gripper through internal bus extension (#38)
  • Contributors: Alex Moriarty, Anthony Baker, Denis Štogl, Marq Rasmussen, livanov93

0.1.0 (2021-09-12)

  • Limited shoulder to keep elbow up (#22)
    • limited shoulder from +-2.41 to +-1.3
    • increase range to +-1.4 rad
  • Updated the gripper range to 1 - 99 (#18)
    • Updated the gripper range to 1 - 99
    • Fixed the gripper bug where it never successed
    • Added some better prunt statements
    • Added a gitignore to this project
  • Added an action server for the gripper (#14)
    • Fixed a error with an arg
    • Updated the name of open / close gripper group to be the same as the Ur5
    • Added hand_controller to movit controllers.yaml
    • Added a gripper driver for the 85 gripper
    • cleanup some code
    • Have the gripper opening
    • Updated the srdf so that open / close are the correct value
    • Updated the config so that it's range is 0 - 100
    • Working gripper action server
    • Working gripper action server
    • Removed an unused comment
    • Updated the copy write
    • linting
    • linting
    • removed un-used testing files
    • swapped the open / close the other way around
  • Add gripper to hw_interface (#5)
    • add robotiq driver
    • Fix hand controller
    • remove hand_controller from gen3_move_it_config
    • Combined launch file for kortex_(moveit/control)
    • Fix joint value for left_inner_finger_joint
    • Run pre-commit

    * Revert "Merge pull request #1 from PickNikRobotics/pr-robotiq_driver" This reverts commit 77d7e71b6cc7eea06eccff2cbcf3862cfbd5f2df, reversing changes made to 5ed5a8d1dde4ffadd0132043c894c1832153da47.

    • Send gripper commands, too

    * Launch the gripper controller Initialize gripper to position mode Copy gripper command from their action server

    • MoveIt does not manage gripper controller since it's not an action server anymore
    • Cannot check for 3 interfaces when gripper joints are included

    * Add missing deps Add more deps Add even more deps Restore default Kinova IP address Initialize info_

    • Move session initialization

    * Hard-code robot ip Comment the gripper write(), for now Fix gripper xacro Comment the writing of joint values Debug statement To test gripper, take out of Servo mode * Do not write() anything whatsoever Copy example directly Set to BYPASS_SERVOING before gripper cmd Try low-level gripper command Initialize gripper position

    • Only include <ros2_control> xacro stuff once
    • Cleanup and better comments
    • working arm and gripper interface, changed ip back to ..0.10
    • file cleanup
    • fix format

    * add documentation, revert ros-control files for non-working configurations Co-authored-by: Marq <<marq.razz@gmail.com>> Co-authored-by: JafarAbdi <<cafer.abdi@gmail.com>>

  • Merged in andyz/fix_arg_parsing_again (pull request #12) Fix arg parsing (again) Approved-by: brennand
  • Fix arg parsing (again)
  • Merged in andyz/standardize_arg_parsing (pull request #11) Standardize arg handling for 7dof gen3 xacros * Standardize arg handling for 7dof gen3 xacros Approved-by: Marq Rasmussen

  • Merged in pr-fix_precommit (pull request #9) Remove broken package dependencies and fix CI
    • Remove broken package dependencies and fix CI

    * pre commit fixes Approved-by: Andy Zelenak

  • Merged in pr-fix_ip_address (pull request #7) Add ip_address argument to all gen3 xacros
    • add ip_address argument to all gen3 xacros

    * revert hardware_interface changes Approved-by: Andy Zelenak

  • Merged in pr-fix_precommit (pull request #8) clang and pre-commit fixes Approved-by: Andy Zelenak
  • clang and pre-commit fixes
  • Merged in pr-ci_setup (pull request #3) Add CI and pre-commit and apply relevant formatting fixes
    • Add CI, pre commit and clang-format
    • pre-commit fixes

    * Add pre-commit docs Approved-by: Andy Zelenak

  • Add ros2_control hardware interface Approved-by: Andy Zelenak
  • Merged in pr-ros_control (pull request #2) * add ros2_control hardware interface Approved-by: Andy Zelenak

  • Merged in pr-update_urdf (pull request #1) Update URDF * enable parent argument for gen3 Approved-by: Andy Zelenak

  • updated readme with ported ROS2 packages
  • port robot_description to ros2
  • Contributors: Andy Zelenak, AndyZe, Brennand Pierce, Marq Rasmussen, Vatan Aksoy Tezer, marqrazz

Wiki Tutorials

This package does not provide any links to tutorials in it's rosindex metadata. You can check on the ROS Wiki Tutorials page for the package.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged kortex_description at Robotics Stack Exchange