Affected ROS2 Driver version(s)
actual driver ros2 humble
Used ROS distribution.
Humble
Which combination of platform is the ROS driver running on.
Ubuntu Linux with standard kernel
How is the UR ROS2 Driver installed.
From binary packets
Which robot platform is the driver connected to.
Real robot
Robot SW / URSim version(s)
Polyscope X 10.11
How is the ROS driver used.
Through the robot teach pendant using External Control URCap
Issue details
Summary
I can run the robot workcell https://github.com/UniversalRobots/Universal_Robots_ROS2_Tutorials/tree/main/my_robot_cell/my_robot_cell_moveit_config
with ur sim when I start my configuration via ros2 launch my_robot_cell_control ur_robot_bringup.launch.py ur_type:=ur15 robot_ip:=192.168.0.168 launch_rviz:=true use_gripper:=true gripper_mode:=real use_fake_hardware:=false launch_moveit:=true
When I do the same even with paying attention to the real robot which has another tf_prefix than UR15_ and I start the skript again I recieve this error
group-15] [ERROR] [1771278420.428464468] [moveit_robot_model.robot_model]: Joint 'UR20256700197_wrist_3_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429674536] [moveit_robot_model.robot_model]: Joint 'UR20256700197_shoulder_pan_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429700767] [moveit_robot_model.robot_model]: Joint 'UR20256700197_shoulder_lift_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429709941] [moveit_robot_model.robot_model]: Joint 'UR20256700197_elbow_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429717608] [moveit_robot_model.robot_model]: Joint 'UR20256700197_wrist_1_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429724913] [moveit_robot_model.robot_model]: Joint 'UR20256700197_wrist_2_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429732343] [moveit_robot_model.robot_model]: Joint 'UR20256700197_wrist_3_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.432107069] [moveit_robot_model.robot_model]: Joint 'UR20256700197_shoulder_pan_joint'
when adding the tf_prefix
ros2 launch my_robot_cell_control ur_robot_bringup.launch.py ur_type:=ur15 robot_ip:=192.168.0.168 launch_rviz:=true use_gripper:=true gripper_mode:=real use_fake_hardware:=false launch_moveit:=true tf_prefix:=UR20256700197_
it tells me after starting right that ur15 link is not there
ove_group-15] Loading 'move_group/MoveGroupCartesianPathService'...
[move_group-15] Loading 'move_group/MoveGroupExecuteTrajectoryAction'...
[move_group-15] Loading 'move_group/MoveGroupGetPlanningSceneService'...
[move_group-15] Loading 'move_group/MoveGroupKinematicsService'...
[move_group-15] Loading 'move_group/MoveGroupMoveAction'...
[move_group-15] Loading 'move_group/MoveGroupPlanService'...
[move_group-15] Loading 'move_group/MoveGroupQueryPlannersService'...
[move_group-15] Loading 'move_group/MoveGroupStateValidationService'...
[move_group-15]
[move_group-15] You can start planning now!
[move_group-15]
[rviz2-7] [INFO] [1771278544.649325538] [rviz2]: Message Filter dropping message: frame 'ur15_base_link' at time 1771278524.585 for reason 'discarding message because the queue is full'
[rviz2-7] [INFO] [1771278548.617926693] [rviz2]: Message Filter dropping message: frame 'ur15_base_link' at time 1771278528.577 for reason 'discarding message because the queue is full'
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
It started but ur15_ is missing. Somehow the confings doesn't match.
Relevant log output
"""
MoveIt move_group Launch - Verwendet die bereits laufende robot_description.
Kein eigener robot_state_publisher, kein eigener xacro-Aufruf.
"""
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, OpaqueFunction
from launch.substitutions import LaunchConfiguration
from launch_ros.actions import Node
from moveit_configs_utils import MoveItConfigsBuilder
from ament_index_python.packages import get_package_share_directory
import yaml
import os
def generate_launch_description():
declared_arguments = [
DeclareLaunchArgument(
"tf_prefix",
default_value="ur15_",
description="TF prefix for robot links"
),
]
def launch_setup(context, *args, **kwargs):
tf_prefix = LaunchConfiguration("tf_prefix").perform(context)
pkg_dir = get_package_share_directory("my_robot_cell_moveit_config")
# ============================================================
# SRDF via xacro (klein, braucht nur tf_prefix)
# ============================================================
import subprocess
srdf_xacro_path = os.path.join(pkg_dir, "config", "my_robot_cell.srdf.xacro")
srdf_result = subprocess.run(
["xacro", srdf_xacro_path, f"tf_prefix:={tf_prefix}"],
capture_output=True, text=True
)
robot_description_semantic = srdf_result.stdout
print(f"[MoveIt] SRDF generiert mit tf_prefix='{tf_prefix}'")
# ============================================================
# Lade sonstige MoveIt-Configs (kinematics, joint_limits, etc.)
# ============================================================
kinematics_file = os.path.join(pkg_dir, "config", "kinematics.yaml")
joint_limits_file = os.path.join(pkg_dir, "config", "joint_limits.yaml")
kinematics = {}
if os.path.exists(kinematics_file):
with open(kinematics_file, 'r') as f:
kinematics = yaml.safe_load(f) or {}
joint_limits = {}
if os.path.exists(joint_limits_file):
with open(joint_limits_file, 'r') as f:
joint_limits_raw = yaml.safe_load(f) or {}
joint_limits = {"robot_description_planning": joint_limits_raw}
# ============================================================
# move_group Node - holt robot_description vom Topic!
# ============================================================
move_group_params = {
"robot_description_semantic": robot_description_semantic,
"robot_description_kinematics": kinematics,
"publish_robot_description_semantic": True,
"allow_trajectory_execution": True,
"moveit_manage_controllers": True,
"trajectory_execution.allowed_execution_duration_scaling": 1.2,
"trajectory_execution.allowed_goal_duration_margin": 0.5,
"trajectory_execution.allowed_start_tolerance": 0.01,
"moveit_controller_manager": "moveit_simple_controller_manager/MoveItSimpleControllerManager",
}
# Controller config für MoveIt
controllers_config = {
"moveit_simple_controller_manager": {
"controller_names": ["scaled_joint_trajectory_controller"],
"scaled_joint_trajectory_controller": {
"type": "FollowJointTrajectory",
"action_ns": "follow_joint_trajectory",
"default": True,
"joints": [
f"{tf_prefix}shoulder_pan_joint",
f"{tf_prefix}shoulder_lift_joint",
f"{tf_prefix}elbow_joint",
f"{tf_prefix}wrist_1_joint",
f"{tf_prefix}wrist_2_joint",
f"{tf_prefix}wrist_3_joint",
],
},
}
}
# Planning pipelines
ompl_file = os.path.join(pkg_dir, "config", "ompl_planning.yaml")
ompl_config = {}
if os.path.exists(ompl_file):
with open(ompl_file, 'r') as f:
ompl_config = yaml.safe_load(f) or {}
planning_params = {
"planning_pipelines": ["ompl"],
"default_planning_pipeline": "ompl",
}
move_group_node = Node(
package="moveit_ros_move_group",
executable="move_group",
output="screen",
parameters=[
move_group_params,
controllers_config,
joint_limits,
ompl_config,
planning_params,
],
)
return [move_group_node]
return LaunchDescription(
declared_arguments + [OpaqueFunction(function=launch_setup)]
)
und Xacro srdf
<?xml version="1.0" encoding="UTF-8"?>
<robot xmlns:xacro="http://ros.org/wiki/xacro" name="my_robot_cell">
<!-- TF Prefix Parameter -->
<xacro:arg name="tf_prefix" default="ur15"/>
<!-- Direkte String-Konkatenation (immer mit Unterstrich) -->
<xacro:property name="prefix" value="$(arg tf_prefix)"/>
<!-- Planning Groups -->
<group name="ur_arm">
<chain base_link="${prefix}base_link" tip_link="${prefix}tool0"/>
</group>
<group name="ur_arm_wpg">
<chain base_link="${prefix}base_link" tip_link="wpg_tcp"/>
</group>
<group name="gripper">
<joint name="wpg_rail_main"/>
</group>
<end_effector name="gripper_ee" parent_link="wpg_tcp" group="gripper"/>
<!-- Named States -->
<group_state name="home" group="ur_arm">
<joint name="${prefix}shoulder_pan_joint" value="0"/>
<joint name="${prefix}shoulder_lift_joint" value="-1.57"/>
<joint name="${prefix}elbow_joint" value="1.57"/>
<joint name="${prefix}wrist_1_joint" value="-1.57"/>
<joint name="${prefix}wrist_2_joint" value="-1.57"/>
<joint name="${prefix}wrist_3_joint" value="0"/>
</group_state>
<!-- Self-Collision Pairs -->
<disable_collisions link1="${prefix}base_link" link2="${prefix}base_link_inertia" reason="Adjacent"/>
<disable_collisions link1="${prefix}base_link_inertia" link2="${prefix}shoulder_link" reason="Adjacent"/>
<disable_collisions link1="${prefix}shoulder_link" link2="${prefix}upper_arm_link" reason="Adjacent"/>
<disable_collisions link1="${prefix}upper_arm_link" link2="${prefix}forearm_link" reason="Adjacent"/>
<disable_collisions link1="${prefix}forearm_link" link2="${prefix}wrist_1_link" reason="Adjacent"/>
<disable_collisions link1="${prefix}wrist_1_link" link2="${prefix}wrist_2_link" reason="Adjacent"/>
<disable_collisions link1="${prefix}wrist_2_link" link2="${prefix}wrist_3_link" reason="Adjacent"/>
<disable_collisions link1="${prefix}wrist_3_link" link2="${prefix}flange" reason="Adjacent"/>
<disable_collisions link1="${prefix}flange" link2="${prefix}tool0" reason="Adjacent"/>
<disable_collisions link1="${prefix}tool0" link2="wpg_flange_mount" reason="Adjacent"/>
<disable_collisions link1="wpg_flange_mount" link2="wpg_gripper_base_link" reason="Adjacent"/>
<!-- Never collide -->
<disable_collisions link1="${prefix}base_link_inertia" link2="${prefix}upper_arm_link" reason="Never"/>
<disable_collisions link1="${prefix}forearm_link" link2="${prefix}wrist_2_link" reason="Never"/>
<disable_collisions link1="${prefix}wrist_1_link" link2="${prefix}wrist_3_link" reason="Never"/>
<disable_collisions link1="wpg_finger_1" link2="wpg_finger_2" reason="Never"/>
<disable_collisions link1="${prefix}tool0" link2="wpg_tcp" reason="Default"/>
<disable_collisions link1="wpg_gripper_base_link" link2="wpg_tcp" reason="Default"/>
</robot>
Accept Public visibility
Affected ROS2 Driver version(s)
actual driver ros2 humble
Used ROS distribution.
Humble
Which combination of platform is the ROS driver running on.
Ubuntu Linux with standard kernel
How is the UR ROS2 Driver installed.
From binary packets
Which robot platform is the driver connected to.
Real robot
Robot SW / URSim version(s)
Polyscope X 10.11
How is the ROS driver used.
Through the robot teach pendant using External Control URCap
Issue details
Summary
I can run the robot workcell https://github.com/UniversalRobots/Universal_Robots_ROS2_Tutorials/tree/main/my_robot_cell/my_robot_cell_moveit_config
with ur sim when I start my configuration via ros2 launch my_robot_cell_control ur_robot_bringup.launch.py ur_type:=ur15 robot_ip:=192.168.0.168 launch_rviz:=true use_gripper:=true gripper_mode:=real use_fake_hardware:=false launch_moveit:=true
When I do the same even with paying attention to the real robot which has another tf_prefix than UR15_ and I start the skript again I recieve this error
group-15] [ERROR] [1771278420.428464468] [moveit_robot_model.robot_model]: Joint 'UR20256700197_wrist_3_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429674536] [moveit_robot_model.robot_model]: Joint 'UR20256700197_shoulder_pan_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429700767] [moveit_robot_model.robot_model]: Joint 'UR20256700197_shoulder_lift_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429709941] [moveit_robot_model.robot_model]: Joint 'UR20256700197_elbow_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429717608] [moveit_robot_model.robot_model]: Joint 'UR20256700197_wrist_1_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429724913] [moveit_robot_model.robot_model]: Joint 'UR20256700197_wrist_2_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.429732343] [moveit_robot_model.robot_model]: Joint 'UR20256700197_wrist_3_joint' not found in model 'my_robot_cell'
[move_group-15] [ERROR] [1771278420.432107069] [moveit_robot_model.robot_model]: Joint 'UR20256700197_shoulder_pan_joint'
when adding the tf_prefix
ros2 launch my_robot_cell_control ur_robot_bringup.launch.py ur_type:=ur15 robot_ip:=192.168.0.168 launch_rviz:=true use_gripper:=true gripper_mode:=real use_fake_hardware:=false launch_moveit:=true tf_prefix:=UR20256700197_
it tells me after starting right that ur15 link is not there
ove_group-15] Loading 'move_group/MoveGroupCartesianPathService'...
[move_group-15] Loading 'move_group/MoveGroupExecuteTrajectoryAction'...
[move_group-15] Loading 'move_group/MoveGroupGetPlanningSceneService'...
[move_group-15] Loading 'move_group/MoveGroupKinematicsService'...
[move_group-15] Loading 'move_group/MoveGroupMoveAction'...
[move_group-15] Loading 'move_group/MoveGroupPlanService'...
[move_group-15] Loading 'move_group/MoveGroupQueryPlannersService'...
[move_group-15] Loading 'move_group/MoveGroupStateValidationService'...
[move_group-15]
[move_group-15] You can start planning now!
[move_group-15]
[rviz2-7] [INFO] [1771278544.649325538] [rviz2]: Message Filter dropping message: frame 'ur15_base_link' at time 1771278524.585 for reason 'discarding message because the queue is full'
[rviz2-7] [INFO] [1771278548.617926693] [rviz2]: Message Filter dropping message: frame 'ur15_base_link' at time 1771278528.577 for reason 'discarding message because the queue is full'
^C[WARNING] [launch]: user interrupted with ctrl-c (SIGINT)
It started but ur15_ is missing. Somehow the confings doesn't match.
Relevant log output
Accept Public visibility