add rviz for combined modules

This commit is contained in:
ligerfotis 2024-03-19 12:18:30 +01:00
parent b97c1f94a6
commit e7d0da0c07
28 changed files with 743 additions and 21 deletions

View File

@ -3,5 +3,5 @@
<component name="Black">
<option name="sdkName" value="Python 3.10" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (UR_Robotiq)" project-jdk-type="Python SDK" />
</project>

View File

@ -1,8 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/venv" />
</content>
<content url="file:///opt/ros/humble/lib/python3.10/site-packages" />
<content url="file:///opt/ros/humble/local/lib/python3.10/dist-packages" />
<orderEntry type="jdk" jdkName="Python 3.10 (UR_Robotiq)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="PyDocumentationSettings">

66
.vscode/c_cpp_properties.json vendored Normal file
View File

@ -0,0 +1,66 @@
{
"configurations": [
{
"browse": {
"databaseFilename": "${default}",
"limitSymbolsToIncludedHeaders": false
},
"includePath": [
"/home/fotis/UR_Robotiq/install/ur_calibration/include/**",
"/home/fotis/UR_Robotiq/install/ur_robot_driver/include/**",
"/home/fotis/UR_Robotiq/install/ur_controllers/include/**",
"/home/fotis/UR_Robotiq/install/ur_dashboard_msgs/include/**",
"/home/fotis/UR_Robotiq/install/robotiq_driver/include/**",
"/home/fotis/UR_Robotiq/install/serial/include/**",
"/home/fotis/UR_Robotiq/install/robotiq_controllers/include/**",
"/home/fotis/ws_moveit2/install/pilz_industrial_motion_planner_testutils/include/**",
"/home/fotis/ws_moveit2/install/pilz_industrial_motion_planner/include/**",
"/home/fotis/ws_moveit2/install/moveit_visual_tools/include/**",
"/home/fotis/ws_moveit2/install/moveit_task_constructor_visualization/include/**",
"/home/fotis/ws_moveit2/install/moveit_task_constructor_demo/include/**",
"/home/fotis/ws_moveit2/install/moveit_task_constructor_core/include/**",
"/home/fotis/ws_moveit2/install/moveit_ros_control_interface/include/**",
"/home/fotis/ws_moveit2/install/moveit_simple_controller_manager/include/**",
"/home/fotis/ws_moveit2/install/moveit_setup_assistant/include/**",
"/home/fotis/ws_moveit2/install/moveit_setup_srdf_plugins/include/**",
"/home/fotis/ws_moveit2/install/moveit_setup_core_plugins/include/**",
"/home/fotis/ws_moveit2/install/moveit_setup_controllers/include/**",
"/home/fotis/ws_moveit2/install/moveit_setup_app_plugins/include/**",
"/home/fotis/ws_moveit2/install/moveit_setup_framework/include/**",
"/home/fotis/ws_moveit2/install/moveit_servo/include/**",
"/home/fotis/ws_moveit2/install/moveit_ros_visualization/include/**",
"/home/fotis/ws_moveit2/install/moveit_hybrid_planning/include/**",
"/home/fotis/ws_moveit2/install/moveit_ros_planning_interface/include/**",
"/home/fotis/ws_moveit2/install/moveit_ros_benchmarks/include/**",
"/home/fotis/ws_moveit2/install/moveit_ros_warehouse/include/**",
"/home/fotis/ws_moveit2/install/moveit_ros_robot_interaction/include/**",
"/home/fotis/ws_moveit2/install/moveit_ros_perception/include/**",
"/home/fotis/ws_moveit2/install/moveit_ros_move_group/include/**",
"/home/fotis/ws_moveit2/install/moveit_planners_ompl/include/**",
"/home/fotis/ws_moveit2/install/moveit_ros_planning/include/**",
"/home/fotis/ws_moveit2/install/moveit_ros_occupancy_map_monitor/include/**",
"/home/fotis/ws_moveit2/install/moveit_kinematics/include/**",
"/home/fotis/ws_moveit2/install/chomp_motion_planner/include/**",
"/home/fotis/ws_moveit2/install/moveit_core/include/**",
"/home/fotis/ws_moveit2/install/srdfdom/include/**",
"/home/fotis/ws_moveit2/install/rviz_marker_tools/include/**",
"/home/fotis/ws_moveit2/install/rosparam_shortcuts/include/**",
"/home/fotis/ws_moveit2/install/moveit_task_constructor_msgs/include/**",
"/opt/ros/humble/include/**",
"/home/fotis/UR_Robotiq/src/Universal_Robots_ROS2_Driver/ur_calibration/include/**",
"/home/fotis/UR_Robotiq/src/Universal_Robots_ROS2_Driver/ur_controllers/include/**",
"/home/fotis/UR_Robotiq/src/Universal_Robots_ROS2_Driver/ur_robot_driver/include/**",
"/home/fotis/UR_Robotiq/src/ros2_robotiq_gripper/robotiq_controllers/include/**",
"/home/fotis/UR_Robotiq/src/ros2_robotiq_gripper/robotiq_driver/include/**",
"/home/fotis/UR_Robotiq/src/serial/include/**",
"/usr/include/**"
],
"name": "ROS",
"intelliSenseMode": "gcc-x64",
"compilerPath": "/usr/bin/gcc",
"cStandard": "gnu11",
"cppStandard": "c++14"
}
],
"version": 4
}

