Code Monkey home page Code Monkey logo

iiwa_ros2's People

Contributors

juanheliosg avatar laurent-barbe avatar mcbed avatar tanneguydv avatar tpoignonec avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

iiwa_ros2's Issues

No planning library loaded

Hi,

thank you for sharing this project. I'm trying to do MotionPlanning in Moveit2 by runing

ros2 launch iiwa_bringup iiwa.launch.py use_planning:=true

but unfortunately it's always showing "no planning library loaded",
Screenshot from 2023-01-25 12-10-32
and no planning group can be selected.
Screenshot from 2023-01-25 12-10-54
The full log is as following:

yunqi@yunqi-U22:~/iiwa_ros2$ ros2 launch iiwa_bringup iiwa.launch.py use_planning:=true
[INFO] [launch]: All log files can be found below /home/yunqi/.ros/log/2023-01-25-12-01-51-488108-yunqi-U22-18944
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [ros2_control_node-1]: process started with pid [18951]
[INFO] [move_group-2]: process started with pid [18953]
[INFO] [rviz2-3]: process started with pid [18955]
[INFO] [robot_state_publisher-4]: process started with pid [18957]
[INFO] [spawner-5]: process started with pid [18959]
[INFO] [spawner-6]: process started with pid [18961]
[rviz2-3] Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[robot_state_publisher-4] Link iiwa_base had 1 children
[robot_state_publisher-4] Link link_0 had 1 children
[robot_state_publisher-4] Link link_1 had 1 children
[robot_state_publisher-4] Link link_2 had 1 children
[robot_state_publisher-4] Link link_3 had 1 children
[robot_state_publisher-4] Link link_4 had 1 children
[robot_state_publisher-4] Link link_5 had 1 children
[robot_state_publisher-4] Link link_6 had 1 children
[robot_state_publisher-4] Link link_7 had 1 children
[robot_state_publisher-4] Link tool0 had 0 children
[robot_state_publisher-4] [INFO] [1674644512.620577161] [robot_state_publisher]: got segment iiwa_base
[robot_state_publisher-4] [INFO] [1674644512.620705667] [robot_state_publisher]: got segment link_0
[robot_state_publisher-4] [INFO] [1674644512.620719268] [robot_state_publisher]: got segment link_1
[robot_state_publisher-4] [INFO] [1674644512.620728257] [robot_state_publisher]: got segment link_2
[robot_state_publisher-4] [INFO] [1674644512.620739834] [robot_state_publisher]: got segment link_3
[robot_state_publisher-4] [INFO] [1674644512.620748520] [robot_state_publisher]: got segment link_4
[robot_state_publisher-4] [INFO] [1674644512.620756904] [robot_state_publisher]: got segment link_5
[robot_state_publisher-4] [INFO] [1674644512.620768081] [robot_state_publisher]: got segment link_6
[robot_state_publisher-4] [INFO] [1674644512.620778617] [robot_state_publisher]: got segment link_7
[robot_state_publisher-4] [INFO] [1674644512.620787786] [robot_state_publisher]: got segment tool0
[robot_state_publisher-4] [INFO] [1674644512.620800289] [robot_state_publisher]: got segment world
[ros2_control_node-1] [INFO] [1674644512.654575055] [resource_manager]: Loading hardware 'iiwaRobot' 
[ros2_control_node-1] [INFO] [1674644512.655286657] [resource_manager]: Initialize hardware 'iiwaRobot' 
[ros2_control_node-1] [INFO] [1674644512.655365945] [resource_manager]: Successful initialization of hardware 'iiwaRobot'
[ros2_control_node-1] [INFO] [1674644512.655458305] [resource_manager]: 'configure' hardware 'iiwaRobot' 
[ros2_control_node-1] [INFO] [1674644512.655469598] [resource_manager]: Successful 'configure' of hardware 'iiwaRobot'
[ros2_control_node-1] [INFO] [1674644512.655488874] [resource_manager]: 'activate' hardware 'iiwaRobot' 
[ros2_control_node-1] [INFO] [1674644512.655497582] [resource_manager]: Successful 'activate' of hardware 'iiwaRobot'
[ros2_control_node-1] [INFO] [1674644512.661855970] [controller_manager]: update rate is 225 Hz
[ros2_control_node-1] [INFO] [1674644512.662043595] [controller_manager]: RT kernel is recommended for better performance
[move_group-2] [INFO] [1674644512.726727245] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00366482 seconds
[move_group-2] [INFO] [1674644512.727687349] [moveit_robot_model.robot_model]: Loading robot model 'iiwa'...
[move_group-2] [WARN] [1674644512.727716782] [moveit_robot_model.robot_model]: Skipping virtual joint 'virtual_joint' because its child frame 'iiwa_base' does not match the URDF frame 'world'
[move_group-2] [INFO] [1674644512.727725597] [moveit_robot_model.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ros2_control_node-1] [INFO] [1674644512.808200866] [controller_manager]: Loading controller 'ets_state_broadcaster'
[spawner-6] [INFO] [1674644512.834439521] [spawner_joint_state_broadcaster]: Waiting for '/controller_manager' node to exist
[spawner-5] [INFO] [1674644512.839734285] [spawner_ets_state_broadcaster]: Loaded ets_state_broadcaster
[ros2_control_node-1] [INFO] [1674644512.841032044] [controller_manager]: Configuring controller 'ets_state_broadcaster'
[spawner-5] [INFO] [1674644512.850290038] [spawner_ets_state_broadcaster]: Configured and activated ets_state_broadcaster
[INFO] [spawner-5]: process has finished cleanly [pid 18959]
[rviz2-3] [INFO] [1674644512.995365263] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-3] [INFO] [1674644512.995627989] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[rviz2-3] [INFO] [1674644513.017440547] [rviz2]: Stereo is NOT SUPPORTED
[ros2_control_node-1] [INFO] [1674644513.040474293] [controller_manager]: Loading controller 'joint_state_broadcaster'
[move_group-2] Link iiwa_base had 1 children
[move_group-2] Link link_0 had 1 children
[move_group-2] Link link_1 had 1 children
[move_group-2] Link link_2 had 1 children
[move_group-2] Link link_3 had 1 children
[move_group-2] Link link_4 had 1 children
[move_group-2] Link link_5 had 1 children
[move_group-2] Link link_6 had 1 children
[move_group-2] Link link_7 had 1 children
[move_group-2] Link tool0 had 0 children
[spawner-6] [INFO] [1674644513.054719212] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster
[ros2_control_node-1] [INFO] [1674644513.056572537] [controller_manager]: Configuring controller 'joint_state_broadcaster'
[ros2_control_node-1] [INFO] [1674644513.056657825] [joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published
[spawner-6] [INFO] [1674644513.072158542] [spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster
[INFO] [spawner-6]: process has finished cleanly [pid 18961]
[INFO] [spawner-7]: process started with pid [19062]
[ros2_control_node-1] [INFO] [1674644513.459231103] [controller_manager]: Loading controller 'iiwa_arm_controller'
[ros2_control_node-1] [INFO] [1674644513.476489652] [joint_trajectory_controller.interpolation_methods]: No interpolation method parameter was given. Using the default, VARIABLE_DEGREE_SPLINE.
[spawner-7] [INFO] [1674644513.503268526] [spawner_iiwa_arm_controller]: Loaded iiwa_arm_controller
[ros2_control_node-1] [INFO] [1674644513.504657100] [controller_manager]: Configuring controller 'iiwa_arm_controller'
[ros2_control_node-1] [INFO] [1674644513.504826897] [iiwa_arm_controller]: No specific joint names are used for command interfaces. Using 'joints' parameter.
[ros2_control_node-1] [INFO] [1674644513.504878075] [iiwa_arm_controller]: Command interfaces are [position] and state interfaces are [position velocity].
[ros2_control_node-1] [INFO] [1674644513.504927213] [joint_trajectory_controller.interpolation_methods]: No interpolation method parameter was given. Using the default, VARIABLE_DEGREE_SPLINE.
[ros2_control_node-1] [INFO] [1674644513.504940038] [iiwa_arm_controller]: Using 'splines' interpolation method.
[ros2_control_node-1] [INFO] [1674644513.505787475] [iiwa_arm_controller]: Controller state will be published at 50.00 Hz.
[ros2_control_node-1] [INFO] [1674644513.506757796] [iiwa_arm_controller]: Action status changes will be monitored at 20.00 Hz.
[spawner-7] [INFO] [1674644513.521453594] [spawner_iiwa_arm_controller]: Configured and activated iiwa_arm_controller
[INFO] [spawner-7]: process has finished cleanly [pid 19062]
[move_group-2] [INFO] [1674644513.802643421] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Publishing maintained planning scene on 'monitored_planning_scene'
[move_group-2] [INFO] [1674644513.802836190] [moveit.ros_planning_interface.moveit_cpp]: Listening to 'joint_states' for joint states
[move_group-2] [INFO] [1674644513.803586411] [moveit_ros.current_state_monitor]: Listening to joint states on topic 'joint_states'
[move_group-2] [INFO] [1674644513.803981833] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/attached_collision_object' for attached collision objects
[move_group-2] [INFO] [1674644513.804005847] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor
[move_group-2] [INFO] [1674644513.804343707] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/planning_scene'
[move_group-2] [INFO] [1674644513.804362868] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.
[move_group-2] [INFO] [1674644513.804756746] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'collision_object'
[move_group-2] [INFO] [1674644513.805070791] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'planning_scene_world' for planning scene world geometry
[move_group-2] [WARN] [1674644513.805932857] [moveit.ros.occupancy_map_monitor.middleware_handle]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead
[move_group-2] [ERROR] [1674644513.805954604] [moveit.ros.occupancy_map_monitor.middleware_handle]: No 3D sensor plugin(s) defined for octomap updates
[move_group-2] [INFO] [1674644519.046187793] [moveit.ros_planning_interface.moveit_cpp]: Loading planning pipeline 'pilz'
[move_group-2] [INFO] [1674644519.056607866] [moveit.pilz_industrial_motion_planner.joint_limits_aggregator]: Reading limits from namespace robot_description_planning
[move_group-2] [INFO] [1674644519.070341069] [moveit.pilz_industrial_motion_planner]: Available plugins: pilz_industrial_motion_planner/PlanningContextLoaderCIRC pilz_industrial_motion_planner/PlanningContextLoaderLIN pilz_industrial_motion_planner/PlanningContextLoaderPTP 
[move_group-2] [INFO] [1674644519.070377523] [moveit.pilz_industrial_motion_planner]: About to load: pilz_industrial_motion_planner/PlanningContextLoaderCIRC
[move_group-2] [INFO] [1674644519.076712625] [moveit.pilz_industrial_motion_planner]: Registered Algorithm [CIRC]
[move_group-2] [INFO] [1674644519.076740918] [moveit.pilz_industrial_motion_planner]: About to load: pilz_industrial_motion_planner/PlanningContextLoaderLIN
[move_group-2] [INFO] [1674644519.079663093] [moveit.pilz_industrial_motion_planner]: Registered Algorithm [LIN]
[move_group-2] [INFO] [1674644519.079683703] [moveit.pilz_industrial_motion_planner]: About to load: pilz_industrial_motion_planner/PlanningContextLoaderPTP
[move_group-2] [INFO] [1674644519.082457322] [moveit.pilz_industrial_motion_planner]: Registered Algorithm [PTP]
[move_group-2] [INFO] [1674644519.082499066] [moveit.ros_planning.planning_pipeline]: Using planning interface 'Pilz Industrial Motion Planner'
[move_group-2] [INFO] [1674644519.089049036] [moveit.ros_planning_interface.moveit_cpp]: Loading planning pipeline 'ompl'
[move_group-2] [INFO] [1674644519.138394940] [moveit.ros_planning.planning_pipeline]: Using planning interface 'OMPL'
[move_group-2] [INFO] [1674644519.147526471] [moveit_ros.add_time_optimal_parameterization]: Param 'ompl.path_tolerance' was not set. Using default value: 0.100000
[move_group-2] [INFO] [1674644519.147560965] [moveit_ros.add_time_optimal_parameterization]: Param 'ompl.resample_dt' was not set. Using default value: 0.100000
[move_group-2] [INFO] [1674644519.147568894] [moveit_ros.add_time_optimal_parameterization]: Param 'ompl.min_angle_change' was not set. Using default value: 0.001000
[move_group-2] [INFO] [1674644519.147608122] [moveit_ros.fix_workspace_bounds]: Param 'ompl.default_workspace_bounds' was not set. Using default value: 10.000000
[move_group-2] [INFO] [1674644519.147697044] [moveit_ros.fix_start_state_bounds]: Param 'ompl.start_state_max_bounds_error' was set to 0.100000
[move_group-2] [INFO] [1674644519.147728071] [moveit_ros.fix_start_state_bounds]: Param 'ompl.start_state_max_dt' was not set. Using default value: 0.500000
[move_group-2] [INFO] [1674644519.147748971] [moveit_ros.fix_start_state_collision]: Param 'ompl.start_state_max_dt' was not set. Using default value: 0.500000
[move_group-2] [INFO] [1674644519.147773298] [moveit_ros.fix_start_state_collision]: Param 'ompl.jiggle_fraction' was not set. Using default value: 0.020000
[move_group-2] [INFO] [1674644519.147779515] [moveit_ros.fix_start_state_collision]: Param 'ompl.max_sampling_attempts' was not set. Using default value: 100
[move_group-2] [INFO] [1674644519.147791203] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Add Time Optimal Parameterization'
[move_group-2] [INFO] [1674644519.147796166] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Workspace Bounds'
[move_group-2] [INFO] [1674644519.147800001] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Bounds'
[move_group-2] [INFO] [1674644519.147803605] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State In Collision'
[move_group-2] [INFO] [1674644519.147807017] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Path Constraints'
[move_group-2] [INFO] [1674644519.174520042] [moveit.plugins.moveit_simple_controller_manager]: Added FollowJointTrajectory controller for iiwa_arm_controller
[move_group-2] [INFO] [1674644519.174632617] [moveit.plugins.moveit_simple_controller_manager]: Returned 1 controllers in list
[move_group-2] [INFO] [1674644519.174651289] [moveit.plugins.moveit_simple_controller_manager]: Returned 1 controllers in list
[move_group-2] [INFO] [1674644519.175073648] [moveit_ros.trajectory_execution_manager]: Trajectory execution is managing controllers
[move_group-2] [INFO] [1674644519.175091979] [move_group.move_group]: MoveGroup debug mode is ON
[move_group-2] [INFO] [1674644519.206513100] [moveit.pilz_industrial_motion_planner.move_group_sequence_action]: initialize move group sequence action
[move_group-2] [INFO] [1674644519.208765746] [moveit.pilz_industrial_motion_planner.joint_limits_aggregator]: Reading limits from namespace robot_description_planning
[move_group-2] [WARN] [1674644519.208873643] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209023224] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209070013] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209112695] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209156505] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209201516] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209247463] [move_group]: Failed loading deceleration limits
[move_group-2] [INFO] [1674644519.209349173] [moveit.pilz_industrial_motion_planner.joint_limits_aggregator]: Reading limits from namespace robot_description_planning
[move_group-2] [WARN] [1674644519.209388380] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209436427] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209477221] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209520474] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209562256] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209603725] [move_group]: Failed loading deceleration limits
[move_group-2] [WARN] [1674644519.209647292] [move_group]: Failed loading deceleration limits
[move_group-2] [INFO] [1674644519.210547062] [move_group.move_group]: 
[move_group-2] 
[move_group-2] ********************************************************
[move_group-2] * MoveGroup using: 
[move_group-2] *     - ApplyPlanningSceneService
[move_group-2] *     - ClearOctomapService
[move_group-2] *     - CartesianPathService
[move_group-2] *     - ExecuteTrajectoryAction
[move_group-2] *     - GetPlanningSceneService
[move_group-2] *     - KinematicsService
[move_group-2] *     - MoveAction
[move_group-2] *     - MotionPlanService
[move_group-2] *     - QueryPlannersService
[move_group-2] *     - StateValidationService
[move_group-2] *     - SequenceAction
[move_group-2] *     - SequenceService
[move_group-2] ********************************************************
[move_group-2] 
[move_group-2] [INFO] [1674644519.210641974] [moveit_move_group_capabilities_base.move_group_context]: MoveGroup context using planning plugin pilz_industrial_motion_planner/CommandPlanner
[move_group-2] [INFO] [1674644519.210657839] [moveit_move_group_capabilities_base.move_group_context]: MoveGroup context initialization complete
[move_group-2] Loading 'move_group/ApplyPlanningSceneService'...
[move_group-2] Loading 'move_group/ClearOctomapService'...
[move_group-2] Loading 'move_group/MoveGroupCartesianPathService'...
[move_group-2] Loading 'move_group/MoveGroupExecuteTrajectoryAction'...
[move_group-2] Loading 'move_group/MoveGroupGetPlanningSceneService'...
[move_group-2] Loading 'move_group/MoveGroupKinematicsService'...
[move_group-2] Loading 'move_group/MoveGroupMoveAction'...
[move_group-2] Loading 'move_group/MoveGroupPlanService'...
[move_group-2] Loading 'move_group/MoveGroupQueryPlannersService'...
[move_group-2] Loading 'move_group/MoveGroupStateValidationService'...
[move_group-2] Loading 'pilz_industrial_motion_planner/MoveGroupSequenceAction'...
[move_group-2] Loading 'pilz_industrial_motion_planner/MoveGroupSequenceService'...
[move_group-2] 
[move_group-2] You can start planning now!
[move_group-2] 
[rviz2-3] Warning: class_loader.impl: SEVERE WARNING!!! A namespace collision has occurred with plugin factory for class rviz_default_plugins::displays::InteractiveMarkerDisplay. New factory will OVERWRITE existing one. This situation occurs when libraries containing plugins are directly linked against an executable (the one running right now generating this message). Please separate plugins out into their own library or just don't link against the library and use either class_loader::ClassLoader/MultiLibraryClassLoader to open.
[rviz2-3]          at line 253 in /opt/ros/humble/include/class_loader/class_loader/class_loader_core.hpp
[rviz2-3] [ERROR] [1674644538.417972056] [moveit_ros_visualization.motion_planning_frame]: Action server: /recognize_objects not available
[rviz2-3] [INFO] [1674644538.453665242] [moveit_ros_visualization.motion_planning_frame]: MoveGroup namespace changed: / -> . Reloading params.
[rviz2-3] [INFO] [1674644538.484306168] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00432143 seconds
[rviz2-3] [INFO] [1674644538.484357983] [moveit_robot_model.robot_model]: Loading robot model 'iiwa'...
[rviz2-3] [WARN] [1674644538.484374787] [moveit_robot_model.robot_model]: Skipping virtual joint 'virtual_joint' because its child frame 'iiwa_base' does not match the URDF frame 'world'
[rviz2-3] [INFO] [1674644538.484385317] [moveit_robot_model.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint
[rviz2-3] [ERROR] [1674644538.748258255] [moveit_background_processing.background_processing]: Exception caught while processing action 'loadRobotModel': parameter 'robot_description_planning.joint_limits.joint_a1.max_velocity' has invalid type: Wrong parameter type, parameter {robot_description_planning.joint_limits.joint_a1.max_velocity} is of type {double}, setting it to {string} is not allowed.

May I ask how can i fix this problem?

Thanks!

Yunqi

Motion Planning for real robot

Hi,

i'm trying to control the real robot use Moveit. I've tried moveit_servo and it works. But when i try to use move_group run following code:

ros2 launch iiwa_bringup iiwa.launch.py use_fake_hardware:=false use_planning:=true

RVIZ can't be open correctly:
Screenshot from 2023-02-07 11-55-31
The log is as following:

yunqi@yunqi-U22:~/iiwa_ros2$ ros2 launch iiwa_bringup iiwa.launch.py use_planning:=true use_fake_hardware:=false
[INFO] [launch]: All log files can be found below /home/yunqi/.ros/log/2023-02-16-09-03-06-598122-yunqi-U22-4105
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [ros2_control_node-1]: process started with pid [4127]
[INFO] [move_group-2]: process started with pid [4129]
[INFO] [rviz2-3]: process started with pid [4131]
[INFO] [robot_state_publisher-4]: process started with pid [4133]
[INFO] [spawner-5]: process started with pid [4135]
[INFO] [spawner-6]: process started with pid [4137]
[rviz2-3] Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
[robot_state_publisher-4] [INFO] [1676534587.696214674] [robot_state_publisher]: got segment iiwa_base
[robot_state_publisher-4] [INFO] [1676534587.696367481] [robot_state_publisher]: got segment link_0
[robot_state_publisher-4] [INFO] [1676534587.696387726] [robot_state_publisher]: got segment link_1
[robot_state_publisher-4] [INFO] [1676534587.696418566] [robot_state_publisher]: got segment link_2
[robot_state_publisher-4] [INFO] [1676534587.696427992] [robot_state_publisher]: got segment link_3
[robot_state_publisher-4] [INFO] [1676534587.696436614] [robot_state_publisher]: got segment link_4
[robot_state_publisher-4] [INFO] [1676534587.696445038] [robot_state_publisher]: got segment link_5
[robot_state_publisher-4] [INFO] [1676534587.696454152] [robot_state_publisher]: got segment link_6
[robot_state_publisher-4] [INFO] [1676534587.696462944] [robot_state_publisher]: got segment link_7
[robot_state_publisher-4] [INFO] [1676534587.696471560] [robot_state_publisher]: got segment tool0
[robot_state_publisher-4] [INFO] [1676534587.696480075] [robot_state_publisher]: got segment world
[ros2_control_node-1] [INFO] [1676534587.729492701] [resource_manager]: Loading hardware 'iiwaRobot' 
[ros2_control_node-1] [INFO] [1676534587.734064847] [resource_manager]: Initialize hardware 'iiwaRobot' 
[ros2_control_node-1] [INFO] [1676534587.734122372] [resource_manager]: Successful initialization of hardware 'iiwaRobot'
[ros2_control_node-1] [INFO] [1676534587.734263854] [resource_manager]: 'configure' hardware 'iiwaRobot' 
[ros2_control_node-1] [INFO] [1676534587.734277812] [resource_manager]: Successful 'configure' of hardware 'iiwaRobot'
[ros2_control_node-1] [INFO] [1676534587.734291666] [resource_manager]: 'activate' hardware 'iiwaRobot' 
[ros2_control_node-1] [INFO] [1676534587.734302830] [IiwaFRIHardwareInterface]: Starting ...please wait...
[ros2_control_node-1] [INFO] [1676534587.734322449] [IiwaFRIHardwareInterface]: Connecting FRI to port= 30200 and ip= 172.31.1.147
[ros2_control_node-1] [INFO] [1676534587.734362491] [IiwaFRIHardwareInterface]: System Successfully started!
[ros2_control_node-1] [INFO] [1676534587.734370130] [resource_manager]: Successful 'activate' of hardware 'iiwaRobot'
[ros2_control_node-1] [INFO] [1676534587.739109584] [controller_manager]: update rate is 225 Hz
[ros2_control_node-1] [WARN] [1676534587.739382336] [controller_manager]: Could not enable FIFO RT scheduling policy
[move_group-2] [INFO] [1676534587.743602930] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00422034 seconds
[move_group-2] [INFO] [1676534587.743707053] [moveit_robot_model.robot_model]: Loading robot model 'iiwa'...
[move_group-2] [WARN] [1676534587.743721345] [moveit_robot_model.robot_model]: Skipping virtual joint 'virtual_joint' because its child frame 'iiwa_base' does not match the URDF frame 'world'
[move_group-2] [INFO] [1676534587.743728906] [moveit_robot_model.robot_model]: No root/virtual joint specified in SRDF. Assuming fixed joint
[ros2_control_node-1] [INFO] [1676534587.932074113] [controller_manager]: Loading controller 'joint_state_broadcaster'
[spawner-6] [INFO] [1676534587.962666120] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster
[ros2_control_node-1] [INFO] [1676534587.963954234] [controller_manager]: Configuring controller 'joint_state_broadcaster'
[ros2_control_node-1] [INFO] [1676534587.964086259] [joint_state_broadcaster]: 'joints' or 'interfaces' parameter is empty. All available state interfaces will be published
[spawner-5] [INFO] [1676534587.979445647] [spawner_ets_state_broadcaster]: Waiting for '/controller_manager' node to exist
[rviz2-3] [INFO] [1676534588.045471167] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-3] [INFO] [1676534588.045643015] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[rviz2-3] [INFO] [1676534588.071372649] [rviz2]: Stereo is NOT SUPPORTED
[move_group-2] [INFO] [1676534588.781310674] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Publishing maintained planning scene on 'monitored_planning_scene'
[move_group-2] [INFO] [1676534588.781534938] [moveit.ros_planning_interface.moveit_cpp]: Listening to 'joint_states' for joint states
[move_group-2] [INFO] [1676534588.782236642] [moveit_ros.current_state_monitor]: Listening to joint states on topic 'joint_states'
[move_group-2] [INFO] [1676534588.782600376] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/attached_collision_object' for attached collision objects
[move_group-2] [INFO] [1676534588.782730352] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor
[move_group-2] [INFO] [1676534588.783089217] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/planning_scene'
[move_group-2] [INFO] [1676534588.783110032] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.
[move_group-2] [INFO] [1676534588.783558968] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'collision_object'
[move_group-2] [INFO] [1676534588.784047483] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'planning_scene_world' for planning scene world geometry
[move_group-2] [WARN] [1676534588.784941937] [moveit.ros.occupancy_map_monitor.middleware_handle]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead
[move_group-2] [ERROR] [1676534588.784960466] [moveit.ros.occupancy_map_monitor.middleware_handle]: No 3D sensor plugin(s) defined for octomap updates
[rviz2-3] Warning: Invalid frame ID "link_1" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_2" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_3" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_4" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_5" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_6" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_1" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_2" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_3" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_4" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_5" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_6" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_1" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_2" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_3" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_4" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_5" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_6" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_1" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_2" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_3" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_4" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_5" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_6" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_1" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_2" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_3" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_4" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_5" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_6" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_1" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_2" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_3" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_4" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_5" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_6" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_1" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_2" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_3" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_4" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_5" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_6" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_1" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_2" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_3" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_4" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_5" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_6" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_1" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_2" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_3" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_4" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_5" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_6" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_1" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_2" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_3" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_4" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_5" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp
[rviz2-3] Warning: Invalid frame ID "link_6" passed to canTransform argument source_frame - frame does not exist
[rviz2-3]          at line 93 in ./src/buffer_core.cpp

