diff --git a/robot_specific_config/abb_irb2600_12_185_moveit_config/.setup_assistant b/robot_specific_config/abb_irb2600_12_185_moveit_config/.setup_assistant new file mode 100644 index 0000000..5a0142a --- /dev/null +++ b/robot_specific_config/abb_irb2600_12_185_moveit_config/.setup_assistant @@ -0,0 +1,10 @@ +moveit_setup_assistant_config: + URDF: + package: abb_irb2600_support + relative_path: urdf/irb2600_12_185.xacro + SRDF: + relative_path: config/abb_irb2600_12_185.srdf + CONFIG: + author_name: Anouk Leunissen + author_email: anouk.leunissen@wur.nl + generated_timestamp: 1505444071 diff --git a/robot_specific_config/abb_irb2600_12_185_moveit_config/CMakeLists.txt b/robot_specific_config/abb_irb2600_12_185_moveit_config/CMakeLists.txt new file mode 100644 index 0000000..a8b393f --- /dev/null +++ b/robot_specific_config/abb_irb2600_12_185_moveit_config/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 3.10.2) +project(abb_irb2600_12_185_moveit_config) + +find_package(ament_cmake REQUIRED) + +ament_package() + +install(DIRECTORY config rviz + DESTINATION share/${PROJECT_NAME} +) diff --git a/robot_specific_config/abb_irb2600_12_185_moveit_config/config/abb_irb2600_12_185.srdf.xacro b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/abb_irb2600_12_185.srdf.xacro new file mode 100644 index 0000000..3e39db2 --- /dev/null +++ b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/abb_irb2600_12_185.srdf.xacro @@ -0,0 +1,7 @@ + + + + + + + diff --git a/robot_specific_config/abb_irb2600_12_185_moveit_config/config/abb_irb2600_12_185_macro.srdf.xacro b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/abb_irb2600_12_185_macro.srdf.xacro new file mode 100644 index 0000000..cfcd7e1 --- /dev/null +++ b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/abb_irb2600_12_185_macro.srdf.xacro @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/robot_specific_config/abb_irb2600_12_185_moveit_config/config/joint_limits.yaml b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/joint_limits.yaml new file mode 100644 index 0000000..97ead07 --- /dev/null +++ b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/joint_limits.yaml @@ -0,0 +1,34 @@ +# 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] +# Joint limits can be turned off with [has_velocity_limits, has_acceleration_limits] +joint_limits: + joint_1: + has_velocity_limits: true + max_velocity: 3.054 + has_acceleration_limits: false + max_acceleration: 0 + joint_2: + has_velocity_limits: true + max_velocity: 3.054 + has_acceleration_limits: false + max_acceleration: 0 + joint_3: + has_velocity_limits: true + max_velocity: 3.054 + has_acceleration_limits: false + max_acceleration: 0 + joint_4: + has_velocity_limits: true + max_velocity: 6.283 + has_acceleration_limits: false + max_acceleration: 0 + joint_5: + has_velocity_limits: true + max_velocity: 6.283 + has_acceleration_limits: false + max_acceleration: 0 + joint_6: + has_velocity_limits: true + max_velocity: 8.727 + has_acceleration_limits: false + max_acceleration: 0 diff --git a/robot_specific_config/abb_irb2600_12_185_moveit_config/config/kinematics.yaml b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/kinematics.yaml new file mode 100644 index 0000000..5d492ac --- /dev/null +++ b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/kinematics.yaml @@ -0,0 +1,5 @@ +manipulator: + kinematics_solver: kdl_kinematics_plugin/KDLKinematicsPlugin + kinematics_solver_search_resolution: 0.005 + kinematics_solver_timeout: 0.005 + kinematics_solver_attempts: 3 diff --git a/robot_specific_config/abb_irb2600_12_185_moveit_config/config/moveit_controllers.yaml b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/moveit_controllers.yaml new file mode 100644 index 0000000..00690b4 --- /dev/null +++ b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/moveit_controllers.yaml @@ -0,0 +1,21 @@ +trajectory_execution: + allowed_execution_duration_scaling: 1.2 + allowed_goal_duration_margin: 0.5 + allowed_start_tolerance: 0.01 + +moveit_controller_manager: moveit_simple_controller_manager/MoveItSimpleControllerManager + +controller_names: + - joint_trajectory_controller + +joint_trajectory_controller: + action_ns: follow_joint_trajectory + type: FollowJointTrajectory + default: true + joints: + - joint_1 + - joint_2 + - joint_3 + - joint_4 + - joint_5 + - joint_6 diff --git a/robot_specific_config/abb_irb2600_12_185_moveit_config/config/ompl_planning.yaml b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/ompl_planning.yaml new file mode 100644 index 0000000..f4c8d82 --- /dev/null +++ b/robot_specific_config/abb_irb2600_12_185_moveit_config/config/ompl_planning.yaml @@ -0,0 +1,159 @@ +planning_plugin: ompl_interface/OMPLPlanner +request_adapters: >- + default_planner_request_adapters/AddTimeParameterization + default_planner_request_adapters/ResolveConstraintFrames + default_planner_request_adapters/FixWorkspaceBounds + default_planner_request_adapters/FixStartStateBounds + default_planner_request_adapters/FixStartStateCollision + default_planner_request_adapters/FixStartStatePathConstraints +start_state_max_bounds_error: 0.1 +planner_configs: + SBLkConfigDefault: + type: geometric::SBL + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + ESTkConfigDefault: + type: geometric::EST + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0 setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + LBKPIECEkConfigDefault: + type: geometric::LBKPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + BKPIECEkConfigDefault: + type: geometric::BKPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 + failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + KPIECEkConfigDefault: + type: geometric::KPIECE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + border_fraction: 0.9 # Fraction of time focused on boarder default: 0.9 (0.0,1.] + failed_expansion_score_factor: 0.5 # When extending motion fails, scale score by factor. default: 0.5 + min_valid_path_fraction: 0.5 # Accept partially valid moves above fraction. default: 0.5 + RRTkConfigDefault: + type: geometric::RRT + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + RRTConnectkConfigDefault: + type: geometric::RRTConnect + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + RRTstarkConfigDefault: + type: geometric::RRTstar + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + delay_collision_checking: 1 # Stop collision checking as soon as C-free parent found. default 1 + TRRTkConfigDefault: + type: geometric::TRRT + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability? default: 0.05 + max_states_failed: 10 # when to start increasing temp. default: 10 + temp_change_factor: 2.0 # how much to increase or decrease temp. default: 2.0 + min_temperature: 10e-10 # lower limit of temp change. default: 10e-10 + init_temperature: 10e-6 # initial temperature. default: 10e-6 + frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup() + frountierNodeRatio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1 + k_constant: 0.0 # value used to normalize expresssion. default: 0.0 set in setup() + PRMkConfigDefault: + type: geometric::PRM + max_nearest_neighbors: 10 # use k nearest neighbors. default: 10 + PRMstarkConfigDefault: + type: geometric::PRMstar + FMTkConfigDefault: + type: geometric::FMT + num_samples: 1000 # number of states that the planner should sample. default: 1000 + radius_multiplier: 1.1 # multiplier used for the nearest neighbors search radius. default: 1.1 + nearest_k: 1 # use Knearest strategy. default: 1 + cache_cc: 1 # use collision checking cache. default: 1 + heuristics: 0 # activate cost to go heuristics. default: 0 + extended_fmt: 1 # activate the extended FMT*: adding new samples if planner does not finish successfully. default: 1 + BFMTkConfigDefault: + type: geometric::BFMT + num_samples: 1000 # number of states that the planner should sample. default: 1000 + radius_multiplier: 1.0 # multiplier used for the nearest neighbors search radius. default: 1.0 + nearest_k: 1 # use the Knearest strategy. default: 1 + balanced: 0 # exploration strategy: balanced true expands one tree every iteration. False will select the tree with lowest maximum cost to go. default: 1 + optimality: 1 # termination strategy: optimality true finishes when the best possible path is found. Otherwise, the algorithm will finish when the first feasible path is found. default: 1 + heuristics: 1 # activates cost to go heuristics. default: 1 + cache_cc: 1 # use the collision checking cache. default: 1 + extended_fmt: 1 # Activates the extended FMT*: adding new samples if planner does not finish successfully. default: 1 + PDSTkConfigDefault: + type: geometric::PDST + STRIDEkConfigDefault: + type: geometric::STRIDE + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + use_projected_distance: 0 # whether nearest neighbors are computed based on distances in a projection of the state rather distances in the state space itself. default: 0 + degree: 16 # desired degree of a node in the Geometric Near-neightbor Access Tree (GNAT). default: 16 + max_degree: 18 # max degree of a node in the GNAT. default: 12 + min_degree: 12 # min degree of a node in the GNAT. default: 12 + max_pts_per_leaf: 6 # max points per leaf in the GNAT. default: 6 + estimated_dimension: 0.0 # estimated dimension of the free space. default: 0.0 + min_valid_path_fraction: 0.2 # Accept partially valid moves above fraction. default: 0.2 + BiTRRTkConfigDefault: + type: geometric::BiTRRT + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + temp_change_factor: 0.1 # how much to increase or decrease temp. default: 0.1 + init_temperature: 100 # initial temperature. default: 100 + frountier_threshold: 0.0 # dist new state to nearest neighbor to disqualify as frontier. default: 0.0 set in setup() + frountier_node_ratio: 0.1 # 1/10, or 1 nonfrontier for every 10 frontier. default: 0.1 + cost_threshold: 1e300 # the cost threshold. Any motion cost that is not better will not be expanded. default: inf + LBTRRTkConfigDefault: + type: geometric::LBTRRT + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + epsilon: 0.4 # optimality approximation factor. default: 0.4 + BiESTkConfigDefault: + type: geometric::BiEST + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + ProjESTkConfigDefault: + type: geometric::ProjEST + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + goal_bias: 0.05 # When close to goal select goal, with this probability. default: 0.05 + LazyPRMkConfigDefault: + type: geometric::LazyPRM + range: 0.0 # Max motion added to tree. ==> maxDistance_ default: 0.0, if 0.0, set on setup() + LazyPRMstarkConfigDefault: + type: geometric::LazyPRMstar + SPARSkConfigDefault: + type: geometric::SPARS + stretch_factor: 3.0 # roadmap spanner stretch factor. multiplicative upper bound on path quality. It does not make sense to make this parameter more than 3. default: 3.0 + sparse_delta_fraction: 0.25 # delta fraction for connection distance. This value represents the visibility range of sparse samples. default: 0.25 + dense_delta_fraction: 0.001 # delta fraction for interface detection. default: 0.001 + max_failures: 1000 # maximum consecutive failure limit. default: 1000 + SPARStwokConfigDefault: + type: geometric::SPARStwo + stretch_factor: 3.0 # roadmap spanner stretch factor. multiplicative upper bound on path quality. It does not make sense to make this parameter more than 3. default: 3.0 + sparse_delta_fraction: 0.25 # delta fraction for connection distance. This value represents the visibility range of sparse samples. default: 0.25 + dense_delta_fraction: 0.001 # delta fraction for interface detection. default: 0.001 + max_failures: 5000 # maximum consecutive failure limit. default: 5000 +manipulator: + default_planner_config: RRTConnectkConfigDefault + planner_configs: + - SBLkConfigDefault + - ESTkConfigDefault + - LBKPIECEkConfigDefault + - BKPIECEkConfigDefault + - KPIECEkConfigDefault + - RRTkConfigDefault + - RRTConnectkConfigDefault + - RRTstarkConfigDefault + - TRRTkConfigDefault + - PRMkConfigDefault + - PRMstarkConfigDefault + - FMTkConfigDefault + - BFMTkConfigDefault + - PDSTkConfigDefault + - STRIDEkConfigDefault + - BiTRRTkConfigDefault + - LBTRRTkConfigDefault + - BiESTkConfigDefault + - ProjESTkConfigDefault + - LazyPRMkConfigDefault + - LazyPRMstarkConfigDefault + - SPARSkConfigDefault + - SPARStwokConfigDefault + projection_evaluator: joints(joint_1,joint_2) + longest_valid_segment_fraction: 0.005 diff --git a/robot_specific_config/abb_irb2600_12_185_moveit_config/package.xml b/robot_specific_config/abb_irb2600_12_185_moveit_config/package.xml new file mode 100644 index 0000000..49eb7e3 --- /dev/null +++ b/robot_specific_config/abb_irb2600_12_185_moveit_config/package.xml @@ -0,0 +1,33 @@ + + + abb_irb2600_12_185_moveit_config + 0.0.0 + +