26
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,26 @@
{
"python.autoComplete.extraPaths": [
"/home/fotis/UR_Robotiq/install/ur_robot_driver/local/lib/python3.10/dist-packages",
"/home/fotis/UR_Robotiq/install/ur_moveit_config/local/lib/python3.10/dist-packages",
"/home/fotis/UR_Robotiq/install/ur_dashboard_msgs/local/lib/python3.10/dist-packages",
"/home/fotis/UR_Robotiq/install/my-test-package/lib/python3.10/site-packages",
"/home/fotis/ws_moveit2/install/moveit_configs_utils/lib/python3.10/site-packages",
"/home/fotis/ws_moveit2/install/srdfdom/local/lib/python3.10/dist-packages",
"/home/fotis/ws_moveit2/install/moveit_task_constructor_msgs/local/lib/python3.10/dist-packages",
"/home/fotis/ws_moveit2/install/launch_param_builder/lib/python3.10/site-packages",
"/opt/ros/humble/lib/python3.10/site-packages",
"/opt/ros/humble/local/lib/python3.10/dist-packages"
],
"python.analysis.extraPaths": [
"/home/fotis/UR_Robotiq/install/ur_robot_driver/local/lib/python3.10/dist-packages",
"/home/fotis/UR_Robotiq/install/ur_moveit_config/local/lib/python3.10/dist-packages",
"/home/fotis/UR_Robotiq/install/ur_dashboard_msgs/local/lib/python3.10/dist-packages",
"/home/fotis/UR_Robotiq/install/my-test-package/lib/python3.10/site-packages",
"/home/fotis/ws_moveit2/install/moveit_configs_utils/lib/python3.10/site-packages",
"/home/fotis/ws_moveit2/install/srdfdom/local/lib/python3.10/dist-packages",
"/home/fotis/ws_moveit2/install/moveit_task_constructor_msgs/local/lib/python3.10/dist-packages",
"/home/fotis/ws_moveit2/install/launch_param_builder/lib/python3.10/site-packages",
"/opt/ros/humble/lib/python3.10/site-packages",
"/opt/ros/humble/local/lib/python3.10/dist-packages"
]
}

View File

@ -5,6 +5,10 @@ if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
install(DIRECTORY urdf/
DESTINATION share/${PROJECT_NAME}/urdf)
# find dependencies
find_package(ament_cmake REQUIRED)
# uncomment the following section in order to fill in

View File

@ -591,7 +591,7 @@
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_base_link.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_base_link.stl"/>
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1"/>
@ -600,7 +600,7 @@
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_base_link.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_base_link.stl"/>
</geometry>
</collision>
</link>
@ -618,7 +618,7 @@
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_outer_knuckle.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_outer_knuckle.stl"/>
</geometry>
<material name="">
<color rgba="0.792156862745098 0.819607843137255 0.933333333333333 1"/>
@ -627,7 +627,7 @@
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_outer_knuckle.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_outer_knuckle.stl"/>
</geometry>
</collision>
</link>
@ -640,7 +640,7 @@
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_outer_finger.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_outer_finger.stl"/>
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1"/>
@ -649,7 +649,7 @@
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_outer_finger.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_outer_finger.stl"/>
</geometry>
</collision>
</link>
@ -662,7 +662,7 @@
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_inner_finger.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_inner_finger.stl"/>
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1"/>
@ -671,7 +671,7 @@
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_inner_finger.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_inner_finger.stl"/>
</geometry>
</collision>
</link>
@ -704,7 +704,7 @@
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_inner_knuckle.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_inner_knuckle.stl"/>
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1"/>
@ -713,7 +713,7 @@
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_inner_knuckle.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_inner_knuckle.stl"/>
</geometry>
</collision>
</link>
@ -726,7 +726,7 @@
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_outer_knuckle.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_outer_knuckle.stl"/>
</geometry>
<material name="">
<color rgba="0.792156862745098 0.819607843137255 0.933333333333333 1"/>
@ -735,7 +735,7 @@
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_outer_knuckle.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_outer_knuckle.stl"/>
</geometry>
</collision>
</link>
@ -748,7 +748,7 @@
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_outer_finger.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_outer_finger.stl"/>
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1"/>
@ -757,7 +757,7 @@
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_outer_finger.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_outer_finger.stl"/>
</geometry>
</collision>
</link>
@ -770,7 +770,7 @@
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_inner_finger.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_inner_finger.stl"/>
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1"/>
@ -779,7 +779,7 @@
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_inner_finger.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_inner_finger.stl"/>
</geometry>
</collision>
</link>
@ -812,7 +812,7 @@
<visual>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_inner_knuckle.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/visual/2f_140/robotiq_2f_140_inner_knuckle.stl"/>
</geometry>
<material name="">
<color rgba="0.1 0.1 0.1 1"/>
@ -821,7 +821,7 @@
<collision>
<origin rpy="0 0 0" xyz="0 0 0"/>
<geometry>
<mesh filename="file:///home/niko/PycharmProjects/ws_universal_robotics/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_inner_knuckle.stl"/>
<mesh filename="file:///home/fotis/UR_Robotiq/install/robotiq_description/share/robotiq_description/meshes/collision/2f_140/robotiq_2f_140_inner_knuckle.stl"/>
</geometry>
</collision>
</link>

