diff --git a/robot_specific_config/abb_irb14000_support/CMakeLists.txt b/robot_specific_config/abb_irb14000_support/CMakeLists.txt new file mode 100644 index 0000000..e122504 --- /dev/null +++ b/robot_specific_config/abb_irb14000_support/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 3.10.2) + +project(abb_irb14000_support) + +find_package(ament_cmake REQUIRED) + +ament_package() + +install(DIRECTORY launch meshes rviz urdf + DESTINATION share/${PROJECT_NAME}) diff --git a/robot_specific_config/abb_irb14000_support/launch/view_robot.launch.py b/robot_specific_config/abb_irb14000_support/launch/view_robot.launch.py new file mode 100644 index 0000000..5f3ef1b --- /dev/null +++ b/robot_specific_config/abb_irb14000_support/launch/view_robot.launch.py @@ -0,0 +1,68 @@ +import os +import yaml +from launch import LaunchDescription +from launch_ros.actions import Node +from ament_index_python.packages import get_package_share_directory +import xacro + + +def load_file(package_name, file_path): + package_path = get_package_share_directory(package_name) + absolute_file_path = os.path.join(package_path, file_path) + + try: + with open(absolute_file_path, "r") as file: + return file.read() + except EnvironmentError: # parent of IOError, OSError *and* WindowsError where available + return None + + +def load_yaml(package_name, file_path): + package_path = get_package_share_directory(package_name) + absolute_file_path = os.path.join(package_path, file_path) + + try: + with open(absolute_file_path, "r") as file: + return yaml.safe_load(file) + except EnvironmentError: # parent of IOError, OSError *and* WindowsError where available + return None + + +def generate_launch_description(): + + robot_description_path = get_package_share_directory("abb_irb14000_support") + + robot_description_config = xacro.process_file( + os.path.join( + robot_description_path, + "urdf", + "irb14000.urdf.xacro", + ) + ) + robot_description = {"robot_description": robot_description_config.toxml()} + + robot_state_publisher_node = Node( + package="robot_state_publisher", + executable="robot_state_publisher", + output="both", + parameters=[robot_description], + ) + + joint_state_sliders = Node( + package="joint_state_publisher_gui", + executable="joint_state_publisher_gui", + name="joint_state_publisher_gui", + ) + + rviz = Node( + package="rviz2", + executable="rviz2", + name="rviz2", + arguments=[ + "-d", + os.path.join(robot_description_path, "rviz", "urdf_description.rviz"), + ], + output="screen", + ) + + return LaunchDescription([robot_state_publisher_node, joint_state_sliders, rviz]) diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/body.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/body.stl new file mode 100644 index 0000000..32453ff Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/body.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_1.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_1.stl new file mode 100644 index 0000000..94df899 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_1.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_2.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_2.stl new file mode 100644 index 0000000..ffd6500 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_2.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_3.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_3.stl new file mode 100644 index 0000000..64a4aa9 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_3.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_4.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_4.stl new file mode 100644 index 0000000..2ac953d Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_4.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_5.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_5.stl new file mode 100644 index 0000000..3f74a71 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_5.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_6.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_6.stl new file mode 100644 index 0000000..b3439db Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_6.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_7.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_7.stl new file mode 100644 index 0000000..c3ed7c6 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/collision/link_7.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/body.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/body.stl new file mode 100644 index 0000000..bbec079 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/body.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_1.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_1.stl new file mode 100644 index 0000000..2992d00 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_1.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_2.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_2.stl new file mode 100644 index 0000000..f907532 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_2.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_3.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_3.stl new file mode 100644 index 0000000..ce2c1c6 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_3.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_4.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_4.stl new file mode 100644 index 0000000..fb713a2 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_4.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_5.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_5.stl new file mode 100644 index 0000000..d4569e3 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_5.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_6.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_6.stl new file mode 100644 index 0000000..e270464 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_6.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_7.stl b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_7.stl new file mode 100644 index 0000000..babc3c0 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/irb14000/visual/link_7.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/collision/base.stl b/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/collision/base.stl new file mode 100644 index 0000000..81e64db Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/collision/base.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/collision/finger.stl b/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/collision/finger.stl new file mode 100644 index 0000000..b74c695 Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/collision/finger.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/visual/base.stl b/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/visual/base.stl new file mode 100644 index 0000000..7ee469f Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/visual/base.stl differ diff --git a/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/visual/finger.stl b/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/visual/finger.stl new file mode 100644 index 0000000..1f250df Binary files /dev/null and b/robot_specific_config/abb_irb14000_support/meshes/smart_gripper/visual/finger.stl differ diff --git a/robot_specific_config/abb_irb14000_support/package.xml b/robot_specific_config/abb_irb14000_support/package.xml new file mode 100644 index 0000000..220ad0f --- /dev/null +++ b/robot_specific_config/abb_irb14000_support/package.xml @@ -0,0 +1,49 @@ + + + abb_irb14000_support + 0.0.0 + + +