May i ask how to fix this problem?

Thanks in advance.

add other iiwa models in urdf

The currently available model of the iiwa robot is the iiwa 14 R820 with pneumatic touch flange.
Feature: add models and urdf variants for iiwa 7, med series and different flanges.

impedance_controller usage

Hello, master. I want to use the impedance_controller to get some work done, so I ran command_interface:="effort" robot_controller:="impedance_controller" to load impedance_controller, but I don't know how to make the robot move with impedance_controller, could you give me some tips?

launch gazebo simulation direclty from `iiwa.launch.py`

In the current version of the iiwa.launch.py script gazebo cannot be run directly. Need to use iiwa_gazebo.launch.py instead.
Feature: include the possibility to run gazebo sim from iiwa.launch.py simply using use_sim:=true.

Install Problem - fresh install

Hello

Description

ROS Distro: Galactic
OS Version: e.g. Ubuntu 20.04

Steps to reproduce


cd ~/ros2_ws
git clone https://github.com/ICube-Robotics/iiwa_ros2.git src/iiwa_ros2
rosdep install --ignore-src --from-paths . -y -r
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --symlink-install
source install/setup.bash


Expected Behaviour:

Install without fail:
https://gist.github.com/MightyMirko/229f3a0f5d809c8acd42315a117d4362

I also had to install ros-control manually. I'd like to contribute but have to dig deeper in dependencies to be sure

Planning with moveit2 tutorial hello_moveit fails

In the last few days, I've been trying to control the arm with Moveit2 following the Moveit2 tutorials, and I'm failing with the demo node example to connect to the planning engine.

I realized that I should add to the 'Ros param' the options:
ros__parameters:
#use_sim_time: True
publish_robot_description: True
publish_robot_description_semantic: True
To speculate it to the planning node.

After doing so, I still can't make it work.
While running the Hello_moveit2 node I get the message:
[INFO] [1669134673.662537690] [move_group_interface]: MoveGroup action client/server ready
[INFO] [1669134674.065487066] [move_group_interface]: Planning request accepted
[INFO] [1669134674.166100159] [move_group_interface]: Planning request aborted
[ERROR] [1669134674.266322450] [move_group_interface]: MoveGroupInterface::plan() failed or timeout reached
[ERROR] [1669134674.266431050] [hello_moveit]: Planing failed!

And in the main thread I receive the:
[move_group-3] [INFO] [1669134673.664465904] [moveit_move_group_default_capabilities.move_action_capability]: Received request
[move_group-3] [INFO] [1669134673.664998807] [moveit_move_group_default_capabilities.move_action_capability]: executing..
[move_group-3] [INFO] [1669134673.665266209] [moveit_move_group_default_capabilities.move_action_capability]: Planning request received for MoveGroup action. Forwarding to planning pipeline.
[move_group-3] [ERROR] [1669134673.665484611] [moveit.pilz_industrial_motion_planner]: No ContextLoader for planner_id '' found. Planning not possible.
[move_group-3] [INFO] [1669134673.665553511] [moveit_move_group_default_capabilities.move_action_capability]: Unknown event

Any ideas?
Thanks

_medflange.setLEDRed() not defined / found

When copying the iiwa_ros2.java file into my applications folder in my sunrise project I get an error indicating that the method .setLEDRed() is not defined. The only LED method found is setLEDBlue(). I cant push the project onto the robot while these errors consist.

Best regards.

Application fails to open socket

I set up my machine and the robot with the IP addresses given in the README. Using the terminal I can even ping the robot connected by LAN using the preconfigured IP "192.170.10.2", but when launching the bring-up launch file, the application fails to connect using UDP. Is there anything obvious I am missing?

Building package failed (Ubuntu mate 20.04 / Galactic)

Great project. Unfortunately I cant build the package anymore since 2 weeks. I use ubuntu mate 20.04 and ROS2 galactic.

holger@holger-VirtualBox:~/galactic_workspace$ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release --symlink-install
Starting >>> iiwa_description
Finished <<< iiwa_description [2.53s]                  
Starting >>> iiwa_bringup
Finished <<< iiwa_bringup [4.85s]                  
Starting >>> external_torque_sensor_broadcaster
--- stderr: external_torque_sensor_broadcaster                                
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_controllers/external_torque_sensor_broadcaster/src/external_torque_sensor_broadcaster.cpp: In member function ‘virtual controller_interface::return_type external_torque_sensor_broadcaster::ExternalTorqueSensorBroadcaster::update(const rclcpp::Time&, const rclcpp::Duration&)’:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_controllers/external_torque_sensor_broadcaster/src/external_torque_sensor_broadcaster.cpp:146:96: warning: unused parameter ‘time’ [-Wunused-parameter]
  146 | ExternalTorqueSensorBroadcaster::update(const rclcpp::Time & time, const rclcpp::Duration & period)
      |                                         ~~~~~~~~~~~~~~~~~~~~~^~~~

/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_controllers/external_torque_sensor_broadcaster/src/external_torque_sensor_broadcaster.cpp:146:127: warning: unused parameter ‘period’ [-Wunused-parameter]
  146 | ::update(const rclcpp::Time & time, const rclcpp::Duration & period)
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~

---
Finished <<< external_torque_sensor_broadcaster [17.7s]
Starting >>> iiwa_moveit2
[Processing: iiwa_moveit2]                             
[Processing: iiwa_moveit2]                                      
[Processing: iiwa_moveit2]                                       
Finished <<< iiwa_moveit2 [1min 46s]                              
Starting >>> impedance_controller
--- stderr: impedance_controller                                     
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_controllers/impedance_controller/src/impedance_controller.cpp: In member function ‘virtual controller_interface::return_type impedance_controller::ImpedanceController::update(const rclcpp::Time&, const rclcpp::Duration&)’:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_controllers/impedance_controller/src/impedance_controller.cpp:186:84: warning: unused parameter ‘time’ [-Wunused-parameter]
  186 | return_type ImpedanceController::update(const rclcpp::Time & time, const rclcpp::Duration & period)
      |                                         ~~~~~~~~~~~~~~~~~~~~~^~~~

/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_controllers/impedance_controller/src/impedance_controller.cpp:186:115: warning: unused parameter ‘period’ [-Wunused-parameter]
  186 | ::update(const rclcpp::Time & time, const rclcpp::Duration & period)
      |                                     ~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~

---
Finished <<< impedance_controller [24.6s]
Starting >>> iiwa_hardware
--- stderr: iiwa_hardware                                   
In file included from /home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:16:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:67:46: error: ‘rclcpp’ does not name a type
   67 |   hardware_interface::return_type read(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                              ^~~~~~
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:67:59: error: expected unqualified-id before ‘&’ token
   67 |   hardware_interface::return_type read(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                                           ^
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:67:58: error: expected ‘)’ before ‘&’ token
   67 |   hardware_interface::return_type read(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                       ~                  ^~
      |                                                          )
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:67:59: error: expected ‘;’ at end of member declaration
   67 |   hardware_interface::return_type read(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                                           ^
      |                                                            ;
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:67:61: error: ‘time’ does not name a type
   67 |   hardware_interface::return_type read(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                                             ^~~~
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:70:47: error: ‘rclcpp’ does not name a type
   70 |   hardware_interface::return_type write(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                               ^~~~~~
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:70:60: error: expected unqualified-id before ‘&’ token
   70 |   hardware_interface::return_type write(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                                            ^
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:70:59: error: expected ‘)’ before ‘&’ token
   70 |   hardware_interface::return_type write(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                        ~                  ^~
      |                                                           )
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:70:60: error: expected ‘;’ at end of member declaration
   70 |   hardware_interface::return_type write(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                                            ^
      |                                                             ;
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:70:62: error: ‘time’ does not name a type
   70 |   hardware_interface::return_type write(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                                              ^~~~
In file included from /opt/ros/galactic/include/rclcpp/client.hpp:40,
                 from /opt/ros/galactic/include/rclcpp/callback_group.hpp:23,
                 from /opt/ros/galactic/include/rclcpp/any_executable.hpp:20,
                 from /opt/ros/galactic/include/rclcpp/memory_strategy.hpp:25,
                 from /opt/ros/galactic/include/rclcpp/memory_strategies.hpp:18,
                 from /opt/ros/galactic/include/rclcpp/executor_options.hpp:20,
                 from /opt/ros/galactic/include/rclcpp/executor.hpp:36,
                 from /opt/ros/galactic/include/rclcpp/executors/multi_threaded_executor.hpp:26,
                 from /opt/ros/galactic/include/rclcpp/executors.hpp:21,
                 from /opt/ros/galactic/include/rclcpp/rclcpp.hpp:156,
                 from /home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:31:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp: In member function ‘virtual CallbackReturn iiwa_hardware::IiwaDirectServoPositionHardwareInterface::on_init(const hardware_interface::HardwareInfo&)’:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:55:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 6 has type ‘std::vector<hardware_interface::InterfaceInfo>::size_type’ {aka ‘long unsigned int’} [-Wformat=]
   55 |         "Joint '%s' has %d command interfaces found. 1 expected.", joint.name.c_str(),
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   56 |         joint.command_interfaces.size());
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                      |
      |                                      std::vector<hardware_interface::InterfaceInfo>::size_type {aka long unsigned int}
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:55:26: note: format string is defined here
   55 |         "Joint '%s' has %d command interfaces found. 1 expected.", joint.name.c_str(),
      |                         ~^
      |                          |
      |                          int
      |                         %ld
In file included from /opt/ros/galactic/include/rclcpp/client.hpp:40,
                 from /opt/ros/galactic/include/rclcpp/callback_group.hpp:23,
                 from /opt/ros/galactic/include/rclcpp/any_executable.hpp:20,
                 from /opt/ros/galactic/include/rclcpp/memory_strategy.hpp:25,
                 from /opt/ros/galactic/include/rclcpp/memory_strategies.hpp:18,
                 from /opt/ros/galactic/include/rclcpp/executor_options.hpp:20,
                 from /opt/ros/galactic/include/rclcpp/executor.hpp:36,
                 from /opt/ros/galactic/include/rclcpp/executors/multi_threaded_executor.hpp:26,
                 from /opt/ros/galactic/include/rclcpp/executors.hpp:21,
                 from /opt/ros/galactic/include/rclcpp/rclcpp.hpp:156,
                 from /home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:31:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:73:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 6 has type ‘std::vector<hardware_interface::InterfaceInfo>::size_type’ {aka ‘long unsigned int’} [-Wformat=]
   73 |         "Joint '%s' has %d state interface. 1 expected.", joint.name.c_str(),
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   74 |         joint.state_interfaces.size());
      |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                                    |
      |                                    std::vector<hardware_interface::InterfaceInfo>::size_type {aka long unsigned int}
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:73:26: note: format string is defined here
   73 |         "Joint '%s' has %d state interface. 1 expected.", joint.name.c_str(),
      |                         ~^
      |                          |
      |                          int
      |                         %ld
In file included from /opt/ros/galactic/include/rclcpp/client.hpp:40,
                 from /opt/ros/galactic/include/rclcpp/callback_group.hpp:23,
                 from /opt/ros/galactic/include/rclcpp/any_executable.hpp:20,
                 from /opt/ros/galactic/include/rclcpp/memory_strategy.hpp:25,
                 from /opt/ros/galactic/include/rclcpp/memory_strategies.hpp:18,
                 from /opt/ros/galactic/include/rclcpp/executor_options.hpp:20,
                 from /opt/ros/galactic/include/rclcpp/executor.hpp:36,
                 from /opt/ros/galactic/include/rclcpp/executors/multi_threaded_executor.hpp:26,
                 from /opt/ros/galactic/include/rclcpp/executors.hpp:21,
                 from /opt/ros/galactic/include/rclcpp/rclcpp.hpp:156,
                 from /home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:31:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp: In member function ‘virtual CallbackReturn iiwa_hardware::IiwaDirectServoPositionHardwareInterface::on_activate(const rclcpp_lifecycle::State&)’:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:126:78: warning: format ‘%s’ expects argument of type ‘char*’, but argument 6 has type ‘std::string’ {aka ‘std::__cxx11::basic_string<char>’} [-Wformat=]
  126 | lcpp::get_logger("IiwaDirectServoPositionHardwareInterface"),"Connecting to port= %i and ip= %s", p_port, p_ip);
      |                                                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:126:111: note: format string is defined here
  126 | PositionHardwareInterface"),"Connecting to port= %i and ip= %s", p_port, p_ip);
      |                                                             ~^
      |                                                              |
      |                                                              char*

/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:181:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  181 |     if (socket_status_ != msg_data_send.length()) {
      |         ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:202:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::__cxx11::basic_string<char> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  202 |           for(int i=1;i<state_elements.size();i++) hw_states_[i-1]=atof(state_elements[i].c_str());
      |                       ~^~~~~~~~~~~~~~~~~~~~~~
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:119:102: warning: unused parameter ‘previous_state’ [-Wunused-parameter]
  119 | nHardwareInterface::on_activate(const rclcpp_lifecycle::State & previous_state)
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~

/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp: In member function ‘virtual CallbackReturn iiwa_hardware::IiwaDirectServoPositionHardwareInterface::on_deactivate(const rclcpp_lifecycle::State&)’:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:225:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::__cxx11::basic_string<char>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  225 |   if (socket_status_ != msg_data_send.length()) {
      |       ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:217:104: warning: unused parameter ‘previous_state’ [-Wunused-parameter]
  217 | ardwareInterface::on_deactivate(const rclcpp_lifecycle::State & previous_state)
      |                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~

/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp: At global scope:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:237:33: error: no declaration matches ‘hardware_interface::return_type iiwa_hardware::IiwaDirectServoPositionHardwareInterface::read(const rclcpp::Time&, const rclcpp::Duration&)’
  237 | hardware_interface::return_type IiwaDirectServoPositionHardwareInterface::read(const rclcpp::Time & /*time*/, const rclcpp::Duration & /*period*/)
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:16:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:67:35: note: candidate is: ‘hardware_interface::return_type iiwa_hardware::IiwaDirectServoPositionHardwareInterface::read(...) &’
   67 |   hardware_interface::return_type read(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                   ^~~~
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:46:7: note: ‘class iiwa_hardware::IiwaDirectServoPositionHardwareInterface’ defined here
   46 | class IiwaDirectServoPositionHardwareInterface : public hardware_interface::SystemInterface
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:259:33: error: no declaration matches ‘hardware_interface::return_type iiwa_hardware::IiwaDirectServoPositionHardwareInterface::write(const rclcpp::Time&, const rclcpp::Duration&)’
  259 | hardware_interface::return_type IiwaDirectServoPositionHardwareInterface::write(const rclcpp::Time & /*time*/, const rclcpp::Duration & /*period*/)
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:16:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:70:35: note: candidate is: ‘hardware_interface::return_type iiwa_hardware::IiwaDirectServoPositionHardwareInterface::write(...) &’
   70 |   hardware_interface::return_type write(const rclcpp::Time & time, const rclcpp::Duration & period) override;
      |                                   ^~~~~
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:46:7: note: ‘class iiwa_hardware::IiwaDirectServoPositionHardwareInterface’ defined here
   46 | class IiwaDirectServoPositionHardwareInterface : public hardware_interface::SystemInterface
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /opt/ros/galactic/include/class_loader/class_loader_core.hpp:57,
                 from /opt/ros/galactic/include/class_loader/class_loader.hpp:55,
                 from /opt/ros/galactic/include/pluginlib/class_list_macros.hpp:40,
                 from /home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:287:
/opt/ros/galactic/include/class_loader/meta_object.hpp: In instantiation of ‘B* class_loader::impl::MetaObject<C, B>::create() const [with C = iiwa_hardware::IiwaDirectServoPositionHardwareInterface; B = hardware_interface::SystemInterface]’:
/opt/ros/galactic/include/class_loader/meta_object.hpp:216:7:   required from here
/opt/ros/galactic/include/class_loader/meta_object.hpp:218:12: error: invalid new-expression of abstract class type ‘iiwa_hardware::IiwaDirectServoPositionHardwareInterface’
  218 |     return new C;
      |            ^~~~~
In file included from /home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:16:
/home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:46:7: note:   because the following virtual functions are pure within ‘iiwa_hardware::IiwaDirectServoPositionHardwareInterface’:
   46 | class IiwaDirectServoPositionHardwareInterface : public hardware_interface::SystemInterface
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/include/iiwa_hardware/iiwa_HI_DS.hpp:29,
                 from /home/holger/galactic_workspace/src/iiwa_ros2/iiwa_hardware/src/iiwa_HI_DS.cpp:16:
/opt/ros/galactic/include/hardware_interface/system_interface.hpp:168:23: note: ‘virtual hardware_interface::return_type hardware_interface::SystemInterface::read()’
  168 |   virtual return_type read() = 0;
      |                       ^~~~
/opt/ros/galactic/include/hardware_interface/system_interface.hpp:177:23: note: ‘virtual hardware_interface::return_type hardware_interface::SystemInterface::write()’
  177 |   virtual return_type write() = 0;
      |                       ^~~~~
make[2]: *** [CMakeFiles/iiwa_hardware.dir/build.make:63: CMakeFiles/iiwa_hardware.dir/src/iiwa_HI_DS.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:78: CMakeFiles/iiwa_hardware.dir/all] Error 2
make: *** [Makefile:141: all] Error 2
---
Failed   <<< iiwa_hardware [11.5s, exited with code 2]

Summary: 5 packages finished [2min 48s]
  1 package failed: iiwa_hardware
  3 packages had stderr output: external_torque_sensor_broadcaster iiwa_hardware impedance_controller

Planning crashes using use_sim:=true

While Gazebo is on, I tried to use the planning option (use_planning:=true), and the process failed.
It is due to clock issues.

Is there any option that I'm missing?
thanks

Waiting for '/controller_manager' node to exist

Hi,

Thanks for creating this project. I am trying to use it, however when I run it, the /controller_manager node never fires up, this eventually causes an error:

Warning: Invalid frame ID "link_6" passed to canTransform argument source_frame - frame does not exist
[rviz2-6] at line 93 in ./src/buffer_core.cpp

Rviz eventually loads, but it displays a white box disconnected from the iiwa base.

Any ideas of what might cause this?

Many thanks,
Sam

iiwa in rviz and gazebo

Hello,
I have this code that runs the iiwa in rviz with controllers:
import os
from launch import LaunchDescription
from launch.actions import DeclareLaunchArgument, IncludeLaunchDescription
from launch.conditions import IfCondition
from launch.substitutions import Command, FindExecutable, LaunchConfiguration, PathJoinSubstitution
from launch_ros.actions import Node
from launch_ros.substitutions import FindPackageShare
from ament_index_python.packages import get_package_share_directory
from launch_ros.actions import Node #permite iniciar nodes neste launch file
from launch.launch_description_sources import PythonLaunchDescriptionSource

from typing import Dict, List, Optional, Union

def generate_launch_description():
# Declare arguments
declared_arguments = []
declared_arguments.append(
DeclareLaunchArgument(
'description_package',
default_value='iiwa_description',
description='Description package with robot URDF/xacro files. Usually the argument
is not set, it enables use of a custom description.',
)
)
declared_arguments.append(
DeclareLaunchArgument(
'description_file',
default_value='iiwa.config.xacro',
description='URDF/XACRO description file with the robot.',
)
)
declared_arguments.append(
DeclareLaunchArgument(
'prefix',
default_value='""',
description='Prefix of the joint names, useful for multi-robot setup.
If changed than also joint names in the controllers
configuration have to be updated. Expected format "/"',
)
)
declared_arguments.append(
DeclareLaunchArgument(
'namespace',
default_value='/',
description='Namespace of launched nodes, useful for multi-robot setup.
If changed than also the namespace in the controllers
configuration needs to be updated. Expected format "/".',
)
)
declared_arguments.append(
DeclareLaunchArgument(
'start_rviz',
default_value='true',
description='Start RViz2 automatically with this launch file.',
)
)
declared_arguments.append(
DeclareLaunchArgument(
'base_frame_file',
default_value='base_frame.yaml',
description='Configuration file of robot base frame wrt World.',
)
)
declared_arguments.append(
DeclareLaunchArgument(
'use_sim',
default_value='false',
description='Start robot in Gazebo simulation.',
)
)

# Initialize Arguments
description_package = LaunchConfiguration('description_package')
description_file = LaunchConfiguration('description_file')
prefix = LaunchConfiguration('prefix')
start_rviz = LaunchConfiguration('start_rviz')
base_frame_file = LaunchConfiguration('base_frame_file')
namespace = LaunchConfiguration('namespace')
use_sim = LaunchConfiguration('use_sim')

# Get URDF via xacro
robot_description_content = Command(
    [
        PathJoinSubstitution([FindExecutable(name='xacro')]),
        ' ',
        PathJoinSubstitution(
            [FindPackageShare(description_package), 'config', description_file]
        ),
        ' ',
        'prefix:=',
        prefix,
        ' ',
        'base_frame_file:=',
        base_frame_file,
        ' ',
        'description_package:=',
        description_package,
        ' ',
        'namespace:=',
        namespace,
    ]
)

robot_description = {'robot_description': robot_description_content}

# Get SRDF via xacro
robot_description_semantic_content = Command(
    [
        PathJoinSubstitution([FindExecutable(name="xacro")]),
        " ",
        PathJoinSubstitution(
            [FindPackageShare(description_package), "srdf", "iiwa.srdf.xacro"]
        ),
        " ",
        "name:=",
        "iiwa",
        " ",
        "prefix:=",
        prefix,
        " ",
        'description_package:=',
        description_package,
    ]
)

robot_description_semantic = {
    'robot_description_semantic': robot_description_semantic_content
}

# Get planning parameters
robot_description_planning_joint_limits = PathJoinSubstitution([
        FindPackageShare(description_package), "moveit2", "iiwa_joint_limits.yaml",
    ]
)

robot_description_planning_cartesian_limits = PathJoinSubstitution([
        FindPackageShare(description_package), "moveit2", "iiwa_cartesian_limits.yaml",
    ]
)

move_group_capabilities = {
    "capabilities": """pilz_industrial_motion_planner/MoveGroupSequenceAction \
        pilz_industrial_motion_planner/MoveGroupSequenceService"""
}

robot_description_kinematics = PathJoinSubstitution(
    [FindPackageShare(description_package), "moveit2", "kinematics.yaml"]
)

planning_pipelines_config = PathJoinSubstitution([
        FindPackageShare(description_package), "moveit2", "planning_pipelines_config.yaml",
    ]
)

ompl_planning_config = PathJoinSubstitution([
        FindPackageShare(description_package), "moveit2", "ompl_planning.yaml",
    ]
)

moveit_controllers = PathJoinSubstitution(
    [FindPackageShare(description_package),
        "moveit2", "iiwa_moveit_controller_config.yaml"]
)

trajectory_execution = {
    "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,
}

planning_scene_monitor_parameters = {
    "publish_planning_scene": True,
    "publish_geometry_updates": True,
    "publish_state_updates": True,
    "publish_transforms_updates": True,
}

move_group_node = Node(
    package="moveit_ros_move_group",
    executable="move_group",
    namespace=namespace,
    output="screen",
    parameters=[
        robot_description,
        robot_description_semantic,
        robot_description_kinematics,
        robot_description_planning_cartesian_limits,
        robot_description_planning_joint_limits,
        planning_pipelines_config,
        ompl_planning_config,
        trajectory_execution,
        moveit_controllers,
        planning_scene_monitor_parameters,
        move_group_capabilities,
        {"use_sim_time": use_sim},
    ],
)

 #RViz
rviz_config_file = (
    get_package_share_directory("miar_robot") + "/launch/miar1.rviz"
)

rviz_node = Node(
    package='rviz2',
    executable='rviz2',
    name='rviz2',
    output='log',
    arguments=['-d', rviz_config_file],
    parameters=[
        robot_description,
        robot_description_semantic,
        robot_description_planning_cartesian_limits,
        robot_description_planning_joint_limits,
        robot_description_kinematics,
        planning_pipelines_config,
        ompl_planning_config,
    ],
    condition=IfCondition(start_rviz),
)

# Static TF
static_tf = Node(                                    #Um ros node que publica a transformação estática entre os sistemas de coordenas world e panda_link0
    package="tf2_ros",
    executable="static_transform_publisher",
    name="static_transform_publisher",
    output="log",
    arguments=["0.0", "0.0", "0.0", "0.0", "0.0", "0.0", "world", "link_0"],           #coordenadas de translação (os 3 primeiros 0); coordenadas de rotação os 3 segundos zeros;world é o nome de sistemas de coordenadas global ou de referencia; (panda_link0 no caso do robot panda) link_0 é o sistema de coordenadas que está sendo transformado em relação ao sistema de coordenadas de referencia "world"
)

    # Publish TF
robot_state_publisher = Node(
    package="robot_state_publisher",
    executable="robot_state_publisher",
    name="robot_state_publisher",
    output="both",
    parameters=[robot_description],
)

    # ros2_control using FakeSystem as hardware
ros2_controllers_path = os.path.join(
    get_package_share_directory("iiwa_description"),
    "config",
    "iiwa_controllers.yaml",
)
ros2_control_node = Node(
package="controller_manager",
executable="ros2_control_node",
parameters=[robot_description, ros2_controllers_path],
output="both",
)

joint_state_broadcaster_spawner = Node(
    package="controller_manager",
    executable="spawner",
    arguments=[
        "joint_state_broadcaster",
        "--controller-manager-timeout",
        "300",
        "--controller-manager",
        "/controller_manager",
    ],
)    

arm_controller_spawner = Node(
    package="controller_manager",
    executable="spawner",
    arguments=["iiwa_arm_controller", "-c", "/controller_manager"],
)




nodes = [
    move_group_node,
    rviz_node,
    static_tf,
    robot_state_publisher,
    ros2_control_node,
    joint_state_broadcaster_spawner,
    arm_controller_spawner,
]

return LaunchDescription(declared_arguments + nodes)

The code works fine. I'm able to launch the robot in the rviz and generate trajectories. DO you know what i have to add to this code for the robot be able to be seen also working in gazebo??

Multiarm setup

I am trying to connect two iiwa arms to my host pc. For that, I created a launch file that launches two nodes from the iiwa_bringup package. However, I could not load the controllers successfully using the namespace functionality. In the Readme it says that I have to change the controller config files. I creates a separate file for each robot but I am not sure where to append the namespaces "iiwa_right" and "iiwa_left". Thank you in advance for any hint on how to solve this.

Concretely, I am receiving error messages like

[ros2_control_node-1] [ERROR] [1698329512.720356644] [iiwa_right.controller_manager]: The 'type' param was not defined for 'ets_state_broadcaster'.
[spawner-3] [FATAL] [1698329512.745321053] [spawner_ets_state_broadcaster]: Failed loading controller ets_state_broadcaster

This is my dualarm launch file with the parameters:

def generate_launch_description():
    # Declare arguments
    declared_arguments = []

    # Initialize Arguments
    prefix_right = "iiwa_right/"
    prefix_left = "iiwa_left/"
    start_rviz = "false"
    use_sim = "false"
    use_fake_hardware = "false"
    use_planning = "false"
    robot_ip_right = "172.31.1.147"
    robot_ip_left = "172.31.1.148"
    base_frame_file_right = "base_frame_right.yaml"
    base_frame_file_left = "base_frame_left.yaml"
    namespace_right = "iiwa_right/"
    namespace_left = "iiwa_left/"
    controllers_file_right = "iiwa_controllers.yaml"
    controllers_file_left = "iiwa_controllers_left.yaml"


    iiwa_bringup_launch_right = IncludeLaunchDescription(
        PythonLaunchDescriptionSource([
            FindPackageShare('iiwa_bringup'),
            '/launch',
            '/iiwa.launch.py'
        ]),
        launch_arguments={
            'prefix': prefix_right,
            'start_rviz': start_rviz,
            'use_fake_hardware': use_fake_hardware,
            'use_planning': use_planning,
            'robot_ip': robot_ip_right,
            'base_frame_file': base_frame_file_right,
            'namespace': namespace_right,
            'use_sim': use_sim, 
            'controllers_file': controllers_file_right,
        }.items(),
    )

    iiwa_bringup_launch_left = IncludeLaunchDescription(
        PythonLaunchDescriptionSource([
            FindPackageShare('iiwa_bringup'),
            '/launch',
            '/iiwa.launch.py'
        ]),
        launch_arguments={
            'prefix': prefix_left,
            'start_rviz': start_rviz,
            'use_fake_hardware': use_fake_hardware,
            'use_planning': use_planning,
            'robot_ip': robot_ip_left,
            'base_frame_file': base_frame_file_left,
            'namespace': namespace_left,
            'use_sim': use_sim,
            'controllers_file': controllers_file_left,
        }.items(),
    )


    nodes = [
        iiwa_bringup_launch_right,
        iiwa_bringup_launch_left
    ]

    return LaunchDescription(declared_arguments + nodes)

servoing jerkiness

I am using the joy_servo_teleop.launch.py example with a game controller. The iiwa moves however the movement is very jittery. I tried changing the publish_period in iiwa_moveit2_servo_config.yaml and it helped a little, but the motion is still jerky.

Any recommendations? Were you using a real time kernal? I would be glad to provide more details about my setup.

Thank you.

Command not found "vcs"

Hello,
I am a beginner in ubuntu.
When I perform "vcs import src < src/iiwa_ros2.repos", the result is "bash: src/iiwa_ros2.repos: No such file or directory".
I found there is really no this file, so I change the command to "vcs import src < src/iiwa_ros2/iiwa_ros2.repos", and the result is “command not found "vcs" ”.
I am confused. Will you tell me how to do about it? Thanks.

Windows compatibility

I see in the documentation that ubuntu 20.04 is required but it is also compatible con Windows since ROS2 is??

about "Example commands for setup testing"

from this example, i know how to causes the arm joint to move to a specified angle, but now i want to know if i could make the end of the arm move to a given coordinates?

[issue] Humble, ubuntu22.04, Robot cant move with ros2-control-test-demo

Out of the box with my setup for ip it is not working.

Using the Commands
I start the sunrise software => Position, then:

ros2 launch iiwa_bringup iiwa.launch.py use_fake_hardware:=false

I see the manual movements by hand in rviz, but the following command does not manipulate the robot:
Another terminal, same ros_domain id

ros2 launch iiwa_bringup iiwa_test_joint_trajectory_controller.launch.py

Position is the only mode useful. Both, Monitoring and Torque are moving the robot from initial positions to crash position in platform.
Iam currently using the iiwa_14 urdf model for my iiwa 7 but it does not make any difference.

Sunrise Connectivity.FRI version?

Dear maintainers, I was wondering if you could document the FRI version used to test the ROS2 stack. I am using Sunrise Connectivity 1.7 and it seems to be incompatible. What is the minimum FRI / Connectivity version required?
Best regards

[How-To] How to start coding own software

Hello,

i'd like to write my own publishing node for angles or cartesian positions but i dont know how and where to start.

My goal is to mount a camera on the iiwa7 and track a moving qr code or aruco tag. The detection is almost done and now i'd like to publish and transform the pose of the tag to iiwa to follow the tag with movements.

Where should i start?

#5 #32

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.