View File

@ -0,0 +1,27 @@
moveit_setup_assistant_config:
urdf:
package: ur_robotiq_description
relative_path: urdf/ur_robotiq.urdf
srdf:
relative_path: config/ur3e_robotiq.srdf
package_settings:
author_name: Fotios Lygerakis
author_email: fotios.lygerakis@unileoben.ac.at
generated_timestamp: 1709822028
control_xacro:
command:
- position
- velocity
state:
- position
- velocity
modified_urdf:
xacros:
- control_xacro
control_xacro:
command:
- position
- velocity
state:
- position
- velocity

View File

@ -0,0 +1,11 @@
cmake_minimum_required(VERSION 3.22)
project(ur_robotiq_moveit_config)
find_package(ament_cmake REQUIRED)
ament_package()
install(DIRECTORY launch DESTINATION share/${PROJECT_NAME}
PATTERN "setup_assistant.launch" EXCLUDE)
install(DIRECTORY config DESTINATION share/${PROJECT_NAME})
install(FILES .setup_assistant DESTINATION share/${PROJECT_NAME})

View File

@ -0,0 +1,10 @@
# Default initial positions for ur3e_robotiq's ros2_control fake system
initial_positions:
elbow_joint: 0
finger_joint: 0
shoulder_lift_joint: 0
shoulder_pan_joint: 0
wrist_1_joint: 0
wrist_2_joint: 0
wrist_3_joint: 0

View File

@ -0,0 +1,45 @@
# joint_limits.yaml allows the dynamics properties specified in the URDF to be overwritten or augmented as needed
# For beginners, we downscale velocity and acceleration limits.
# You can always specify higher scaling factors (<= 1.0) in your motion requests. # Increase the values below to 1.0 to always move at maximum speed.
default_velocity_scaling_factor: 0.1
default_acceleration_scaling_factor: 0.1
# Specific joint properties can be changed with the keys [max_position, min_position, max_velocity, max_acceleration]
# Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits]
joint_limits:
elbow_joint:
has_velocity_limits: true
max_velocity: 3.1415926535897931
has_acceleration_limits: false
max_acceleration: 0
finger_joint:
has_velocity_limits: true
max_velocity: 2
has_acceleration_limits: false
max_acceleration: 0
shoulder_lift_joint:
has_velocity_limits: true
max_velocity: 3.1415926535897931
has_acceleration_limits: false
max_acceleration: 0
shoulder_pan_joint:
has_velocity_limits: true
max_velocity: 3.1415926535897931
has_acceleration_limits: false
max_acceleration: 0
wrist_1_joint:
has_velocity_limits: true
max_velocity: 6.2831853071795862
has_acceleration_limits: false
max_acceleration: 0
wrist_2_joint:
has_velocity_limits: true
max_velocity: 6.2831853071795862
has_acceleration_limits: false
max_acceleration: 0
wrist_3_joint:
has_velocity_limits: true
max_velocity: 6.2831853071795862
has_acceleration_limits: false
max_acceleration: 0

View File

@ -0,0 +1,4 @@
arm:
kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin
kinematics_solver_search_resolution: 0.0050000000000000001
kinematics_solver_timeout: 0.0050000000000000001

View File