+ ROS-Industrial support for the ABB IRB 14000. +

+

+ This package contains configuration data, 3D models and launch files + for the ABB IRB 14000 robot. +

+

+ Joint limits and max joint velocities are based on the information in the + ABB IRB 14000 Product specification, document ID: 3HAC052982-001, Dec 2024. + All urdfs / xacros are based on the default motion and joint velocity + limits, unless noted otherwise (ie: no support for high speed joints, + extended / limited motion ranges or other options). +

+

+ Note: Maximum joint effort values do not correspond to real world limits + of the robot. The current values were chosen to accommodate simulation, + but are fictional values. +

+

+ Before using any of the configuration files and / or meshes included + in this package, be sure to check they are correct for the particular + robot model and configuration you intend to use them with. +

+
+ + Gal Gorjup + Gal Gorjup + + Apache2 + + ament_cmake + + abb_resources + joint_state_publisher_gui + robot_state_publisher + rviz2 + xacro + + + ament_cmake + +
diff --git a/robot_specific_config/abb_irb14000_support/rviz/urdf_description.rviz b/robot_specific_config/abb_irb14000_support/rviz/urdf_description.rviz new file mode 100644 index 0000000..787e978 --- /dev/null +++ b/robot_specific_config/abb_irb14000_support/rviz/urdf_description.rviz @@ -0,0 +1,164 @@ +Panels: + - Class: rviz_common/Displays + Help Height: 78 + Name: Displays + Property Tree Widget: + Expanded: ~ + Splitter Ratio: 0.6000000238418579 + Tree Height: 844 + - Class: rviz_common/Selection + Name: Selection + - Class: rviz_common/Tool Properties + Expanded: + - /2D Pose Estimate1 + - /Publish Point1 + Name: Tool Properties + Splitter Ratio: 0.5886790156364441 + - Class: rviz_common/Views + Expanded: + - /Current View1 + Name: Views + Splitter Ratio: 0.5 +Visualization Manager: + Class: "" + Displays: + - Alpha: 0.5 + Cell Size: 1 + Class: rviz_default_plugins/Grid + Color: 160; 160; 164 + Enabled: true + Line Style: + Line Width: 0.029999999329447746 + Value: Lines + Name: Grid + Normal Cell Count: 0 + Offset: + X: 0 + Y: 0 + Z: 0 + Plane: XY + Plane Cell Count: 10 + Reference Frame: + Value: true + - Alpha: 1 + Class: rviz_default_plugins/RobotModel + Collision Enabled: false + Description File: "" + Description Source: Topic + Description Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /robot_description + Enabled: true + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + Mass Properties: + Inertia: false + Mass: false + Name: RobotModel + TF Prefix: "" + Update Interval: 0 + Value: true + Visual Enabled: true + - Class: rviz_default_plugins/TF + Enabled: true + Filter (blacklist): "" + Filter (whitelist): "" + Frame Timeout: 15 + Frames: + All Enabled: true + Marker Scale: 0.2 + Name: TF + Show Arrows: true + Show Axes: true + Show Names: false + Update Interval: 0 + Value: true + Enabled: true + Global Options: + Background Color: 48; 48; 48 + Fixed Frame: base_link + Frame Rate: 30 + Name: root + Tools: + - Class: rviz_default_plugins/Interact + Hide Inactive Objects: true + - Class: rviz_default_plugins/MoveCamera + - Class: rviz_default_plugins/Select + - Class: rviz_default_plugins/FocusCamera + - Class: rviz_default_plugins/Measure + Line color: 128; 128; 0 + - Class: rviz_default_plugins/SetInitialPose + Covariance x: 0.25 + Covariance y: 0.25 + Covariance yaw: 0.06853891909122467 + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /initialpose + - Class: rviz_default_plugins/SetGoal + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /move_base_simple/goal + - Class: rviz_default_plugins/PublishPoint + Single click: true + Topic: + Depth: 5 + Durability Policy: Volatile + History Policy: Keep Last + Reliability Policy: Reliable + Value: /clicked_point + Transformation: + Current: + Class: rviz_default_plugins/TF + Value: true + Views: + Current: + Class: rviz_default_plugins/Orbit + Distance: 2 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Focal Point: + X: 0 + Y: 0 + Z: 0.4 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.7449995279312134 + Target Frame: + Value: Orbit (rviz) + Yaw: 0.6450008153915405 + Saved: ~ +Window Geometry: + Displays: + collapsed: false + Height: 1080 + Hide Left Dock: false + Hide Right Dock: false + QMainWindow State: 000000ff00000000fd0000000400000000000001b6000003dafc020000000afb0000001200530065006c0065006300740069006f006e000000003d000003b90000005d00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003f000003da000000cc00fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000000000000000fb00000012004c0069006e006500500061006e0065006c010000003b000002ff0000000000000000000000010000010f000002fffc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003b000002ff000000a900fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e100000197000000030000073d00000044fc0100000002fb0000000800540069006d006501000000000000073d0000000000000000fb0000000800540069006d00650100000000000004500000000000000000000005c4000003da00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Selection: + collapsed: false + Tool Properties: + collapsed: false + Views: + collapsed: false + Width: 1920 + X: 66 + Y: 27 diff --git a/robot_specific_config/abb_irb14000_support/urdf/irb14000.urdf.xacro b/robot_specific_config/abb_irb14000_support/urdf/irb14000.urdf.xacro new file mode 100644 index 0000000..2a5d47e --- /dev/null +++ b/robot_specific_config/abb_irb14000_support/urdf/irb14000.urdf.xacro @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/robot_specific_config/abb_irb14000_support/urdf/irb14000_arm_macro.xacro b/robot_specific_config/abb_irb14000_support/urdf/irb14000_arm_macro.xacro new file mode 100644 index 0000000..46f30b6 --- /dev/null +++ b/robot_specific_config/abb_irb14000_support/urdf/irb14000_arm_macro.xacro @@ -0,0 +1,235 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/robot_specific_config/abb_irb14000_support/urdf/irb14000_macro.xacro b/robot_specific_config/abb_irb14000_support/urdf/irb14000_macro.xacro new file mode 100644 index 0000000..189d0df --- /dev/null +++ b/robot_specific_config/abb_irb14000_support/urdf/irb14000_macro.xacro @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/robot_specific_config/abb_irb14000_support/urdf/irb14000_ros2_control.xacro b/robot_specific_config/abb_irb14000_support/urdf/irb14000_ros2_control.xacro new file mode 100644 index 0000000..565be5a --- /dev/null +++ b/robot_specific_config/abb_irb14000_support/urdf/irb14000_ros2_control.xacro @@ -0,0 +1,166 @@ + + + + + + + + + mock_components/GenericSystem + false + 0.0 + + + + abb_hardware_interface/ABBSystemHardware + ${rws_port} + ${rws_ip} + + 6511 + 6512 + + + + + + + 0.0 + + + 0.0 + + + + + + + ${radians(-130)} + + + 0.0 + + + + + + + ${radians(135)} + + + 0.0 + + + + + + + ${radians(30)} + + + 0.0 + + + + + + + 0.0 + + + 0.0 + + + + + + + ${radians(40)} + + + 0.0 + + + + + + + 0.0 + + + 0.0 + + + + + + + 0.0 + + + 0.0 + + + + + + + ${radians(-130)} + + + 0.0 + + + + + + + ${radians(-135)} + + + 0.0 + + + + + + + ${radians(30)} + + + 0.0 + + + + + + + 0.0 + + + 0.0 + + + + + + + ${radians(40)} + + + 0.0 + + + + + + + 0.0 + + + 0.0 + + + + + + diff --git a/robot_specific_config/abb_irb14000_support/urdf/smart_gripper_macro.xacro b/robot_specific_config/abb_irb14000_support/urdf/smart_gripper_macro.xacro new file mode 100644 index 0000000..c7f49b0 --- /dev/null +++ b/robot_specific_config/abb_irb14000_support/urdf/smart_gripper_macro.xacro @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +