Skip to content

Commit

Permalink
add general kr support package for moveit
Browse files Browse the repository at this point in the history
  • Loading branch information
Aron Svastits committed Aug 1, 2023
1 parent b898a73 commit ff604a0
Show file tree
Hide file tree
Showing 11 changed files with 135 additions and 19 deletions.
38 changes: 38 additions & 0 deletions kuka_agilus_support/config/kr6_r700_sixx_joint_limits.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed
# Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration, max_jerk]
# Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits]

# Easiest way to slow down the robot is to decrease the velocity and acceleration scaling factors
default_velocity_scaling_factor: 1.0
default_acceleration_scaling_factor: 1.0
joint_limits:
joint_a1:
has_velocity_limits: true
max_velocity: 6.283185
has_acceleration_limits: false
has_jerk: false
joint_a2:
has_velocity_limits: true
max_velocity: 5.23599
has_acceleration_limits: false
has_jerk: false
joint_a3:
has_velocity_limits: true
max_velocity: 6.283185
has_acceleration_limits: false
has_jerk: false
joint_a4:
has_velocity_limits: true
max_velocity: 6.64970
has_acceleration_limits: false
has_jerk: false
joint_a5:
has_velocity_limits: true
max_velocity: 6.77188
has_acceleration_limits: false
has_jerk: false
joint_a6:
has_velocity_limits: true
max_velocity: 10.73377
has_acceleration_limits: false
has_jerk: false
38 changes: 38 additions & 0 deletions kuka_agilus_support/config/kr6_r900_sixx_joint_limits.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed
# Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration, max_jerk]
# Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits]

# Easiest way to slow down the robot is to decrease the velocity and acceleration scaling factors
default_velocity_scaling_factor: 1.0
default_acceleration_scaling_factor: 1.0
joint_limits:
joint_a1:
has_velocity_limits: true
max_velocity: 6.283185
has_acceleration_limits: false
has_jerk: false
joint_a2:
has_velocity_limits: true
max_velocity: 5.23599
has_acceleration_limits: false
has_jerk: false
joint_a3:
has_velocity_limits: true
max_velocity: 6.283185
has_acceleration_limits: false
has_jerk: false
joint_a4:
has_velocity_limits: true
max_velocity: 6.64970
has_acceleration_limits: false
has_jerk: false
joint_a5:
has_velocity_limits: true
max_velocity: 6.77188
has_acceleration_limits: false
has_jerk: false
joint_a6:
has_velocity_limits: true
max_velocity: 10.73377
has_acceleration_limits: false
has_jerk: false
41 changes: 41 additions & 0 deletions kuka_cybertech_support/config/kr16_r2010-2_joint_limits.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed
# Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration, max_jerk]
# Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits]

# The default config of moveit does not take into account the jerk limits, the RuckigTrajectorySmoothing adapter must be
# added to the planning pipeline to support jerk limits # TODO: check if jerk dimensions are ok!!

# Easiest way to slow down the robot is to decrease the velocity and acceleration scaling factors
default_velocity_scaling_factor: 1.0
default_acceleration_scaling_factor: 1.0
joint_limits:
joint_a1:
has_velocity_limits: true
max_velocity: 3.490656
has_acceleration_limits: false
has_jerk: false
joint_a2:
has_velocity_limits: true
max_velocity: 3.05432
has_acceleration_limits: false
has_jerk: false
joint_a3:
has_velocity_limits: true
max_velocity: 3.31613
has_acceleration_limits: false
has_jerk: false
joint_a4:
has_velocity_limits: true
max_velocity: 7.50492
has_acceleration_limits: false
has_jerk: false
joint_a5:
has_velocity_limits: true
max_velocity: 7.50492
has_acceleration_limits: false
has_jerk: false
joint_a6:
has_velocity_limits: true
max_velocity: 10.99557
has_acceleration_limits: false
has_jerk: false
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
cmake_minimum_required(VERSION 3.5)

project(kuka_cybertech_moveit_config)
project(kuka_kr_moveit_config)

find_package(ament_cmake REQUIRED)
find_package(urdf REQUIRED)
find_package(xacro REQUIRED)

xacro_add_files(TARGET kr16r2010-2 srdf/kr16_r2010-2_arm.srdf.xacro OUTPUT kr16_r2010-2_arm.srdf INSTALL DESTINATION urdf)
xacro_add_files(TARGET kr_arm srdf/kr_arm.srdf.xacro OUTPUT kr_arm.srdf INSTALL DESTINATION urdf)