+ MoveIt package for the ABB IRB 2800-12/1.85. +

+

+ An automatically generated package with all the configuration files + for using the ABB IRB 2800-12/1.18 with the MoveIt Motion Planning + Framework. +

+
+ Anouk Leunissen + Anouk Leunissen + + BSD + + http://wiki.ros.org/abb_irb2600_12_185_moveit_config + https://github.com/ros-industrial/abb_experimental/issues + https://github.com/ros-industrial/abb_experimental + + ament_cmake + + abb_irb2600_support + + + + ament_cmake + + +
diff --git a/robot_specific_config/abb_irb2600_12_185_moveit_config/rviz/moveit.rviz b/robot_specific_config/abb_irb2600_12_185_moveit_config/rviz/moveit.rviz new file mode 100644 index 0000000..d839b1d --- /dev/null +++ b/robot_specific_config/abb_irb2600_12_185_moveit_config/rviz/moveit.rviz @@ -0,0 +1,310 @@ +Panels: + - Class: rviz_common/Displays + Help Height: 78 + Name: Displays + Property Tree Widget: + Expanded: ~ + Splitter Ratio: 0.5 + Tree Height: 348 + - Class: rviz_common/Selection + Name: Selection + - Class: rviz_common/Tool Properties + Expanded: + - /2D Goal Pose1 + - /Publish Point1 + Name: Tool Properties + Splitter Ratio: 0.5886790156364441 + - Class: rviz_common/Views + Expanded: + - /Current View1 + Name: Views + Splitter Ratio: 0.5 + - Class: rviz_common/Time + Experimental: false + Name: Time + SyncMode: 0 + SyncSource: "" +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 + - Acceleration_Scaling_Factor: 0.1 + Class: moveit_rviz_plugin/MotionPlanning + Enabled: true + Move Group Namespace: "" + MoveIt_Allow_Approximate_IK: false + MoveIt_Allow_External_Program: false + MoveIt_Allow_Replanning: false + MoveIt_Allow_Sensor_Positioning: false + MoveIt_Planning_Attempts: 10 + MoveIt_Planning_Time: 5 + MoveIt_Use_Cartesian_Path: false + MoveIt_Use_Constraint_Aware_IK: false + MoveIt_Workspace: + Center: + X: 0 + Y: 0 + Z: 0 + Size: + X: 2 + Y: 2 + Z: 2 + Name: MotionPlanning + Planned Path: + Color Enabled: false + Interrupt Display: false + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + link_1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_4: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_5: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_6: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + Loop Animation: false + Robot Alpha: 0.5 + Robot Color: 150; 50; 150 + Show Robot Collision: false + Show Robot Visual: true + Show Trail: false + State Display Time: 3x + Trail Step Size: 1 + Trajectory Topic: /display_planned_path + Planning Metrics: + Payload: 1 + Show Joint Torques: false + Show Manipulability: false + Show Manipulability Index: false + Show Weight Limit: false + TextHeight: 0.07999999821186066 + Planning Request: + Colliding Link Color: 255; 0; 0 + Goal State Alpha: 1 + Goal State Color: 250; 128; 0 + Interactive Marker Size: 0 + Joint Violation Color: 255; 0; 255 + Planning Group: manipulator + Query Goal State: true + Query Start State: false + Show Workspace: false + Start State Alpha: 1 + Start State Color: 0; 255; 0 + Planning Scene Topic: /monitored_planning_scene + Robot Description: robot_description + Scene Geometry: + Scene Alpha: 0.8999999761581421 + Scene Color: 50; 230; 50 + Scene Display Time: 0.009999999776482582 + Show Scene Geometry: true + Voxel Coloring: Z-Axis + Voxel Rendering: Occupied Voxels + Scene Robot: + Attached Body Color: 150; 50; 150 + Links: + All Links Enabled: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base: + Alpha: 1 + Show Axes: false + Show Trail: false + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + flange: + Alpha: 1 + Show Axes: false + Show Trail: false + link_1: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_2: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_3: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_4: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_5: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + link_6: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + tool0: + Alpha: 1 + Show Axes: false + Show Trail: false + Robot Alpha: 1 + Show Robot Collision: false + Show Robot Visual: true + Value: true + Velocity_Scaling_Factor: 0.1 + 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: /goal_pose + - 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: 10 + 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 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.785398006439209 + Target Frame: + Value: Orbit (rviz) + Yaw: 0.785398006439209 + Saved: ~ +Window Geometry: + "": + collapsed: false + " - Trajectory Slider": + collapsed: false + Displays: + collapsed: false + Height: 1043 + Hide Left Dock: false + Hide Right Dock: false + QMainWindow State: 000000ff00000000fd0000000400000000000001f300000375fc020000000afb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003d000001e7000000c900fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261fb000000280020002d0020005400720061006a006500630074006f0072007900200053006c00690064006500720000000000ffffffff0000004100fffffffbffffffff010000022a000001880000017d00ffffff000000010000010f000002b0fc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073000000003d000002b0000000a400fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000007800000003efc0100000002fb0000000800540069006d0065010000000000000780000002eb00fffffffb0000000800540069006d00650100000000000004500000000000000000000005870000037500000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Selection: + collapsed: false + Time: + collapsed: false + Tool Properties: + collapsed: false + Views: + collapsed: false + Width: 1920 + X: 0 + Y: 0 diff --git a/robot_specific_config/abb_irb2600_support/CMakeLists.txt b/robot_specific_config/abb_irb2600_support/CMakeLists.txt new file mode 100644 index 0000000..b80ef1e --- /dev/null +++ b/robot_specific_config/abb_irb2600_support/CMakeLists.txt @@ -0,0 +1,10 @@ +cmake_minimum_required(VERSION 3.10.2) + +project(abb_irb2600_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_irb2600_support/launch/view_robot.launch.py b/robot_specific_config/abb_irb2600_support/launch/view_robot.launch.py new file mode 100644 index 0000000..75160be --- /dev/null +++ b/robot_specific_config/abb_irb2600_support/launch/view_robot.launch.py @@ -0,0 +1,95 @@ +# View and view the URDF in RViz + +import os +import yaml +from launch import LaunchDescription +from launch_ros.actions import Node +from launch_ros.descriptions import ParameterValue +from launch_ros.substitutions import FindPackageShare +from launch.actions import DeclareLaunchArgument +from launch.substitutions import ( + LaunchConfiguration, + PathJoinSubstitution, + Command, + FindExecutable +) +from ament_index_python.packages import get_package_share_directory + + +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(): + + # Initialize Arguments + robot_description_file = LaunchConfiguration("robot_description_file", default="irb2600_12_185.xacro") + + robot_description_file_arg = DeclareLaunchArgument( + "robot_description_file", + default_value="irb2600_12_185.xacro" + ) + + robot_description_path = FindPackageShare("abb_irb2600_support") + + robot_description_content = Command( + [ + PathJoinSubstitution([FindExecutable(name="xacro")]), + " ", + PathJoinSubstitution( + [robot_description_path, "urdf", robot_description_file] + ), + " ", + ] + ) + robot_description = { + "robot_description": ParameterValue(robot_description_content, value_type=str) + } + + 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_config_file = PathJoinSubstitution( + [robot_description_path, "rviz", "urdf_description.rviz"] + ) + + rviz = Node( + package="rviz2", + executable="rviz2", + name="rviz2", + arguments=[ + "-d", + rviz_config_file, + ], + output="screen", + ) + + return LaunchDescription([robot_description_file_arg, robot_state_publisher_node, joint_state_sliders, rviz]) diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/base_link.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/base_link.stl new file mode 100644 index 0000000..ad6e4ee Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/base_link.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_1.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_1.stl new file mode 100644 index 0000000..86e6800 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_1.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_2.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_2.stl new file mode 100644 index 0000000..830cffc Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_2.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_3.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_3.stl new file mode 100644 index 0000000..2f5f7dc Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_3.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_4.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_4.stl new file mode 100644 index 0000000..389e586 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_4.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_5.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_5.stl new file mode 100644 index 0000000..ae84195 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_5.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_6.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_6.stl new file mode 100644 index 0000000..affe801 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/collision/link_6.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/base_link.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/base_link.stl new file mode 100644 index 0000000..307e932 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/base_link.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_1.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_1.stl new file mode 100644 index 0000000..160e570 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_1.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_2.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_2.stl new file mode 100644 index 0000000..44af176 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_2.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_3.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_3.stl new file mode 100644 index 0000000..6fa5581 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_3.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_4.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_4.stl new file mode 100644 index 0000000..15b724a Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_4.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_5.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_5.stl new file mode 100644 index 0000000..ceafca9 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_5.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_6.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_6.stl new file mode 100644 index 0000000..49837f8 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_165/visual/link_6.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/base_link.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/base_link.stl new file mode 100644 index 0000000..ad6e4ee Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/base_link.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_1.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_1.stl new file mode 100644 index 0000000..86e6800 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_1.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_2.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_2.stl new file mode 100644 index 0000000..3ad2b1f Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_2.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_3.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_3.stl new file mode 100644 index 0000000..2f5f7dc Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_3.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_4.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_4.stl new file mode 100644 index 0000000..389e586 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_4.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_5.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_5.stl new file mode 100644 index 0000000..ae84195 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_5.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_6.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_6.stl new file mode 100644 index 0000000..affe801 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/collision/link_6.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/base_link.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/base_link.stl new file mode 100644 index 0000000..307e932 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/base_link.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_1.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_1.stl new file mode 100644 index 0000000..160e570 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_1.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_2.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_2.stl new file mode 100644 index 0000000..e48b9fd Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_2.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_3.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_3.stl new file mode 100644 index 0000000..6fa5581 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_3.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_4.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_4.stl new file mode 100644 index 0000000..15b724a Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_4.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_5.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_5.stl new file mode 100644 index 0000000..ceafca9 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_5.stl differ diff --git a/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_6.stl b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_6.stl new file mode 100644 index 0000000..49837f8 Binary files /dev/null and b/robot_specific_config/abb_irb2600_support/meshes/irb2600_12_185/visual/link_6.stl differ diff --git a/robot_specific_config/abb_irb2600_support/package.xml b/robot_specific_config/abb_irb2600_support/package.xml new file mode 100644 index 0000000..3fb87a4 --- /dev/null +++ b/robot_specific_config/abb_irb2600_support/package.xml @@ -0,0 +1,65 @@ + + + abb_irb2600_support + 0.0.0 + +

+ ROS-Industrial support for the ABB IRB 2600 (and variants). +

+

+ This package contains configuration data, 3D models and launch files + for ABB IRB 2600 manipulators. This currently includes the IRB 2600-12/1.85. +

+

+ Joint limits and max joint velocities are based on the information in the + ABB IRB 2600 Datasheet, document ID: ROB0275EN_A, Sept 2016. + 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 1: inertial and dynamics values for the 5/0.9 variant were calculated + from the meshes using Meshlab, assuming constant density. + As the datasheet only provides the mass of the entire robot, + the mass of each link was estimated based on its volume, assuming + constant density for the entire robot. +

+

+ Note 2: maximum joint effort values for the 5/0.9 variant do not + correspond to real world limits of the robot. The current values were + chosen to accomodate Gazebo simulations of this specific variant 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. +

+
+ Anouk Leunissen + Anouk Leunissen + Apache2 + + http://wiki.ros.org/abb_irb2600_support + https://github.com/ros-industrial/abb_experimental/issues + https://github.com/ros-industrial/abb_experimental + + ament_cmake + + robot_state_publisher + joint_state_publisher_gui + rviz2 + joint_state_publisher + robot_state_publisher + + + xacro + launch + launch_ros + urdf + + + ament_cmake + + +
diff --git a/robot_specific_config/abb_irb2600_support/rviz/urdf_description.rviz b/robot_specific_config/abb_irb2600_support/rviz/urdf_description.rviz new file mode 100644 index 0000000..f107d53 --- /dev/null +++ b/robot_specific_config/abb_irb2600_support/rviz/urdf_description.rviz @@ -0,0 +1,321 @@ +Panels: + - Class: rviz_common/Displays + Help Height: 78 + Name: Displays + Property Tree Widget: + Expanded: + - /Status1 + - /RobotModel1 + Splitter Ratio: 0.5 + Tree Height: 802 + - Class: rviz_common/Selection + Name: Selection + - Class: rviz_common/Tool Properties + Expanded: + - /2D Goal Pose1 + - /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.44999998807907104 + 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: + AL_body_coxa_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AL_coxa_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AL_femur_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AL_foot_link: + Alpha: 1 + Show Axes: false + Show Trail: false + AL_steer_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AL_tarsus_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AL_tibia_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AL_wheel_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AR_body_coxa_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AR_coxa_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AR_femur_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AR_foot_link: + Alpha: 1 + Show Axes: false + Show Trail: false + AR_steer_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AR_tarsus_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AR_tibia_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + AR_wheel_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + All Links Enabled: true + BL_body_coxa_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BL_coxa_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BL_femur_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BL_foot_link: + Alpha: 1 + Show Axes: false + Show Trail: false + BL_steer_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BL_tarsus_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BL_tibia_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BL_wheel_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BR_body_coxa_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BR_coxa_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BR_femur_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BR_foot_link: + Alpha: 1 + Show Axes: false + Show Trail: false + BR_steer_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BR_tarsus_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BR_tibia_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + BR_wheel_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Expand Joint Details: false + Expand Link Details: false + Expand Tree: false + Link Tree Style: Links in Alphabetic Order + base_link: + Alpha: 1 + Show Axes: false + Show Trail: false + body_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + dummy_mass_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + imu_link: + Alpha: 1 + Show Axes: false + Show Trail: false + Value: true + Name: RobotModel + TF Prefix: "" + Update Interval: 0 + Value: true + Visual Enabled: 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 + 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: /goal_pose + - 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.3401038646698 + Enable Stereo Rendering: + Stereo Eye Separation: 0.05999999865889549 + Stereo Focal Distance: 1 + Swap Stereo Eyes: false + Value: false + Focal Point: + X: -0.0946255475282669 + Y: 0.04476494714617729 + Z: -0.059119053184986115 + Focal Shape Fixed Size: true + Focal Shape Size: 0.05000000074505806 + Invert Z Axis: false + Name: Current View + Near Clip Distance: 0.009999999776482582 + Pitch: 0.615398108959198 + Target Frame: + Value: Orbit (rviz) + Yaw: 0.5454021692276001 + Saved: ~ +Window Geometry: + Displays: + collapsed: false + Height: 1025 + Hide Left Dock: false + Hide Right Dock: false + QMainWindow State: 000000ff00000000fd000000040000000000000156000003abfc0200000008fb0000001200530065006c0065006300740069006f006e00000001e10000009b0000005c00fffffffb0000001e0054006f006f006c002000500072006f007000650072007400690065007302000001ed000001df00000185000000a3fb000000120056006900650077007300200054006f006f02000001df000002110000018500000122fb000000200054006f006f006c002000500072006f0070006500720074006900650073003203000002880000011d000002210000017afb000000100044006900730070006c006100790073010000003b000003ab000000c700fffffffb0000002000730065006c0065006300740069006f006e00200062007500660066006500720200000138000000aa0000023a00000294fb00000014005700690064006500530074006500720065006f02000000e6000000d2000003ee0000030bfb0000000c004b0069006e0065006300740200000186000001060000030c00000261000000010000010f000003abfc0200000003fb0000001e0054006f006f006c002000500072006f00700065007200740069006500730100000041000000780000000000000000fb0000000a00560069006500770073010000003b000003ab000000a000fffffffb0000001200530065006c0065006300740069006f006e010000025a000000b200000000000000000000000200000490000000a9fc0100000001fb0000000a00560069006500770073030000004e00000080000002e10000019700000003000004420000003efc0100000002fb0000000800540069006d00650100000000000004420000000000000000fb0000000800540069006d00650100000000000004500000000000000000000004cc000003ab00000004000000040000000800000008fc0000000100000002000000010000000a0054006f006f006c00730100000000ffffffff0000000000000000 + Selection: + collapsed: false + Tool Properties: + collapsed: false + Views: + collapsed: false + Width: 1853 + X: 67 + Y: 27 diff --git a/robot_specific_config/abb_irb2600_support/urdf/irb2600.ros2_control.xacro b/robot_specific_config/abb_irb2600_support/urdf/irb2600.ros2_control.xacro new file mode 100644 index 0000000..23b27d6 --- /dev/null +++ b/robot_specific_config/abb_irb2600_support/urdf/irb2600.ros2_control.xacro @@ -0,0 +1,94 @@ + + + + + + + + + mock_components/GenericSystem + false + 0.0 + + + + abb_hardware_interface/ABBSystemHardware + ${rws_port} + ${rws_ip} + + 6511 + + + + + + + + -3.142 + 3.142 + + + + 0.0 + + + + + + -1.658 + 2.705 + + + + 0.0 + + + + + + -3.142 + 1.309 + + + + 0.0 + + + + + + -6.981 + 6.981 + + + + 0.0 + + + + + + -2.094 + 2.094 + + + + 0.0 + + + + + + -6.981 + 6.981 + + + + 0.0 + + + + + + + diff --git a/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_165.xacro b/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_165.xacro new file mode 100644 index 0000000..33fd838 --- /dev/null +++ b/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_165.xacro @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + diff --git a/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_165_macro.xacro b/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_165_macro.xacro new file mode 100644 index 0000000..5d257ca --- /dev/null +++ b/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_165_macro.xacro @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_185.xacro b/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_185.xacro new file mode 100644 index 0000000..5751590 --- /dev/null +++ b/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_185.xacro @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + diff --git a/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_185_macro.xacro b/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_185_macro.xacro new file mode 100644 index 0000000..5a8f698 --- /dev/null +++ b/robot_specific_config/abb_irb2600_support/urdf/irb2600_12_185_macro.xacro @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/robot_specific_config/abb_irb4600_support/launch/view_robot.launch.py b/robot_specific_config/abb_irb4600_support/launch/view_robot.launch.py index a1603f0..d2c2cc5 100644 --- a/robot_specific_config/abb_irb4600_support/launch/view_robot.launch.py +++ b/robot_specific_config/abb_irb4600_support/launch/view_robot.launch.py @@ -4,15 +4,16 @@ import yaml from launch import LaunchDescription from launch_ros.actions import Node +from launch_ros.descriptions import ParameterValue from launch_ros.substitutions import FindPackageShare -from launch.actions import ExecuteProcess, DeclareLaunchArgument +from launch.actions import DeclareLaunchArgument from launch.substitutions import ( - Command, - FindExecutable, - LaunchConfiguration, - PathJoinSubstitution, - TextSubstitution, + LaunchConfiguration, + PathJoinSubstitution, + Command, + FindExecutable ) +from ament_index_python.packages import get_package_share_directory def load_file(package_name, file_path): @@ -38,24 +39,30 @@ def load_yaml(package_name, file_path): def generate_launch_description(): - description_file_arg = DeclareLaunchArgument( - "description_file", - default_value=TextSubstitution(text="irb4600_60_205.xacro"), - description="Name of a supported robot description file in package.", + + # Initialize Arguments + robot_description_file = LaunchConfiguration("robot_description_file", default="irb4600_60_205.xacro") + + robot_description_file_arg = DeclareLaunchArgument( + "robot_description_file", + default_value="irb4600_60_205.xacro" ) - description_file = LaunchConfiguration("description_file") + + robot_description_path = FindPackageShare("abb_irb4600_support") robot_description_content = Command( [ PathJoinSubstitution([FindExecutable(name="xacro")]), " ", PathJoinSubstitution( - [FindPackageShare("abb_irb4600_support"), "urdf", description_file] + [robot_description_path, "urdf", robot_description_file] ), + " ", ] ) - - robot_description = {"robot_description": robot_description_content} + robot_description = { + "robot_description": ParameterValue(robot_description_content, value_type=str) + } robot_state_publisher_node = Node( package="robot_state_publisher", @@ -70,23 +77,21 @@ def generate_launch_description(): name="joint_state_publisher_gui", ) + rviz_config_file = PathJoinSubstitution( + [robot_description_path, "rviz", "urdf_description.rviz"] + ) + rviz = Node( package="rviz2", executable="rviz2", name="rviz2", arguments=[ "-d", - PathJoinSubstitution( - [ - FindPackageShare("abb_irb4600_support"), - "rviz", - "urdf_description.rviz", - ] - ), + rviz_config_file, ], output="screen", ) return LaunchDescription( - [description_file_arg, robot_state_publisher_node, joint_state_sliders, rviz] + [robot_description_file_arg, robot_state_publisher_node, joint_state_sliders, rviz] )