@ -0,0 +1,51 @@
Panels:
- Class: rviz_common/Displays
Name: Displays
Property Tree Widget:
Expanded:
- /MotionPlanning1
- Class: rviz_common/Help
Name: Help
- Class: rviz_common/Views
Name: Views
Visualization Manager:
Displays:
- Class: rviz_default_plugins/Grid
Name: Grid
Value: true
- Class: moveit_rviz_plugin/MotionPlanning
Name: MotionPlanning
Planned Path:
Loop Animation: true
State Display Time: 0.05 s
Trajectory Topic: display_planned_path
Planning Scene Topic: monitored_planning_scene
Robot Description: robot_description
Scene Geometry:
Scene Alpha: 1
Scene Robot:
Robot Alpha: 0.5
Value: true
Global Options:
Fixed Frame: world
Tools:
- Class: rviz_default_plugins/Interact
- Class: rviz_default_plugins/MoveCamera
- Class: rviz_default_plugins/Select
Value: true
Views:
Current:
Class: rviz_default_plugins/Orbit
Distance: 2.0
Focal Point:
X: -0.1
Y: 0.25
Z: 0.30
Name: Current View
Pitch: 0.5
Target Frame: world
Yaw: -0.623
Window Geometry:
Height: 975
QMainWindow State: 000000ff00000000fd0000000100000000000002b400000375fc0200000005fb00000044004d006f00740069006f006e0050006c0061006e006e0069006e00670020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000004100fffffffb000000100044006900730070006c006100790073010000003d00000123000000c900fffffffb0000001c004d006f00740069006f006e0050006c0061006e006e0069006e00670100000166000001910000018800fffffffb0000000800480065006c0070000000029a0000006e0000006e00fffffffb0000000a0056006900650077007301000002fd000000b5000000a400ffffff000001f60000037500000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000
Width: 1200

View File

@ -0,0 +1,26 @@
# MoveIt uses this configuration for controller management
moveit_controller_manager: moveit_simple_controller_manager/MoveItSimpleControllerManager
moveit_simple_controller_manager:
controller_names:
- arm_controller
- gripper_controller
arm_controller:
type: FollowJointTrajectory
action_ns: follow_joint_trajectory
default: true
joints:
- shoulder_pan_joint
- shoulder_lift_joint
- elbow_joint
- wrist_1_joint
- wrist_2_joint
- wrist_3_joint
gripper_controller:
type: FollowJointTrajectory
action_ns: follow_joint_trajectory
default: true
joints:
- finger_joint

View File

@ -0,0 +1,6 @@
# Limits for the Pilz planner
cartesian_limits:
max_trans_vel: 1.0
max_trans_acc: 2.25
max_trans_dec: -5.0
max_rot_vel: 1.57

View File

@ -0,0 +1,41 @@
# This config file is used by ros2_control
controller_manager:
ros__parameters:
update_rate: 100 # Hz
arm_controller:
type: joint_trajectory_controller/JointTrajectoryController
gripper_controller:
type: joint_trajectory_controller/JointTrajectoryController
joint_state_broadcaster:
type: joint_state_broadcaster/JointStateBroadcaster
arm_controller:
ros__parameters:
joints:
- shoulder_pan_joint
- shoulder_lift_joint
- elbow_joint
- wrist_1_joint
- wrist_2_joint
- wrist_3_joint
command_interfaces:
- position
- velocity
state_interfaces:
- position
- velocity
gripper_controller:
ros__parameters:
joints:
- finger_joint
command_interfaces:
- position
- velocity
state_interfaces:
- position
- velocity

View File

@ -0,0 +1,70 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro">
<xacro:macro name="ur3e_robotiq_ros2_control" params="name initial_positions_file">
<xacro:property name="initial_positions" value="${load_yaml(initial_positions_file)['initial_positions']}"/>
<ros2_control name="${name}" type="system">
<hardware>
<!-- By default, set up controllers for simulation. This won't work on real hardware -->
<plugin>mock_components/GenericSystem</plugin>
</hardware>
<joint name="shoulder_pan_joint">
<command_interface name="position"/>
<command_interface name="velocity"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['shoulder_pan_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
<joint name="shoulder_lift_joint">
<command_interface name="position"/>
<command_interface name="velocity"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['shoulder_lift_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
<joint name="elbow_joint">
<command_interface name="position"/>
<command_interface name="velocity"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['elbow_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
<joint name="wrist_1_joint">
<command_interface name="position"/>
<command_interface name="velocity"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['wrist_1_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
<joint name="wrist_2_joint">
<command_interface name="position"/>
<command_interface name="velocity"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['wrist_2_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
<joint name="wrist_3_joint">
<command_interface name="position"/>
<command_interface name="velocity"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['wrist_3_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
<joint name="finger_joint">
<command_interface name="position"/>
<command_interface name="velocity"/>
<state_interface name="position">
<param name="initial_value">${initial_positions['finger_joint']}</param>
</state_interface>
<state_interface name="velocity"/>
</joint>
</ros2_control>
</xacro:macro>
</robot>

View File

@ -0,0 +1,164 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--This does not replace URDF, and is not an extension of URDF.
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 name="ur3e_robotiq">
<!--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="arm">
<joint name="shoulder_pan_joint"/>
<joint name="shoulder_lift_joint"/>
<joint name="elbow_joint"/>
<joint name="wrist_1_joint"/>
<joint name="wrist_2_joint"/>
<joint name="wrist_3_joint"/>
</group>
<group name="gripper">
<joint name="finger_joint"/>
</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="arm_default" group="arm">
<joint name="elbow_joint" value="0"/>
<joint name="shoulder_lift_joint" value="0"/>
<joint name="shoulder_pan_joint" value="0"/>
<joint name="wrist_1_joint" value="0"/>
<joint name="wrist_2_joint" value="0"/>
<joint name="wrist_3_joint" value="0"/>
</group_state>
<group_state name="arm_up" group="arm">
<joint name="elbow_joint" value="0"/>
<joint name="shoulder_lift_joint" value="-1.57"/>
<joint name="shoulder_pan_joint" value="0"/>
<joint name="wrist_1_joint" value="0"/>
<joint name="wrist_2_joint" value="0"/>
<joint name="wrist_3_joint" value="0"/>
</group_state>
<group_state name="gripper_open" group="gripper">
<joint name="finger_joint" value="0"/>
</group_state>
<group_state name="gripper_closed" group="gripper">
<joint name="finger_joint" value="0.7"/>
</group_state>
<!--END EFFECTOR: Purpose: Represent information about an end effector.-->
<end_effector name="ee" parent_link="wrist_3_link" group="gripper" parent_group="arm"/>
<!--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="virtual_base" type="fixed" parent_frame="world" child_link="base_link"/>
<!--PASSIVE JOINT: Purpose: this element is used to mark joints that are not actuated-->
<passive_joint name="left_inner_finger_joint"/>
<passive_joint name="left_inner_knuckle_joint"/>
<passive_joint name="right_inner_knuckle_joint"/>
<passive_joint name="right_outer_knuckle_joint"/>
<passive_joint name="right_inner_finger_joint"/>
<!--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="base_link_inertia" link2="shoulder_link" reason="Adjacent"/>
<disable_collisions link1="base_link_inertia" link2="upper_arm_link" reason="Never"/>
<disable_collisions link1="base_link_inertia" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="base_link_inertia" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="forearm_link" link2="upper_arm_link" reason="Adjacent"/>
<disable_collisions link1="forearm_link" link2="wrist_1_link" reason="Adjacent"/>
<disable_collisions link1="left_inner_finger" link2="left_inner_finger" reason="Default"/>
<disable_collisions link1="left_inner_finger" link2="left_inner_finger_pad" reason="Adjacent"/>
<disable_collisions link1="left_inner_finger" link2="left_inner_knuckle" reason="Default"/>
<disable_collisions link1="left_inner_finger" link2="left_outer_finger" reason="Adjacent"/>
<disable_collisions link1="left_inner_finger" link2="left_outer_knuckle" reason="Never"/>
<disable_collisions link1="left_inner_finger" link2="right_inner_finger" reason="Never"/>
<disable_collisions link1="left_inner_finger" link2="right_inner_finger_pad" reason="Never"/>
<disable_collisions link1="left_inner_finger" link2="right_inner_knuckle" reason="Never"/>
<disable_collisions link1="left_inner_finger" link2="right_outer_finger" reason="Never"/>
<disable_collisions link1="left_inner_finger" link2="right_outer_knuckle" reason="Never"/>
<disable_collisions link1="left_inner_finger" link2="robotiq_140_base_link" reason="Never"/>
<disable_collisions link1="left_inner_finger" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="left_inner_finger" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="left_inner_finger" link2="wrist_3_link" reason="Never"/>
<disable_collisions link1="left_inner_finger_pad" link2="left_inner_finger_pad" reason="Default"/>
<disable_collisions link1="left_inner_finger_pad" link2="left_outer_knuckle" reason="Never"/>
<disable_collisions link1="left_inner_finger_pad" link2="right_inner_finger" reason="Never"/>
<disable_collisions link1="left_inner_finger_pad" link2="right_inner_knuckle" reason="Never"/>
<disable_collisions link1="left_inner_finger_pad" link2="right_outer_finger" reason="Never"/>
<disable_collisions link1="left_inner_finger_pad" link2="right_outer_knuckle" reason="Never"/>
<disable_collisions link1="left_inner_finger_pad" link2="robotiq_140_base_link" reason="Never"/>
<disable_collisions link1="left_inner_finger_pad" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="left_inner_finger_pad" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="left_inner_finger_pad" link2="wrist_3_link" reason="Never"/>
<disable_collisions link1="left_inner_knuckle" link2="left_inner_knuckle" reason="Default"/>
<disable_collisions link1="left_inner_knuckle" link2="left_outer_knuckle" reason="Default"/>
<disable_collisions link1="left_inner_knuckle" link2="right_inner_finger" reason="Never"/>
<disable_collisions link1="left_inner_knuckle" link2="right_inner_finger_pad" reason="Never"/>
<disable_collisions link1="left_inner_knuckle" link2="right_inner_knuckle" reason="Never"/>
<disable_collisions link1="left_inner_knuckle" link2="right_outer_finger" reason="Never"/>
<disable_collisions link1="left_inner_knuckle" link2="right_outer_knuckle" reason="Never"/>
<disable_collisions link1="left_inner_knuckle" link2="robotiq_140_base_link" reason="Adjacent"/>
<disable_collisions link1="left_inner_knuckle" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="left_inner_knuckle" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="left_inner_knuckle" link2="wrist_3_link" reason="Never"/>
<disable_collisions link1="left_outer_finger" link2="left_outer_finger" reason="Default"/>
<disable_collisions link1="left_outer_finger" link2="left_outer_knuckle" reason="Adjacent"/>
<disable_collisions link1="left_outer_finger" link2="right_inner_finger" reason="Never"/>
<disable_collisions link1="left_outer_finger" link2="right_inner_finger_pad" reason="Never"/>
<disable_collisions link1="left_outer_finger" link2="right_inner_knuckle" reason="Never"/>
<disable_collisions link1="left_outer_finger" link2="right_outer_finger" reason="Never"/>
<disable_collisions link1="left_outer_finger" link2="right_outer_knuckle" reason="Never"/>
<disable_collisions link1="left_outer_finger" link2="robotiq_140_base_link" reason="Never"/>
<disable_collisions link1="left_outer_finger" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="left_outer_finger" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="left_outer_finger" link2="wrist_3_link" reason="Never"/>
<disable_collisions link1="left_outer_knuckle" link2="left_outer_knuckle" reason="Default"/>
<disable_collisions link1="left_outer_knuckle" link2="right_inner_finger" reason="Never"/>
<disable_collisions link1="left_outer_knuckle" link2="right_inner_finger_pad" reason="Never"/>
<disable_collisions link1="left_outer_knuckle" link2="right_inner_knuckle" reason="Never"/>
<disable_collisions link1="left_outer_knuckle" link2="right_outer_finger" reason="Never"/>
<disable_collisions link1="left_outer_knuckle" link2="right_outer_knuckle" reason="Never"/>
<disable_collisions link1="left_outer_knuckle" link2="robotiq_140_base_link" reason="Adjacent"/>
<disable_collisions link1="left_outer_knuckle" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="left_outer_knuckle" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="left_outer_knuckle" link2="wrist_3_link" reason="Never"/>
<disable_collisions link1="right_inner_finger" link2="right_inner_finger" reason="Default"/>
<disable_collisions link1="right_inner_finger" link2="right_inner_finger_pad" reason="Adjacent"/>
<disable_collisions link1="right_inner_finger" link2="right_inner_knuckle" reason="Default"/>
<disable_collisions link1="right_inner_finger" link2="right_outer_finger" reason="Adjacent"/>
<disable_collisions link1="right_inner_finger" link2="right_outer_knuckle" reason="Never"/>
<disable_collisions link1="right_inner_finger" link2="robotiq_140_base_link" reason="Never"/>
<disable_collisions link1="right_inner_finger" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="right_inner_finger" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="right_inner_finger" link2="wrist_3_link" reason="Never"/>
<disable_collisions link1="right_inner_finger_pad" link2="right_inner_finger_pad" reason="Default"/>
<disable_collisions link1="right_inner_finger_pad" link2="right_inner_knuckle" reason="Never"/>
<disable_collisions link1="right_inner_finger_pad" link2="right_outer_finger" reason="Never"/>
<disable_collisions link1="right_inner_finger_pad" link2="right_outer_knuckle" reason="Never"/>
<disable_collisions link1="right_inner_finger_pad" link2="robotiq_140_base_link" reason="Never"/>
<disable_collisions link1="right_inner_finger_pad" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="right_inner_finger_pad" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="right_inner_finger_pad" link2="wrist_3_link" reason="Never"/>
<disable_collisions link1="right_inner_knuckle" link2="right_inner_knuckle" reason="Default"/>
<disable_collisions link1="right_inner_knuckle" link2="right_outer_finger" reason="Never"/>
<disable_collisions link1="right_inner_knuckle" link2="right_outer_knuckle" reason="Default"/>
<disable_collisions link1="right_inner_knuckle" link2="robotiq_140_base_link" reason="Adjacent"/>
<disable_collisions link1="right_inner_knuckle" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="right_inner_knuckle" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="right_inner_knuckle" link2="wrist_3_link" reason="Never"/>
<disable_collisions link1="right_outer_finger" link2="right_outer_finger" reason="Default"/>
<disable_collisions link1="right_outer_finger" link2="right_outer_knuckle" reason="Adjacent"/>
<disable_collisions link1="right_outer_finger" link2="robotiq_140_base_link" reason="Never"/>
<disable_collisions link1="right_outer_finger" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="right_outer_finger" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="right_outer_finger" link2="wrist_3_link" reason="Never"/>
<disable_collisions link1="right_outer_knuckle" link2="right_outer_knuckle" reason="Default"/>
<disable_collisions link1="right_outer_knuckle" link2="robotiq_140_base_link" reason="Adjacent"/>
<disable_collisions link1="right_outer_knuckle" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="right_outer_knuckle" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="right_outer_knuckle" link2="wrist_3_link" reason="Never"/>
<disable_collisions link1="robotiq_140_base_link" link2="robotiq_140_base_link" reason="Adjacent"/>
<disable_collisions link1="robotiq_140_base_link" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="robotiq_140_base_link" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="robotiq_140_base_link" link2="wrist_3_link" reason="Adjacent"/>
<disable_collisions link1="shoulder_link" link2="upper_arm_link" reason="Adjacent"/>
<disable_collisions link1="shoulder_link" link2="wrist_1_link" reason="Never"/>
<disable_collisions link1="shoulder_link" link2="wrist_2_link" reason="Never"/>
<disable_collisions link1="wrist_1_link" link2="wrist_2_link" reason="Adjacent"/>
<disable_collisions link1="wrist_1_link" link2="wrist_3_link" reason="Never"/>
<disable_collisions link1="wrist_2_link" link2="wrist_3_link" reason="Adjacent"/>
</robot>

View File

@ -0,0 +1,14 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="ur3e_robotiq">
<xacro:arg name="initial_positions_file" default="initial_positions.yaml" />
<!-- Import ur3e_robotiq urdf file -->
<xacro:include filename="$(find ur_robotiq_description)/urdf/ur_robotiq.urdf" />
<!-- Import control_xacro -->
<xacro:include filename="ur3e_robotiq.ros2_control.xacro" />
<xacro:ur3e_robotiq_ros2_control name="FakeSystem" initial_positions_file="$(arg initial_positions_file)"/>
</robot>

View File

@ -0,0 +1,9 @@
from moveit_configs_utils import MoveItConfigsBuilder
from moveit_configs_utils.launches import generate_demo_launch
def generate_launch_description():
builder = MoveItConfigsBuilder("ur3_robotiq_2f_140.urdf", robot_description= "urdf/ur_robotiq.urdf", package_name="ur_robotiq_moveit_config")
print(builder)
moveit_config = builder.to_moveit_configs()
return generate_demo_launch(moveit_config)

View File

@ -0,0 +1,7 @@
from moveit_configs_utils import MoveItConfigsBuilder
from moveit_configs_utils.launches import generate_move_group_launch
def generate_launch_description():
moveit_config = MoveItConfigsBuilder("ur3e_robotiq", package_name="ur_robotiq_moveit_config").to_moveit_configs()
return generate_move_group_launch(moveit_config)

View File

@ -0,0 +1,9 @@
from moveit_configs_utils import MoveItConfigsBuilder
from moveit_configs_utils.launches import generate_moveit_rviz_launch
def generate_launch_description():
moveit_config = MoveItConfigsBuilder("ur3e_robotiq", package_name="ur_robotiq_moveit_config").to_moveit_configs()
print(moveit_config.robot_description_kinematics)
return generate_moveit_rviz_launch(moveit_config)

View File

@ -0,0 +1,7 @@
from moveit_configs_utils import MoveItConfigsBuilder
from moveit_configs_utils.launches import generate_rsp_launch
def generate_launch_description():
moveit_config = MoveItConfigsBuilder("ur3e_robotiq", package_name="ur_robotiq_moveit_config").to_moveit_configs()
return generate_rsp_launch(moveit_config)

View File

@ -0,0 +1,7 @@
from moveit_configs_utils import MoveItConfigsBuilder
from moveit_configs_utils.launches import generate_setup_assistant_launch
def generate_launch_description():
moveit_config = MoveItConfigsBuilder("ur3e_robotiq", package_name="ur_robotiq_moveit_config").to_moveit_configs()
return generate_setup_assistant_launch(moveit_config)

View File

@ -0,0 +1,7 @@
from moveit_configs_utils import MoveItConfigsBuilder
from moveit_configs_utils.launches import generate_spawn_controllers_launch
def generate_launch_description():
moveit_config = MoveItConfigsBuilder("ur3e_robotiq", package_name="ur_robotiq_moveit_config").to_moveit_configs()
return generate_spawn_controllers_launch(moveit_config)

View File

@ -0,0 +1,7 @@
from moveit_configs_utils import MoveItConfigsBuilder
from moveit_configs_utils.launches import generate_static_virtual_joint_tfs_launch
def generate_launch_description():
moveit_config = MoveItConfigsBuilder("ur3e_robotiq", package_name="ur_robotiq_moveit_config").to_moveit_configs()
return generate_static_virtual_joint_tfs_launch(moveit_config)

View File

@ -0,0 +1,40 @@
from launch import LaunchDescription
from launch_ros.actions import Node
import os
from ament_index_python.packages import get_package_share_directory
import xacro
def generate_launch_description():
# Define the path to the Xacro file
ur_robotiq_desc_pkg_path = get_package_share_directory('ur_robotiq_description')
xacro_file_path = os.path.join(ur_robotiq_desc_pkg_path, 'urdf', 'ur_robotiq.urdf.xacro')
# Process the Xacro file to generate URDF
doc = xacro.process_file(xacro_file_path)
robot_description = {'robot_description': doc.toxml()}
# Node to publish robot state to TF
robot_state_publisher_node = Node(
package='robot_state_publisher',
executable='robot_state_publisher',
output='both',
parameters=[robot_description],
)
# Node to launch RViz
rviz_node = Node(
package='rviz2',
executable='rviz2',
name='rviz2',
arguments=['-d', os.path.join(ur_robotiq_desc_pkg_path, 'rviz', 'ur3e_robotiq.rviz')],
output='screen'
)
# Define and return LaunchDescription
return LaunchDescription([
robot_state_publisher_node,
rviz_node,
# Add other necessary nodes and configurations here
])

View File

@ -0,0 +1,7 @@
from moveit_configs_utils import MoveItConfigsBuilder
from moveit_configs_utils.launches import generate_warehouse_db_launch
def generate_launch_description():
moveit_config = MoveItConfigsBuilder("ur3e_robotiq", package_name="ur_robotiq_moveit_config").to_moveit_configs()
return generate_warehouse_db_launch(moveit_config)

View File

@ -0,0 +1,53 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>ur_robotiq_moveit_config</name>
<version>0.3.0</version>
<description>
An automatically generated package with all the configuration and launch files for using the ur3e_robotiq with the MoveIt Motion Planning Framework
</description>
<maintainer email="fotios.lygerakis@unileoben.ac.at">Fotios Lygerakis</maintainer>
<license>BSD</license>
<url type="website">http://moveit.ros.org/</url>
<url type="bugtracker">https://github.com/ros-planning/moveit2/issues</url>
<url type="repository">https://github.com/ros-planning/moveit2</url>
<author email="fotios.lygerakis@unileoben.ac.at">Fotios Lygerakis</author>
<buildtool_depend>ament_cmake</buildtool_depend>
<exec_depend>moveit_ros_move_group</exec_depend>
<exec_depend>moveit_kinematics</exec_depend>
<exec_depend>moveit_planners</exec_depend>
<exec_depend>moveit_simple_controller_manager</exec_depend>
<exec_depend>joint_state_publisher</exec_depend>
<exec_depend>joint_state_publisher_gui</exec_depend>
<exec_depend>tf2_ros</exec_depend>
<exec_depend>xacro</exec_depend>
<!-- The next 2 packages are required for the gazebo simulation.
We don't include them by default to prevent installing gazebo and all its dependencies. -->
<!-- <exec_depend>joint_trajectory_controller</exec_depend> -->
<!-- <exec_depend>gazebo_ros_control</exec_depend> -->
<exec_depend>controller_manager</exec_depend>
<exec_depend>moveit_configs_utils</exec_depend>
<exec_depend>moveit_ros_move_group</exec_depend>
<exec_depend>moveit_ros_visualization</exec_depend>
<exec_depend>moveit_ros_warehouse</exec_depend>
<exec_depend>moveit_setup_assistant</exec_depend>
<exec_depend>robot_state_publisher</exec_depend>
<exec_depend>rviz2</exec_depend>
<exec_depend>rviz_common</exec_depend>
<exec_depend>rviz_default_plugins</exec_depend>
<exec_depend>tf2_ros</exec_depend>
<exec_depend>ur_robotiq_description</exec_depend>
<exec_depend>warehouse_ros_mongo</exec_depend>
<exec_depend>xacro</exec_depend>
<exec_depend>ament_index_python</exec_depend>
<export>
<build_type>ament_cmake</build_type>
</export>
</package>