install(DIRECTORY config
DESTINATION share/${PROJECT_NAME})
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
cybertech_arm:
kr_arm:
kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin
kinematics_solver_search_resolution: 0.005
kinematics_solver_timeout: 0.05
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0"?>
<package format="3">
<name>kuka_cybertech_moveit_config</name>
<name>kuka_kr_moveit_config</name>
<version>0.1.0</version>
<description>Package containing moveit configuration for KUKA Cybertech robots</description>
<description>Package containing moveit configuration for KUKA KR robots</description>
<author>Aron Svastits</author>
<maintainer email="svastits1@gmail.com"></maintainer>
<license>BSD</license>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@
This is a format for representing semantic information about the robot structure.
A URDF file must exist for this robot as well, where the joints and the links that are referenced are defined
-->
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="kuka_kr16_r2010-2">
<xacro:include filename="cybertech_arm.macro.xacro" />
<xacro:kuka_cybertech_arm prefix=""/>

<!--TODO(Svastits): add an argument for the robot name instead of kr, as srdf model parsers logs an error now-->
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="kr">
<xacro:include filename="kr_arm_macro.xacro" />
<xacro:kuka_kr_arm prefix=""/>
</robot>
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<?xml version="1.0" ?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="kuka_cybertech_arm" params="prefix">
<xacro:macro name="kuka_kr_arm" params="prefix">
<!--GROUPS: Representation of a set of joints and links. This can be useful for specifying DOF to plan for, defining arms, end effectors, etc-->
<!--LINKS: When a link is specified, the parent joint of that link (if it exists) is automatically included-->
<!--JOINTS: When a joint is specified, the child link of that joint (which will always exist) is automatically included-->
<!--CHAINS: When a chain is specified, all the links along the chain (including endpoints) are included in the group. Additionally, all the joints that are parents to included links are also included. This means that joints along the chain and the parent joint of the base link are included in the group-->
<!--SUBGROUPS: Groups can also be formed by referencing to already defined group names-->
<group name="cybertech_arm">
<chain base_link="${prefix}base_link" tip_link="${prefix}flange" />
<group name="${prefix}kr_arm">
<chain base_link="${prefix}base_link" tip_link="${prefix}tool0" />
</group>
<!--Add flange as end effector to be able to use moveit_visual_tools for visualising end effector path-->
<group name="end_effector">
<link name="${prefix}flange"/>
<!--Add tool0 as end effector to be able to use moveit_visual_tools for visualising end effector path-->
<group name="${prefix}end_effector">
<link name="${prefix}tool0"/>
</group>
<!--GROUP STATES: Purpose: Define a named state for a particular group, in terms of joint values. This is useful to define states like 'folded arms'-->
<group_state name="null_pos" group="cybertech_arm">
<group_state name="null_pos" group="${prefix}kr_arm">
<joint name="${prefix}joint_a1" value="0" />
<joint name="${prefix}joint_a2" value="0" />
<joint name="${prefix}joint_a3" value="0" />
Expand All @@ -23,11 +23,8 @@
<joint name="${prefix}joint_a6" value="0" />
</group_state>

<!--VIRTUAL JOINT: Purpose: this element defines a virtual joint between a robot link and an external frame of reference (considered fixed with respect to the robot)-->
<!-- <virtual_joint name="world_joint" type="fixed" parent_frame="world" child_link="base_link" /> -->

<!--END EFFECTOR: Purpose: Represent information about an end effector.-->
<end_effector name="flange" parent_link="${prefix}flange" group="end_effector" parent_group="cybertech_arm"/>
<end_effector name="${prefix}eef" parent_link="${prefix}tool0" group="${prefix}end_effector" parent_group="${prefix}kr_arm"/>
<!--DISABLE COLLISIONS: By default it is assumed that any link of the robot could potentially come into collision with any other link in the robot. This tag disables collision checking between a specified pair of links. -->
<disable_collisions link1="${prefix}base_link_inertia" link2="${prefix}link_1" reason="Adjacent"/>
<disable_collisions link1="${prefix}link_1" link2="${prefix}link_2" reason="Adjacent"/>
Expand Down

0 comments on commit ff604a0

Please sign in to comment.