Coder Social home page Coder Social logo

frankaemika / franka_ros2 Goto Github PK

View Code? Open in Web Editor NEW
78.0 78.0 57.0 4.23 MB

ROS 2 integration for Franka research robots

Home Page: https://frankaemika.github.io/docs/franka_ros2.html

License: Apache License 2.0

Dockerfile 0.55% CMake 3.20% Python 10.57% C++ 85.08% C 0.60%
robotics ros2

franka_ros2's People

Contributors

andreasgfranka avatar andreaskuhner avatar barisyazici avatar christian-rauch avatar christoph-jaehne avatar destogl avatar falfab avatar marcoesposito1988 avatar mcbed avatar peterdavidfagan 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

franka_ros2's Issues

libfranka: Move command aborted: motion aborted by reflex! ["joint_position_limits_violation"]

I got this error when executing a move command through moveit.

Looking at some existing discussion like this and this, it seems that ros2_control does not yet respect joint limits, so moveit2 has to do it, and the best way is by defining it in the URDF. It seems like these definitions are indeed already defined here, but when I look at the params, I do not see these values populated as expected:

ros2 param dump /move_group | grep limit
  robot_description:
      type="revolute"> <safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-2.8973"
      soft_upper_limit="2.8973"/> <origin rpy="0 0 0" xyz="0 0 0.333"/> <parent link="panda_link0"/>
      <child link="panda_link1"/> <axis xyz="0 0 1"/> <limit effort="87" lower="-2.8973"
      type="revolute"> <safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-1.7628"
      soft_upper_limit="1.7628"/> <origin rpy="-1.5707963267948966 0 0" xyz="0 0 0"/>
      <limit effort="87" lower="-1.7628" upper="1.7628" velocity="2.1750"/> </joint>
      type="revolute"> <safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-2.8973"
      soft_upper_limit="2.8973"/> <origin rpy="1.5707963267948966 0 0" xyz="0 -0.316
      1"/> <limit effort="87" lower="-2.8973" upper="2.8973" velocity="2.1750"/> </joint>
      type="revolute"> <safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-3.0718"
      soft_upper_limit="-0.0698"/> <origin rpy="1.5707963267948966 0 0" xyz="0.0825
      0 1"/> <limit effort="87" lower="-3.0718" upper="-0.0698" velocity="2.1750"/>
      k_velocity="40.0" soft_lower_limit="-2.8973" soft_upper_limit="2.8973"/> <origin
      <child link="panda_link5"/> <axis xyz="0 0 1"/> <limit effort="12" lower="-2.8973"
      type="revolute"> <safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-0.0175"
      soft_upper_limit="3.7525"/> <origin rpy="1.5707963267948966 0 0" xyz="0 0 0"/>
      <limit effort="12" lower="-0.0175" upper="3.7525" velocity="2.6100"/> </joint>
      type="revolute"> <safety_controller k_position="100.0" k_velocity="40.0" soft_lower_limit="-2.8973"
      soft_upper_limit="2.8973"/> <origin rpy="1.5707963267948966 0 0" xyz="0.088
      0 1"/> <limit effort="12" lower="-2.8973" upper="2.8973" velocity="2.6100"/>
      0 0" xyz="0 0 0.0584"/> <axis xyz="0 1 0"/> <limit effort="20" lower="0.0" upper="0.04"
      0 0" xyz="0 0 0.0584"/> <axis xyz="0 -1 0"/> <limit effort="20" lower="0.0"
  robot_description_planning:   
     joint_limits:
          has_acceleration_limits: null
          has_jerk_limits: null
          has_velocity_limits: null
          has_acceleration_limits: null
          has_jerk_limits: null
          has_velocity_limits: null
       ...

This is noted when launching the franka moveit launch

Position Command Interface Sensitivity & Control Exceptions

We have tried to use the position command interface, but found strange motion generation exceptions. We posted to #52, and learned about the libfranka bug which requires reading from initial_joint_position. After applying that fix, we still have been unable to use the position command interface, and I believe we now have a repeatable demo which shows this issue. Commanding any change in (initial) position with a magnitude of 1e-5 radians or larger results in motion generation and control exceptions. This sensitivity is preventing us from using the position interface at all, unfortunately. This change in position, 0.00001 rad, seems to be well within the acceleration limits specified in the libfranka documentation.

I have forked humble, and changed the relevant line in joint_position_example_controller.cpp to highlight this issue. If you run that example, with my modification applied, you should immediately see a Franka control exception without any arm motion.

jcarpinelli-bdai@8ed4d99

humble release

Can we get this and libfranka released to the humble repos?

franka moveit crushes after the external activation device is pressed down

While the terminal is running
ros2 launch franka_moveit_config moveit.launch.py robot_ip:=my_robot_ip
and I press external activation device which makes the display light turn from blue to white, the moveit node crushes because of the exception what(): libfranka: Move command aborted: User Stop pressed!. But in ros1 it is not the case. In ros1 the moveit node is still running after I bring the external activation device to the activated state (white light).

my terminal is like this:

[INFO] [launch]: All log files can be found below /home/rpl/.ros/log/2023-02-03-11-10-03-834375-robotics-261820
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [rviz2-1]: process started with pid [261824]
[INFO] [robot_state_publisher-2]: process started with pid [261826]
[INFO] [move_group-3]: process started with pid [261828]
[INFO] [ros2_control_node-4]: process started with pid [261830]
[INFO] [joint_state_publisher-5]: process started with pid [261832]
[INFO] [franka_gripper_node-6]: process started with pid [261834]
[INFO] [ros2 run controller_manager spawner.py panda_arm_controller-7]: process started with pid [261836]
[INFO] [ros2 run controller_manager spawner.py joint_state_broadcaster-8]: process started with pid [261838]
[robot_state_publisher-2] Parsing robot urdf xml string.
[franka_gripper_node-6] [INFO] [1675419004.204783183] [panda_gripper]: Trying to establish a connection with the gripper
[franka_gripper_node-6] [INFO] [1675419004.205655200] [panda_gripper]: Connected to gripper
[robot_state_publisher-2] Link panda_link0 had 1 children
[robot_state_publisher-2] Link panda_link1 had 1 children
[robot_state_publisher-2] Link panda_link2 had 1 children
[robot_state_publisher-2] Link panda_link3 had 1 children
[robot_state_publisher-2] Link panda_link4 had 1 children
[robot_state_publisher-2] Link panda_link5 had 1 children
[robot_state_publisher-2] Link panda_link6 had 1 children
[robot_state_publisher-2] Link panda_link7 had 1 children
[robot_state_publisher-2] Link panda_link8 had 1 children
[robot_state_publisher-2] Link panda_hand had 3 children
[robot_state_publisher-2] Link panda_leftfinger had 0 children
[robot_state_publisher-2] Link panda_rightfinger had 0 children
[robot_state_publisher-2] Link panda_hand_tcp had 0 children
[robot_state_publisher-2] [INFO] [1675419004.206866968] [robot_state_publisher]: got segment panda_hand
[robot_state_publisher-2] [INFO] [1675419004.206939973] [robot_state_publisher]: got segment panda_hand_tcp
[robot_state_publisher-2] [INFO] [1675419004.206952427] [robot_state_publisher]: got segment panda_leftfinger
[robot_state_publisher-2] [INFO] [1675419004.206962090] [robot_state_publisher]: got segment panda_link0
[robot_state_publisher-2] [INFO] [1675419004.206971538] [robot_state_publisher]: got segment panda_link1
[robot_state_publisher-2] [INFO] [1675419004.206980825] [robot_state_publisher]: got segment panda_link2
[robot_state_publisher-2] [INFO] [1675419004.206990021] [robot_state_publisher]: got segment panda_link3
[robot_state_publisher-2] [INFO] [1675419004.206999166] [robot_state_publisher]: got segment panda_link4
[robot_state_publisher-2] [INFO] [1675419004.207008518] [robot_state_publisher]: got segment panda_link5
[robot_state_publisher-2] [INFO] [1675419004.207017768] [robot_state_publisher]: got segment panda_link6
[robot_state_publisher-2] [INFO] [1675419004.207026967] [robot_state_publisher]: got segment panda_link7
[robot_state_publisher-2] [INFO] [1675419004.207036385] [robot_state_publisher]: got segment panda_link8
[robot_state_publisher-2] [INFO] [1675419004.207045645] [robot_state_publisher]: got segment panda_rightfinger
[robot_state_publisher-2] [INFO] [1675419004.207055537] [robot_state_publisher]: got segment panda_table_link
[ros2_control_node-4] [INFO] [1675419004.219853161] [FrankaHardwareInterface]: Connecting to robot at "172.16.1.22" ...
[ros2_control_node-4] [INFO] [1675419004.221130550] [FrankaHardwareInterface]: Successfully connected to robot
[ros2_control_node-4] [INFO] [1675419004.221264865] [FrankaHardwareInterface]: Started
[ros2_control_node-4] [INFO] [1675419004.231040806] [controller_manager]: update rate is 1000 Hz
[move_group-3] [WARN] [1675419004.259931590] [move_group.move_group]: MoveGroup launched without ~default_planning_pipeline specifying the namespace for the default planning pipeline configuration
[move_group-3] [WARN] [1675419004.259978652] [move_group.move_group]: Falling back to using the the move_group node namespace (deprecated behavior).
[move_group-3] Parsing robot urdf xml string.
[move_group-3] [INFO] [1675419004.264849176] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00253798 seconds
[move_group-3] [INFO] [1675419004.264884871] [moveit_robot_model.robot_model]: Loading robot model 'panda'...
[move_group-3] [WARN] [1675419004.264991459] [moveit_robot_model.robot_model]: Link panda_leftfinger has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
[move_group-3] [WARN] [1675419004.265001741] [moveit_robot_model.robot_model]: Link panda_rightfinger has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
[move_group-3] Link panda_link0 had 1 children
[move_group-3] Link panda_link1 had 1 children
[move_group-3] Link panda_link2 had 1 children
[move_group-3] Link panda_link3 had 1 children
[move_group-3] Link panda_link4 had 1 children
[move_group-3] Link panda_link5 had 1 children
[move_group-3] Link panda_link6 had 1 children
[move_group-3] Link panda_link7 had 1 children
[move_group-3] Link panda_link8 had 1 children
[move_group-3] Link panda_hand had 3 children
[move_group-3] Link panda_leftfinger had 0 children
[move_group-3] Link panda_rightfinger had 0 children
[move_group-3] Link panda_hand_tcp had 0 children
[move_group-3] [INFO] [1675419004.279157109] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Publishing maintained planning scene on 'monitored_planning_scene'
[move_group-3] [INFO] [1675419004.279686837] [moveit.ros_planning_interface.moveit_cpp]: Listening to 'joint_states' for joint states
[move_group-3] [INFO] [1675419004.280174600] [moveit_ros.current_state_monitor]: Listening to joint states on topic 'joint_states'
[move_group-3] [INFO] [1675419004.280810808] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/attached_collision_object' for attached collision objects
[move_group-3] [INFO] [1675419004.280828779] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor
[move_group-3] [INFO] [1675419004.281094433] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/planning_scene'
[move_group-3] [INFO] [1675419004.281107126] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.
[move_group-3] [INFO] [1675419004.281435202] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'collision_object'
[move_group-3] [INFO] [1675419004.281718383] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'planning_scene_world' for planning scene world geometry
[move_group-3] [WARN] [1675419004.281751017] [moveit.ros.occupancy_map_monitor]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead
[move_group-3] [ERROR] [1675419004.281779418] [moveit.ros.occupancy_map_monitor]: No 3D sensor plugin(s) defined for octomap updates
[move_group-3] [INFO] [1675419004.282650961] [moveit.ros_planning_interface.moveit_cpp]: Loading planning pipeline 'move_group'
[move_group-3] [INFO] [1675419004.302923011] [moveit.ros_planning.planning_pipeline]: Using planning interface 'OMPL'
[move_group-3] [INFO] [1675419004.306300556] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.path_tolerance' was not set. Using default value: 0.100000
[move_group-3] [INFO] [1675419004.306323127] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.resample_dt' was not set. Using default value: 0.100000
[move_group-3] [INFO] [1675419004.306330188] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.min_angle_change' was not set. Using default value: 0.001000
[move_group-3] [INFO] [1675419004.306369961] [moveit_ros.fix_workspace_bounds]: Param 'move_group.default_workspace_bounds' was not set. Using default value: 10.000000
[move_group-3] [INFO] [1675419004.306397597] [moveit_ros.fix_start_state_bounds]: Param 'move_group.start_state_max_bounds_error' was set to 0.050000
[move_group-3] [INFO] [1675419004.306406704] [moveit_ros.fix_start_state_bounds]: Param 'move_group.start_state_max_dt' was not set. Using default value: 0.500000
[move_group-3] [INFO] [1675419004.306427389] [moveit_ros.fix_start_state_collision]: Param 'move_group.start_state_max_dt' was not set. Using default value: 0.500000
[move_group-3] [INFO] [1675419004.306435406] [moveit_ros.fix_start_state_collision]: Param 'move_group.jiggle_fraction' was not set. Using default value: 0.020000
[move_group-3] [INFO] [1675419004.306450990] [moveit_ros.fix_start_state_collision]: Param 'move_group.max_sampling_attempts' was not set. Using default value: 100
[move_group-3] [INFO] [1675419004.306472482] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Add Time Optimal Parameterization'
[move_group-3] [INFO] [1675419004.306519999] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Resolve constraint frames to robot links'
[move_group-3] [INFO] [1675419004.306528189] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Workspace Bounds'
[move_group-3] [INFO] [1675419004.306534163] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Bounds'
[move_group-3] [INFO] [1675419004.306539943] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State In Collision'
[move_group-3] [INFO] [1675419004.306545828] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Path Constraints'
[ros2 run controller_manager spawner.py panda_arm_controller-7] [INFO] [1675419004.627826860] [spawner_panda_arm_controller]: Waiting for /controller_manager services
[ros2 run controller_manager spawner.py joint_state_broadcaster-8] [INFO] [1675419004.658067986] [spawner_joint_state_broadcaster]: Waiting for /controller_manager services
[joint_state_publisher-5] [INFO] [1675419004.661600739] [joint_state_publisher]: Waiting for robot_description to be published on the robot_description topic...
[ros2_control_node-4] [INFO] [1675419004.833877638] [controller_manager]: Loading controller 'panda_arm_controller'
[ros2 run controller_manager spawner.py panda_arm_controller-7] [INFO] [1675419004.843504311] [spawner_panda_arm_controller]: Loaded panda_arm_controller
[ros2_control_node-4] [INFO] [1675419004.850177252] [controller_manager]: Configuring controller 'panda_arm_controller'
[ros2_control_node-4] [INFO] [1675419004.850761103] [panda_arm_controller]: Command interfaces are [effort] and and state interfaces are [position velocity].
[ros2_control_node-4] [INFO] [1675419004.851711442] [panda_arm_controller]: Controller state will be published at 50.00 Hz.
[ros2_control_node-4] [INFO] [1675419004.852404412] [panda_arm_controller]: Action status changes will be monitored at 20.00 Hz.
[move_group-3] [INFO] [1675419004.854752552] [moveit.plugins.moveit_simple_controller_manager]: Added FollowJointTrajectory controller for panda_arm_controller
[move_group-3] [INFO] [1675419004.854835725] [moveit.plugins.moveit_simple_controller_manager]: Max effort set to 0.0
[move_group-3] [INFO] [1675419004.857165807] [moveit.plugins.moveit_simple_controller_manager]: Added GripperCommand controller for panda_gripper
[move_group-3] [INFO] [1675419004.857294080] [moveit.plugins.moveit_simple_controller_manager]: Returned 2 controllers in list
[move_group-3] [INFO] [1675419004.857672915] [moveit_ros.trajectory_execution_manager]: Trajectory execution is managing controllers
[move_group-3] [INFO] [1675419004.857688853] [move_group.move_group]: MoveGroup debug mode is ON
[ros2 run controller_manager spawner.py panda_arm_controller-7] [INFO] [1675419004.859272546] [spawner_panda_arm_controller]: Configured and started panda_arm_controller
[ros2_control_node-4] [INFO] [1675419004.866736039] [controller_manager]: Loading controller 'joint_state_broadcaster'
[ros2 run controller_manager spawner.py joint_state_broadcaster-8] [INFO] [1675419004.876576208] [spawner_joint_state_broadcaster]: Loaded joint_state_broadcaster
[move_group-3] [INFO] [1675419004.879070080] [move_group.move_group]:
[move_group-3]
[move_group-3] ********************************************************
[move_group-3] * MoveGroup using:
[move_group-3] * - ApplyPlanningSceneService
[move_group-3] * - ClearOctomapService
[move_group-3] * - CartesianPathService
[move_group-3] * - ExecuteTrajectoryAction
[move_group-3] * - GetPlanningSceneService
[move_group-3] * - KinematicsService
[move_group-3] * - MoveAction
[move_group-3] * - MotionPlanService
[move_group-3] * - QueryPlannersService
[move_group-3] * - StateValidationService
[move_group-3] ********************************************************
[move_group-3]
[move_group-3] [INFO] [1675419004.879115799] [moveit_move_group_capabilities_base.move_group_context]: MoveGroup context using planning plugin ompl_interface/OMPLPlanner
[move_group-3] [INFO] [1675419004.879131668] [moveit_move_group_capabilities_base.move_group_context]: MoveGroup context initialization complete
[move_group-3] Loading 'move_group/ApplyPlanningSceneService'...
[move_group-3] Loading 'move_group/ClearOctomapService'...
[move_group-3] Loading 'move_group/MoveGroupCartesianPathService'...
[move_group-3] Loading 'move_group/MoveGroupExecuteTrajectoryAction'...
[move_group-3] Loading 'move_group/MoveGroupGetPlanningSceneService'...
[move_group-3] Loading 'move_group/MoveGroupKinematicsService'...
[move_group-3] Loading 'move_group/MoveGroupMoveAction'...
[move_group-3] Loading 'move_group/MoveGroupPlanService'...
[move_group-3] Loading 'move_group/MoveGroupQueryPlannersService'...
[move_group-3] Loading 'move_group/MoveGroupStateValidationService'...
[move_group-3]
[move_group-3] You can start planning now!
[move_group-3]
[rviz2-1] [INFO] [1675419004.899197301] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-1] [INFO] [1675419004.899367139] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[INFO] [ros2 run controller_manager spawner.py panda_arm_controller-7]: process has finished cleanly [pid 261836]
[rviz2-1] [INFO] [1675419004.925408516] [rviz2]: Stereo is NOT SUPPORTED
[ros2_control_node-4] [INFO] [1675419004.958353948] [controller_manager]: Configuring controller 'joint_state_broadcaster'
[ros2 run controller_manager spawner.py joint_state_broadcaster-8] [INFO] [1675419004.963613340] [spawner_joint_state_broadcaster]: Configured and started joint_state_broadcaster
[INFO] [ros2 run controller_manager spawner.py joint_state_broadcaster-8]: process has finished cleanly [pid 261838]
[rviz2-1] 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-1] at line 253 in /opt/ros/foxy/include/class_loader/class_loader_core.hpp
[rviz2-1] Parsing robot urdf xml string.
[rviz2-1] [INFO] [1675419005.047024419] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00134235 seconds
[rviz2-1] [INFO] [1675419005.047112127] [moveit_robot_model.robot_model]: Loading robot model 'panda'...
[rviz2-1] [WARN] [1675419005.047299808] [moveit_robot_model.robot_model]: Link panda_leftfinger has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
[rviz2-1] [WARN] [1675419005.047313272] [moveit_robot_model.robot_model]: Link panda_rightfinger has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
[rviz2-1] [ERROR] [1675419008.726199542] [moveit_ros_visualization.motion_planning_frame]: Action server: /recognize_objects not available
[rviz2-1] Parsing robot urdf xml string.
[rviz2-1] [INFO] [1675419008.829768378] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00140166 seconds
[rviz2-1] [INFO] [1675419008.829819146] [moveit_robot_model.robot_model]: Loading robot model 'panda'...
[rviz2-1] [WARN] [1675419008.829913203] [moveit_robot_model.robot_model]: Link panda_leftfinger has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
[rviz2-1] [WARN] [1675419008.829927946] [moveit_robot_model.robot_model]: Link panda_rightfinger has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
[rviz2-1] Link panda_link0 had 1 children
[rviz2-1] Link panda_link1 had 1 children
[rviz2-1] Link panda_link2 had 1 children
[rviz2-1] Link panda_link3 had 1 children
[rviz2-1] Link panda_link4 had 1 children
[rviz2-1] Link panda_link5 had 1 children
[rviz2-1] Link panda_link6 had 1 children
[rviz2-1] Link panda_link7 had 1 children
[rviz2-1] Link panda_link8 had 1 children
[rviz2-1] Link panda_hand had 3 children
[rviz2-1] Link panda_leftfinger had 0 children
[rviz2-1] Link panda_rightfinger had 0 children
[rviz2-1] Link panda_hand_tcp had 0 children
[rviz2-1] [INFO] [1675419008.875369626] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor
[rviz2-1] [INFO] [1675419008.876056027] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/monitored_planning_scene'
[ros2_control_node-4] terminate called after throwing an instance of 'franka::ControlException'
[ros2_control_node-4] what(): libfranka: Move command aborted: User Stop pressed!
[ERROR] [ros2_control_node-4]: process has died [pid 261830, exit code -6, cmd '/opt/ros/foxy/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_u3tunc1p --params-file /home/rpl/franka_ros2_ws/install/franka_moveit_config/share/franka_moveit_config/config/panda_ros_controllers.yaml -r joint_states:=franka/joint_states'].
[INFO] [launch]: process[ros2_control_node-4] was required: shutting down launched system
[INFO] [franka_gripper_node-6]: sending signal 'SIGINT' to process[franka_gripper_node-6]
[INFO] [joint_state_publisher-5]: sending signal 'SIGINT' to process[joint_state_publisher-5]
[INFO] [move_group-3]: sending signal 'SIGINT' to process[move_group-3]
[INFO] [robot_state_publisher-2]: sending signal 'SIGINT' to process[robot_state_publisher-2]
[INFO] [rviz2-1]: sending signal 'SIGINT' to process[rviz2-1]
[franka_gripper_node-6] [INFO] [1675419011.078615591] [rclcpp]: signal_handler(signal_value=2)
[move_group-3] [INFO] [1675419011.080601808] [rclcpp]: signal_handler(signal_value=2)
[robot_state_publisher-2] [INFO] [1675419011.082003243] [rclcpp]: signal_handler(signal_value=2)
[rviz2-1] [INFO] [1675419011.083257282] [rclcpp]: signal_handler(signal_value=2)
[move_group-3] [INFO] [1675419011.090332322] [moveit.ros_planning_interface.moveit_cpp]: Deleting MoveItCpp
[move_group-3] [INFO] [1675419011.091618592] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Stopped publishing maintained planning scene.
[move_group-3] [INFO] [1675419011.092063162] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Stopping world geometry monitor
[move_group-3] [INFO] [1675419011.092272626] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Stopping planning scene monitor
[INFO] [robot_state_publisher-2]: process has finished cleanly [pid 261826]
[move_group-3] Warning: class_loader.ClassLoader: SEVERE WARNING!!! Attempting to unload library while objects created by this loader exist in the heap! You should delete your objects before attempting to unload the library or destroying the ClassLoader. The library will NOT be unloaded.
[move_group-3] at line 127 in /tmp/binarydeb/ros-foxy-class-loader-2.0.3/src/class_loader.cpp
[INFO] [move_group-3]: process has finished cleanly [pid 261828]
[move_group-3]
[INFO] [joint_state_publisher-5]: process has finished cleanly [pid 261832]
[rviz2-1] [INFO] [1675419011.132836383] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Stopping planning scene monitor
[INFO] [franka_gripper_node-6]: process has finished cleanly [pid 261834]
[INFO] [rviz2-1]: process has finished cleanly [pid 261824]

Reading and writing to the same hardware interface

To implement a joint position controller (which accepts a topic input), we need to be able to read the current state of the robot. To do this, I added the "/position" interface to the configure_state_interfaces method, as shown here. When I do so, I get the following error.

If we cannot read and write to the same hardware interfaces, I think we can add one extra topic input to the controller which accepts the published robot state. Still, I think the optimal solution is reading the state directly from the hardware interface. Is this supported?

Launch Output
$ ros2 launch franka_bringup joint_position_example_controller.launch.py robot_ip:=${IP}

[spawner-5] [INFO] [1711125035.965050119] [spawner_franka_robot_state_broadcaster]: Configured and activated franka_robot_state_broadcaster
[spawner-7] [INFO] [1711125035.969229936] [spawner_joint_position_example_controller]: Configured and activated joint_position_example_controller
[spawner-4] [INFO] [1711125035.971297980] [spawner_joint_state_broadcaster]: Configured and activated joint_state_broadcaster
[ros2_control_node-3] terminate called after throwing an instance of 'franka::ControlException'
[ros2_control_node-3]   what():  libfranka: Move command aborted: motion aborted by reflex! ["joint_motion_generator_acceleration_discontinuity"]
[ros2_control_node-3] Stack trace (most recent call last) in thread 845:
[ros2_control_node-3] #19   Object "", at 0xffffffffffffffff, in 
[ros2_control_node-3] #18   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7ff0ad13f84f, in 
[ros2_control_node-3] #17   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7ff0ad0adac2, in 
[ros2_control_node-3] #16   Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7ff0ad33e252, in 
[ros2_control_node-3] #15   Object "/opt/ros/humble/lib/controller_manager/ros2_control_node", at 0x55c0f40f7800, in 
[ros2_control_node-3] #14   Object "/opt/ros/humble/lib/libcontroller_manager.so", at 0x7ff0ad74a2d4, in controller_manager::ControllerManager::read(rclcpp::Time const&, rclcpp::Duration const&)
[ros2_control_node-3] #13   Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7ff0acf4e69c, in hardware_interface::ResourceManager::read(rclcpp::Time const&, rclcpp::Duration const&)
[ros2_control_node-3] #12   Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7ff0acf6be8f, in hardware_interface::System::read(rclcpp::Time const&, rclcpp::Duration const&)
[ros2_control_node-3] #11   Object "/workspaces/bdai/_build/build/franka_hardware/libfranka_hardware.so", at 0x7ff092f27cb8, in franka_hardware::FrankaHardwareInterface::read(rclcpp::Time const&, rclcpp::Duration const&)
[ros2_control_node-3] #10   Object "/workspaces/bdai/_build/build/franka_hardware/libfranka_hardware.so", at 0x7ff092f441a4, in franka_hardware::Robot::readOnce()
[ros2_control_node-3] #9    Object "/workspaces/bdai/_build/build/franka_hardware/libfranka_hardware.so", at 0x7ff092f4557f, in franka_hardware::Robot::readOnceActiveControl()
[ros2_control_node-3] #8    Object "/usr/lib/libfranka.so.0.13.2", at 0x7ff092c91527, in franka::ActiveControl::readOnce()
[ros2_control_node-3] #7    Object "/usr/lib/libfranka.so.0.13.2", at 0x7ff092c8fde2, in franka::Robot::Impl::throwOnMotionError(franka::RobotState const&, unsigned int) [clone .cold]
[ros2_control_node-3] #6    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7ff0ad3104d7, in __cxa_throw
[ros2_control_node-3] #5    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7ff0ad310276, in std::terminate()
[ros2_control_node-3] #4    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7ff0ad31020b, in 
[ros2_control_node-3] #3    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7ff0ad304b9d, in 
[ros2_control_node-3] #2    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7ff0ad0417f2, in abort
[ros2_control_node-3] #1    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7ff0ad05b475, in raise
[ros2_control_node-3] #0    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7ff0ad0af9fc, in pthread_kill
[ros2_control_node-3] Aborted (Signal sent by tkill() 750 770001474)

branch for supporting legacy robots with firmware version 4

There are still many users of the now EOL Franka Panda robots that are stuck on firmware version 4 and libfranka 0.9.

If it is not possible to support libfranka 0.9 and >= 0.10 in parallel on the humble branch, then it would alternatively be very useful to have a "legacy" branch in this upstream repo to (unofficially) support Franka robots with firmware version 4 and libfranka 0.9 with backports. The tag v0.1.0 is the last one that supports libfranka 0.9 as newer versions are requesting higher libfranka versions.

Could someone create a branch from this tag? My suggestions for naming would be legacy or fer1 for "Franka Emika Robot 1".

[franka_descrpition] Inconsistent w/ ROS 1 variant - dynamics estimates?

Relates https://www.franka-community.de/t/panda-dynamic-model/4573/3

In docs, I see the following for ROS 1 flavor:
https://github.com/frankaemika/docs/blame/12fb63aa406b3e33dfc57a97ad5a5362e1ad8aad/source/franka_ros.rst#L36-L39

However, I don't see anything similar for ROS 2, at least upon examining this source tree and/or the docs
https://github.com/frankaemika/docs/blob/12fb63aa406b3e33dfc57a97ad5a5362e1ad8aad/source/franka_ros2.rst

Is there a reason why ROS 2 seems to lag / be different? If so, can it be documented?

Alternatively, is it possible to add this option?

Problems with setup and example

Hello, I got some problem with setup and test the test in Moveit RViz.
In RViz, I cannot see any model, and the terminal shows lots of warn and Error. Such like:

[rviz2-1] [ERROR] [1714078878.830273830] [moveit_background_processing.background_processing]: Exception caught while processing action 'loadRobotModel': parameter 'panda_arm.kinematics_solver_timeout' has invalid type: Wrong parameter type, parameter {panda_arm.kinematics_solver_timeout} is of type {double}, setting it to {string} is not allowed.

[rviz2-1] [WARN] [1714078875.051494350] [moveit_robot_model.robot_model]: Link panda_leftfinger has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.

I will past the picture under. Since I do follow the tutorial to setup, is there any change I should do in the code? Hope you could help me to figure out.
image
image

joint_effort_trajectory_controller missing control_toolbox depend

The package.xml file is missing the line

<depend>control_toolbox</depend>

for the joint_effot_trajectory_controller package.
On a side note, is this package still relevant?
BTW: I am building ros2 galactic from source (foxy vs. galactic should not matter in this issue context).

Franka Description Package

I noticed that there is a discrepancy between the franka_description package for the ROS and ROS 2 repositories.

Are there plans to port changes? Is it worth opening a pr?

Question: Configuring Gripper with ROS 2 Control

I am looking to ensure that the gripper is accessible from the MoveIt API. Currently I have access to the gripper via an action server that is made available by spinning the node defined in franka_gripper.

In order to leverage the gripper via the MoveIt API, I have created an update URDF which contains ros2_control tags for the panda gripper based on the following file where I add a condition for the FrankaHardwareInterface.

I also define controller settings as followings:

moveit_controllers
ros2_controllers

Despite these updated settings I am unable to interact with the gripper. When I check the controller it remains in an inactive state. Any advice on this would be appreciated.

Also note I used ROS 2 and not ROS2 :).

Update: I am also facing errors from the updates I made to the URDF with the FrankaHardwareInterface plugin:

[FrankaHardwareInterface]: Got 9 joints. Expected 7.

It looks like it doesn't expect joints for the gripper to be exposed to this interface. At this point I am guessing the action client is the only way to interact with the gripper (I intend to look into the code a bit more also).

Moveit crashes with franka_ros2 and libfranka (0.10.0)

Hello,

I am working with franka research 3. I tried building franka_ros2 repo with libfranka tag (0.10.0).
I followed the official instructions for building franka_ros2 and for building and installing libfranka tag 0.10.0 I followed the instructions here

When I typed the command below with my robot's IP:

ros2 launch franka_moveit_config moveit.launch.py robot_ip:=<fci-ip>

I had some errors including errors related to stack smashing:

ros2 launch franka_moveit_config moveit.launch.py robot_ip:=192.168.88.250
[INFO] [launch]: All log files can be found below /home/zal2mu/.ros/log/2023-06-20-14-24-58-695950-MCWWCN8157-78698
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [rviz2-1]: process started with pid [78706]
[INFO] [robot_state_publisher-2]: process started with pid [78708]
[INFO] [move_group-3]: process started with pid [78710]
[INFO] [ros2_control_node-4]: process started with pid [78712]
[INFO] [joint_state_publisher-5]: process started with pid [78714]
[INFO] [franka_gripper_node-6]: process started with pid [78716]
[INFO] [ros2 run controller_manager spawner.py panda_arm_controller-7]: process started with pid [78718]
[INFO] [ros2 run controller_manager spawner.py joint_state_broadcaster-8]: process started with pid [78721]
[franka_gripper_node-6] [INFO] [1687263899.320906254] [panda_gripper]: Trying to establish a connection with the gripper
[franka_gripper_node-6] [INFO] [1687263899.321560369] [panda_gripper]: Connected to gripper
[ros2_control_node-4] [INFO] [1687263899.325027572] [FrankaHardwareInterface]: Connecting to robot at "192.168.88.250" ...
[robot_state_publisher-2] Parsing robot urdf xml string.
[robot_state_publisher-2] Link panda_link1 had 1 children
[robot_state_publisher-2] Link panda_link2 had 1 children
[robot_state_publisher-2] Link panda_link3 had 1 children
[robot_state_publisher-2] Link panda_link4 had 1 children
[robot_state_publisher-2] Link panda_link5 had 1 children
[robot_state_publisher-2] Link panda_link6 had 1 children
[robot_state_publisher-2] Link panda_link7 had 1 children
[robot_state_publisher-2] Link panda_link8 had 1 children
[robot_state_publisher-2] Link panda_hand had 3 children
[robot_state_publisher-2] Link panda_leftfinger had 0 children
[robot_state_publisher-2] Link panda_rightfinger had 0 children
[robot_state_publisher-2] Link panda_hand_tcp had 0 children
[robot_state_publisher-2] [INFO] [1687263899.326142223] [robot_state_publisher]: got segment panda_hand
[robot_state_publisher-2] [INFO] [1687263899.326191971] [robot_state_publisher]: got segment panda_hand_tcp
[robot_state_publisher-2] [INFO] [1687263899.326197962] [robot_state_publisher]: got segment panda_leftfinger
[robot_state_publisher-2] [INFO] [1687263899.326202258] [robot_state_publisher]: got segment panda_link0
[robot_state_publisher-2] [INFO] [1687263899.326206177] [robot_state_publisher]: got segment panda_link1
[robot_state_publisher-2] [INFO] [1687263899.326210044] [robot_state_publisher]: got segment panda_link2
[robot_state_publisher-2] [INFO] [1687263899.326213761] [robot_state_publisher]: got segment panda_link3
[robot_state_publisher-2] [INFO] [1687263899.326217476] [robot_state_publisher]: got segment panda_link4
[robot_state_publisher-2] [INFO] [1687263899.326221496] [robot_state_publisher]: got segment panda_link5
[robot_state_publisher-2] [INFO] [1687263899.326225256] [robot_state_publisher]: got segment panda_link6
[robot_state_publisher-2] [INFO] [1687263899.326229054] [robot_state_publisher]: got segment panda_link7
[robot_state_publisher-2] [INFO] [1687263899.326232738] [robot_state_publisher]: got segment panda_link8
[robot_state_publisher-2] [INFO] [1687263899.326236460] [robot_state_publisher]: got segment panda_rightfinger
[ros2_control_node-4] [INFO] [1687263899.330742547] [FrankaHardwareInterface]: Successfully connected to robot
[ros2_control_node-4] [INFO] [1687263899.330913043] [FrankaHardwareInterface]: Started
[ros2_control_node-4] *** stack smashing detected ***: terminated
[move_group-3] [WARN] [1687263899.347884343] [move_group.move_group]: MoveGroup launched without ~default_planning_pipeline specifying the namespace for the default planning pipeline configuration
[move_group-3] [WARN] [1687263899.347939356] [move_group.move_group]: Falling back to using the the move_group node namespace (deprecated behavior).
[move_group-3] Parsing robot urdf xml string.
[move_group-3] [INFO] [1687263899.350524591] [moveit_rdf_loader.rdf_loader]: Loaded robot model in 0.00107411 seconds
[move_group-3] [INFO] [1687263899.350566474] [moveit_robot_model.robot_model]: Loading robot model 'panda'...
[move_group-3] [WARN] [1687263899.350684876] [moveit_robot_model.robot_model]: Link panda_leftfinger has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
[move_group-3] [WARN] [1687263899.350694378] [moveit_robot_model.robot_model]: Link panda_rightfinger has visual geometry but no collision geometry. Collision geometry will be left empty. Fix your URDF file by explicitly specifying collision geometry.
[move_group-3] Link panda_link1 had 1 children
[move_group-3] Link panda_link2 had 1 children
[move_group-3] Link panda_link3 had 1 children
[move_group-3] Link panda_link4 had 1 children
[move_group-3] Link panda_link5 had 1 children
[move_group-3] Link panda_link6 had 1 children
[move_group-3] Link panda_link7 had 1 children
[move_group-3] Link panda_link8 had 1 children
[move_group-3] Link panda_hand had 3 children
[move_group-3] Link panda_leftfinger had 0 children
[move_group-3] Link panda_rightfinger had 0 children
[move_group-3] Link panda_hand_tcp had 0 children
[move_group-3] [INFO] [1687263899.359032318] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Publishing maintained planning scene on 'monitored_planning_scene'
[move_group-3] [INFO] [1687263899.359280270] [moveit.ros_planning_interface.moveit_cpp]: Listening to 'joint_states' for joint states
[move_group-3] [INFO] [1687263899.359681038] [moveit_ros.current_state_monitor]: Listening to joint states on topic 'joint_states'
[move_group-3] [INFO] [1687263899.359952838] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/attached_collision_object' for attached collision objects
[move_group-3] [INFO] [1687263899.359965933] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting planning scene monitor
[move_group-3] [INFO] [1687263899.360110771] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to '/planning_scene'
[move_group-3] [INFO] [1687263899.360120297] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Starting world geometry update monitor for collision objects, attached objects, octomap updates.
[move_group-3] [INFO] [1687263899.360296714] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'collision_object'
[move_group-3] [INFO] [1687263899.360614594] [moveit_ros.planning_scene_monitor.planning_scene_monitor]: Listening to 'planning_scene_world' for planning scene world geometry
[move_group-3] [WARN] [1687263899.360647388] [moveit.ros.occupancy_map_monitor]: Resolution not specified for Octomap. Assuming resolution = 0.1 instead
[move_group-3] [ERROR] [1687263899.360668757] [moveit.ros.occupancy_map_monitor]: No 3D sensor plugin(s) defined for octomap updates
[move_group-3] [INFO] [1687263899.361041416] [moveit.ros_planning_interface.moveit_cpp]: Loading planning pipeline 'move_group'
[move_group-3] [INFO] [1687263899.379534831] [moveit.ros_planning.planning_pipeline]: Using planning interface 'OMPL'
[move_group-3] [INFO] [1687263899.381456895] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.path_tolerance' was not set. Using default value: 0.100000
[move_group-3] [INFO] [1687263899.381473644] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.resample_dt' was not set. Using default value: 0.100000
[move_group-3] [INFO] [1687263899.381477395] [moveit_ros.add_time_optimal_parameterization]: Param 'move_group.min_angle_change' was not set. Using default value: 0.001000
[move_group-3] [INFO] [1687263899.381491806] [moveit_ros.fix_workspace_bounds]: Param 'move_group.default_workspace_bounds' was not set. Using default value: 10.000000
[move_group-3] [INFO] [1687263899.381503779] [moveit_ros.fix_start_state_bounds]: Param 'move_group.start_state_max_bounds_error' was set to 0.050000
[move_group-3] [INFO] [1687263899.381507943] [moveit_ros.fix_start_state_bounds]: Param 'move_group.start_state_max_dt' was not set. Using default value: 0.500000
[move_group-3] [INFO] [1687263899.381515514] [moveit_ros.fix_start_state_collision]: Param 'move_group.start_state_max_dt' was not set. Using default value: 0.500000
[move_group-3] [INFO] [1687263899.381519334] [moveit_ros.fix_start_state_collision]: Param 'move_group.jiggle_fraction' was not set. Using default value: 0.020000
[move_group-3] [INFO] [1687263899.381526278] [moveit_ros.fix_start_state_collision]: Param 'move_group.max_sampling_attempts' was not set. Using default value: 100
[move_group-3] [INFO] [1687263899.381534548] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Add Time Optimal Parameterization'
[move_group-3] [INFO] [1687263899.381560237] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Resolve constraint frames to robot links'
[move_group-3] [INFO] [1687263899.381563148] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Workspace Bounds'
[move_group-3] [INFO] [1687263899.381565602] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Bounds'
[move_group-3] [INFO] [1687263899.381567877] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State In Collision'
[move_group-3] [INFO] [1687263899.381570154] [moveit.ros_planning.planning_pipeline]: Using planning request adapter 'Fix Start State Path Constraints'
[rviz2-1] [INFO] [1687263899.584552584] [rviz2]: Stereo is NOT SUPPORTED
[rviz2-1] [INFO] [1687263899.584708149] [rviz2]: OpenGl version: 4.6 (GLSL 4.6)
[rviz2-1] [INFO] [1687263899.605644592] [rviz2]: Stereo is NOT SUPPORTED
[ros2 run controller_manager spawner.py panda_arm_controller-7] [INFO] [1687263899.636606811] [spawner_panda_arm_controller]: Waiting for /controller_manager services
[ros2 run controller_manager spawner.py joint_state_broadcaster-8] [INFO] [1687263899.645879119] [spawner_joint_state_broadcaster]: Waiting for /controller_manager services
[joint_state_publisher-5] [INFO] [1687263899.690138342] [joint_state_publisher]: Waiting for robot_description to be published on the robot_description topic...
[rviz2-1] 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-1]          at line 253 in /opt/ros/foxy/include/class_loader/class_loader_core.hpp
[ERROR] [ros2_control_node-4]: process has died [pid 78712, exit code -6, cmd '/opt/ros/foxy/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_8f_hiklk --params-file /home/zal2mu/race_franka_ws/install/franka_moveit_config/share/franka_moveit_config/config/panda_ros_controllers.yaml -r joint_states:=franka/joint_states'].
[INFO] [launch]: process[ros2_control_node-4] was required: shutting down launched system
[INFO] [ros2 run controller_manager spawner.py joint_state_broadcaster-8]: sending signal 'SIGINT' to process[ros2 run controller_manager spawner.py joint_state_broadcaster-8]
[INFO] [ros2 run controller_manager spawner.py panda_arm_controller-7]: sending signal 'SIGINT' to process[ros2 run controller_manager spawner.py panda_arm_controller-7]
[INFO] [franka_gripper_node-6]: sending signal 'SIGINT' to process[franka_gripper_node-6]
[INFO] [joint_state_publisher-5]: sending signal 'SIGINT' to process[joint_state_publisher-5]
[INFO] [move_group-3]: sending signal 'SIGINT' to process[move_group-3]
[INFO] [robot_state_publisher-2]: sending signal 'SIGINT' to process[robot_state_publisher-2]
[INFO] [rviz2-1]: sending signal 'SIGINT' to process[rviz2-1]
[franka_gripper_node-6] [INFO] [1687263900.489750108] [rclcpp]: signal_handler(signal_value=2)
[move_group-3] [INFO] [1687263900.490757135] [rclcpp]: signal_handler(signal_value=2)
[move_group-3] [WARN] [1687263900.491086623] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Waiting for panda_arm_controller/follow_joint_trajectory to come up
[move_group-3] [ERROR] [1687263900.491112082] [moveit.simple_controller_manager.follow_joint_trajectory_controller_handle]: Action client not connected: panda_arm_controller/follow_joint_trajectory
[robot_state_publisher-2] [INFO] [1687263900.491294643] [rclcpp]: signal_handler(signal_value=2)
[rviz2-1] [INFO] [1687263900.491871198] [rclcpp]: signal_handler(signal_value=2)
[rviz2-1] [ERROR] [1687263900.491989766] [moveit_ros_visualization.motion_planning_frame]: Action server: /recognize_objects not available
[move_group-3] [ERROR] [1687263900.493595294] [moveit_simple_controller_manager.rclcpp_action]: Error in destruction of rcl action client handle: action client implementation is invalid, at /tmp/binarydeb/ros-foxy-rcl-action-1.1.14/src/rcl_action/action_client.c:470
[move_group-3] [ERROR] [1687263900.493633561] [moveit.plugins.moveit_simple_controller_manager]: Caught unknown exception while parsing controller information
[move_group-3] terminate called after throwing an instance of 'rclcpp::exceptions::RCLError'
[move_group-3]   what():  Failed to create interrupt guard condition in Executor constructor: the given context is not valid, either rcl_init() was not called or rcl_shutdown() was called., at /tmp/binarydeb/ros-foxy-rcl-1.1.14/src/rcl/guard_condition.c:67
[rviz2-1] 
[rviz2-1] >>> [rcutils|error_handling.c:108] rcutils_set_error_state()
[rviz2-1] This error state is being overwritten:
[rviz2-1] 
[rviz2-1]   'rcl node's context is invalid, at /tmp/binarydeb/ros-foxy-rcl-1.1.14/src/rcl/node.c:441'
[rviz2-1] 
[rviz2-1] with this new error message:
[rviz2-1] 
[rviz2-1]   'the given context is not valid, either rcl_init() was not called or rcl_shutdown() was called., at /tmp/binarydeb/ros-foxy-rcl-1.1.14/src/rcl/guard_condition.c:67'
[rviz2-1] 
[rviz2-1] rcutils_reset_error() should be called after error handling to avoid this.
[rviz2-1] <<<
[rviz2-1] [ERROR] [1687263900.496388524] [rviz2]: Could not load display config: failed to create interrupt guard condition: the given context is not valid, either rcl_init() was not called or rcl_shutdown() was called., at /tmp/binarydeb/ros-foxy-rcl-1.1.14/src/rcl/guard_condition.c:67
[INFO] [robot_state_publisher-2]: process has finished cleanly [pid 78708]
[INFO] [franka_gripper_node-6]: process has finished cleanly [pid 78716]
[INFO] [joint_state_publisher-5]: process has finished cleanly [pid 78714]
[ros2 run controller_manager spawner.py panda_arm_controller-7] [INFO] [1687263901.654779916] [spawner_panda_arm_controller]: Waiting for /controller_manager services
[ERROR] [move_group-3]: process has died [pid 78710, exit code -6, cmd '/opt/ros/foxy/lib/moveit_ros_move_group/move_group --ros-args --params-file /tmp/launch_params_w4xf71hn --params-file /tmp/launch_params_y8xocb33 --params-file /tmp/launch_params_6k30ed9p --params-file /tmp/launch_params_lzsh87ix --params-file /tmp/launch_params_gbuy8ybk --params-file /tmp/launch_params_5uc0ww9y --params-file /tmp/launch_params_2o3rn4c1'].
[ros2 run controller_manager spawner.py joint_state_broadcaster-8] [INFO] [1687263901.663186013] [spawner_joint_state_broadcaster]: Waiting for /controller_manager services
[ERROR] [rviz2-1]: process has died [pid 78706, exit code -11, cmd '/opt/ros/foxy/lib/rviz2/rviz2 -d /home/zal2mu/race_franka_ws/install/franka_moveit_config/share/franka_moveit_config/rviz/moveit.rviz --ros-args -r __node:=rviz2 --params-file /tmp/launch_params_jtq09j2c --params-file /tmp/launch_params_j5iauie7 --params-file /tmp/launch_params_82ub_iri --params-file /tmp/launch_params_ehbhttvu'].
[ros2 run controller_manager spawner.py panda_arm_controller-7] [INFO] [1687263903.675492452] [spawner_panda_arm_controller]: Waiting for /controller_manager services
[ros2 run controller_manager spawner.py joint_state_broadcaster-8] [INFO] [1687263903.683411307] [spawner_joint_state_broadcaster]: Waiting for /controller_manager services
[ERROR] [ros2 run controller_manager spawner.py joint_state_broadcaster-8]: process[ros2 run controller_manager spawner.py joint_state_broadcaster-8] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[ERROR] [ros2 run controller_manager spawner.py panda_arm_controller-7]: process[ros2 run controller_manager spawner.py panda_arm_controller-7] failed to terminate '5' seconds after receiving 'SIGINT', escalating to 'SIGTERM'
[INFO] [ros2 run controller_manager spawner.py joint_state_broadcaster-8]: sending signal 'SIGTERM' to process[ros2 run controller_manager spawner.py joint_state_broadcaster-8]
[INFO] [ros2 run controller_manager spawner.py panda_arm_controller-7]: sending signal 'SIGTERM' to process[ros2 run controller_manager spawner.py panda_arm_controller-7]
[ERROR] [ros2 run controller_manager spawner.py panda_arm_controller-7]: process has died [pid 78718, exit code -15, cmd 'ros2 run controller_manager spawner.py panda_arm_controller'].
[ERROR] [ros2 run controller_manager spawner.py joint_state_broadcaster-8]: process has died [pid 78721, exit code -15, cmd 'ros2 run controller_manager spawner.py joint_state_broadcaster'].

Franka_example_controllers Segmentation Faults upon colcon build

Hello,

Ive had it a few times now that my colcon build task fails with a segmentation fault upon building franka_example_controllers. I'm not quite sure if this is the correct point in stack to log this error, if not, please let me know where would be more suitable.

Relevant colcon build output:

--- stderr: franka_example_controllers         
In file included from /usr/include/eigen3/Eigen/Core:281,
                 from /usr/include/eigen3/Eigen/Dense:1,
                 from /usr/include/eigen3/Eigen/Eigen:1,
                 from /fog_ws/src/miti-ros/src/franka_ros2/franka_example_controllers/include/franka_example_controllers/joint_impedance_example_controller.hpp:19,
                 from /fog_ws/src/miti-ros/src/franka_ros2/franka_example_controllers/src/joint_impedance_example_controller.cpp:15:
/usr/include/c++/9/functional: In instantiation of 'std::_Bind<_Functor(_Bound_args ...)>::_Bind(std::_Bind<_Functor(_Bound_args ...)>&&) [with _Functor = std::function<void(long unsigned int)>; _Bound_args = {std::_Placeholder<1>}]':
/usr/include/c++/9/bits/std_function.h:252:39:   required from 'static void std::_Function_base::_Base_manager<_Functor>::_M_init_functor(std::_Any_data&, _Functor&&, std::false_type) [with _Functor = std::_Bind<std::function<void(long unsigned int)>(std::_Placeholder<1>)>; std::false_type = std::integral_constant<bool, false>]'
/usr/include/c++/9/bits/std_function.h:223:19:   required from 'static void std::_Function_base::_Base_manager<_Functor>::_M_init_functor(std::_Any_data&, _Functor&&) [with _Functor = std::_Bind<std::function<void(long unsigned int)>(std::_Placeholder<1>)>]'
/usr/include/c++/9/bits/std_function.h:675:34:   required from 'std::function<_Res(_ArgTypes ...)>::function(_Functor) [with _Functor = std::_Bind<std::function<void(long unsigned int)>(std::_Placeholder<1>)>; <template-parameter-2-2> = void; <template-parameter-2-3> = void; _Res = void; _ArgTypes = {long unsigned int, int}]'
/opt/ros/humble/rclcpp/include/rclcpp/rclcpp/publisher_base.hpp:298:94:   required from here
/usr/include/c++/9/functional:474:9: internal compiler error: Segmentation fault
  474 |       { }
      |         ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-9/README.Bugs> for instructions.
make[2]: *** [CMakeFiles/franka_example_controllers.dir/build.make:90: CMakeFiles/franka_example_controllers.dir/src/joint_impedance_example_controller.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:137: CMakeFiles/franka_example_controllers.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
---
Failed   <<< franka_example_controllers [1min 7s, exited with code 2]

joint_trajectory_controller throws ["max_path_pose_deviation_violation"] error

I'm using the joint_trajectory_follower with its action server. I send a single waypoint to the trajectory controller and pretty often I get the following error and it kills the controller node. I've checked libfranka website but couldn't find anything. Below, you can see how I contrsuct the action goal and stack traceback of the error. I'm on the humble branch and using Ubuntu 22.04 with RT kernel 5.15.0-1045-realtime.

    def send_trajectory(self, q: Union[Sequence[float], npt.NDArray], time_from_start: float = 2.5) -> None:
        goal_msg = FollowJointTrajectory.Goal()
        goal_msg.trajectory.joint_names = self.joint_names
        traj_point = JointTrajectoryPoint()
        traj_point.positions = []
        for qi in q:
            traj_point.positions.append(qi)
        traj_point.velocities = [0.0] * 7
        traj_point.accelerations = [0.0] * 7
        traj_point.time_from_start = rclpy.duration.Duration(seconds=time_from_start).to_msg()
        goal_msg.trajectory.points.append(traj_point)
        self.arm_trajectory_cli.send_goal(goal_msg)
[ros2_control_node-3]   what():  libfranka: Move command aborted: motion aborted by reflex! ["max_path_pose_deviation_violation"]
[ros2_control_node-3] Stack trace (most recent call last) in thread 444761:
[ros2_control_node-3] #18   Object "", at 0xffffffffffffffff, in
[ros2_control_node-3] #17   Source "../sysdeps/unix/sysv/linux/x86_64/clone3.S", line 81, in __clone3 [0x7f82f04179ff]
[ros2_control_node-3] #16   Source "./nptl/pthread_create.c", line 442, in start_thread [0x7f82f0385b42]
[ros2_control_node-3] #15   Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f82f0615252, in
[ros2_control_node-3] #14   Source "./src/ros2_control_node.cpp", line 80, in operator() [0x556281439800]
[ros2_control_node-3] #13   Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7f82f0221a81, in hardware_interface::ResourceManager::read(rclcpp::Time const&, rclcpp::Duration const&)
[ros2_control_node-3] #12   Object "/opt/ros/humble/lib/libhardware_interface.so", at 0x7f82f0242994, in hardware_interface::System::read(rclcpp::Time const&, rclcpp::Duration const&)
[ros2_control_node-3] #11   Object "/home/tkelestemur/franka_ws/install/franka_hardware/lib/libfranka_hardware.so", at 0x7f82e9105498, in franka_hardware::FrankaHardwareInterface::read(rclcpp::Time const&, rclcpp::Duration const&)
[ros2_control_node-3] #10   Object "/home/tkelestemur/franka_ws/install/franka_hardware/lib/libfranka_hardware.so", at 0x7f82e9116278, in franka_hardware::Robot::readOnce()
[ros2_control_node-3] #9    Object "/home/tkelestemur/franka_ws/install/franka_hardware/lib/libfranka_hardware.so", at 0x7f82e9114f8e, in franka_hardware::Robot::readOnceActiveControl()
[ros2_control_node-3] #8    Object "/usr/lib/libfranka.so.0.11.0", at 0x7f82e904433d, in franka::ActiveControl::readOnce()
[ros2_control_node-3] #7    Object "/usr/lib/libfranka.so.0.11.0", at 0x7f82e90429c3, in franka::Robot::Impl::throwOnMotionError(franka::RobotState const&, unsigned int) [clone .cold]
[ros2_control_node-3] #6    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f82f05e74d7, in __cxa_throw
[ros2_control_node-3] #5    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f82f05e7276, in std::terminate()
[ros2_control_node-3] #4    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f82f05e720b, in
[ros2_control_node-3] #3    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7f82f05dbb9d, in
[ros2_control_node-3] #2    Source "./stdlib/abort.c", line 79, in abort [0x7f82f03197f2]
[ros2_control_node-3] #1    Source "../sysdeps/posix/raise.c", line 26, in raise [0x7f82f0333475]
[ros2_control_node-3] #0  | Source "./nptl/pthread_kill.c", line 89, in __pthread_kill_internal
[ros2_control_node-3]     | Source "./nptl/pthread_kill.c", line 78, in __pthread_kill_implementation
[ros2_control_node-3]       Source "./nptl/pthread_kill.c", line 44, in __pthread_kill [0x7f82f0387a7c]
[ros2_control_node-3] Aborted (Signal sent by tkill() 444628 770001229)
[ERROR] [ros2_control_node-3]: process has died [pid 444628, exit code -6, cmd '/opt/ros/humble/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_i_dofwnd --params-file /home/tkelestemur/franka_ws/install/franka_bringup/share/franka_bringup/config/controllers.yaml -r joint_states:=franka/joint_states'].
[INFO] [launch]: process[ros2_control_node-3] was required: shutting down launched system
[INFO] [franka_gripper_node-6]: sending signal 'SIGINT' to process[franka_gripper_node-6]
[INFO] [joint_state_publisher-2]: sending signal 'SIGINT' to process[joint_state_publisher-2]
[INFO] [robot_state_publisher-1]: sending signal 'SIGINT' to process[robot_state_publisher-1]
[franka_gripper_node-6] [INFO] [1694108198.096681998] [rclcpp]: signal_handler(signum=2)
[robot_state_publisher-1] [INFO] [1694108198.097610885] [rclcpp]: signal_handler(signum=2)
[INFO] [joint_state_publisher-2]: process has finished cleanly [pid 444626]
[INFO] [franka_gripper_node-6]: process has finished cleanly [pid 444634]
[ERROR] [robot_state_publisher-1]: process has died [pid 444624, exit code -11, cmd '/opt/ros/humble/lib/robot_state_publisher/robot_state_publisher --ros-args -r __node:=robot_state_publisher --params-file /tmp/launch_params_3qs92vck'].

`joint_effort_trajectory_controllers` package is probably obsolete

Hi,

Friendly ros2_control maintainer here :) Recently we merged support for effort interfaces into joint_trajectory_controller from ros2_controllers repository. I think and (hope) this makes your joint_effort_trajectory_controllers obsolete. Maybe I am missing something, and you have a bit of different functionality of it which I didn't see scoping the code. Fell free to ask any questions about functionality or features on ros2_controllers repository.

P.S. Please don't hesitate to close this issue if you find it irrelevant.

Colon build failed even when Prerequisites were done

Hello! I would like to report the issue that I met when running the Clone repo and build packages process. I guess the error may happen due to the missing of backward_ros during ros2 installation.

<img width="1135" alt="屏幕截图 2023-08-04 104154" (the screen shot ) src="https://github.com/frankaemika/franka_ros2/assets/128056227/bd216bcb-0d6d-4c66-9421-58108a3684b9">

The error meassage is shown as following:

`:~/franka_ros2_ws$ colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
[1.669s] WARNING:colcon.colcon_core.package_selection:Some selected packages are already built in one or more underlay workspaces:
'joint_trajectory_controller' is in: /opt/ros/foxy
If a package in a merged underlay workspace is overridden and it installs headers, then all packages in the overlay must sort their include directories by workspace order. Failure to do so may resu in build failures or undefined behavior at run time.
If the overridden package is used by another package in any underlay, then the overriding package in the overlay must be API and ABI compatible or undefined behavior at run time may occur.

If you understand the risks and want to override a package anyways, add the following to the command line:
--allow-overriding joint_trajectory_controller

This may be promoted to an error in a future release of colcon-override-check.
Starting >>> franka_msgs
Starting >>> franka_description
Starting >>> integration_launch_testing
Starting >>> joint_trajectory_controller
Finished <<< integration_launch_testing [0.71s]
Finished <<< franka_description [0.79s]
--- stderr: joint_trajectory_controller
CMake Error at CMakeLists.txt:29 (find_package):
By not providing "Findbackward_ros.cmake" in CMAKE_MODULE_PATH this project
has asked CMake to find a package configuration file provided by
"backward_ros", but CMake did not find one.

Could not find a package configuration file provided by "backward_ros" with
any of the following names:

backward_rosConfig.cmake
backward_ros-config.cmake

Add the installation prefix of "backward_ros" to CMAKE_PREFIX_PATH or set
"backward_ros_DIR" to a directory containing one of the above files. If
"backward_ros" provides a separate development package or SDK, be sure it
has been installed.


Failed <<< joint_trajectory_controller [1.18s, exited with code 1]
Aborted <<< franka_msgs [2.11s]

Summary: 2 packages finished [2.93s]
1 package failed: joint_trajectory_controller
1 package aborted: franka_msgs
1 package had stderr output: joint_trajectory_controller
7 packages not processed
`

Franka Robot Simulation: Franka HW Sim

Morning,

I'm a robotics engineer who starts to work on ROS2. I would like to setup a simulation of the Franka Robot by using ignition gazebo.
I was wondering when it will be available a franka hw sim also on franka ros2, and not only on franka ros.

Thank you very much for the support.

Best regards,

Stefano

Position/Velocity command interfaces

Hello,
The franka_ros2 documentation mentions that position/velocity interfaces are 'coming soon' to bring feature parity with the ROS1 version. Is there a TFA for this ? Also given that currently > v0.1.0 doesn't work on Panda (due to libfranka > 9.0 not being supported), is there any plan on backporting this ?

I understand that Franka Emika has declared EOL for Panda and will not be supporting it beyond the EOY. Any information on the internal development plans would be helpful.

Thanks!

Controller Development

Hi Franka Emika Development Team,

I am in the process of developing controllers based on the examples given in this repository. In order to test my controller software I planned to run the software against a MuJoCo simulation of my robot. I have the MuJoCo integration working and the example controllers from this repository running in MuJoCo however, I am facing issue in getting the example controllers stable in MuJoCo.

I had the following question resulting from this that I was hoping it might be possible to get advice on. I wished to ask when developing controllers for the FER and/or FR3, is there a recommended testing protocol to ensure the safety of the hardware when testing a given controller implementation (e.g. test in simulation, protocols for deploying on real hardware)? When it comes to tuning controller parameters on both platforms are there any guides/advice the development team would provide on this (should I assume standard manual tuning practices)?

Are there any plan to support ROS2 Humble?

HI, I try to use franka_ros2 on Ubuntu 22.04, which only support ROS2 Humble. However, I encounter errors when I try to build this repo and it seems that currently ROS2 Humble is not supported. Are there any plan to support ROS2 Humble? Thank you! (I have to use Ubuntu 22.04 because my new computer hardware only supports Ubuntu 22.04, which is sad...)

ROS2 Humble compile error

Hi,

I followed the instructions on this page to install everything correctly on ROS2 Humble. However, when I do:

 sudo rosdep install --from-paths . --ignore-src -r -y --rosdistro=humble --skip-keys libfranka

I get the error: Unable to locate package ros-humble-warehouse-ros-mongo

I couldn't find any help online for this or any alternative way to install this package. Kindly help. Any guidance would be appreciated.

Best practice for ROS2 node subscribing to "/franka_state_controller/franka_states"

Hi,

I am running the Franka ROS1 packages and using a bridge to get the messages in ROS2.

If I would like to write a ROS2 python node that subscribes to the topic /franka_state_controller/franka_states of type FrankaState, what would be the best way to import this message definition and dependency? I'm trying to do the following right now:

from franka_msgs.msg import FrankaState

Thank you,
Oliver

ROS2 for FR3

Sorry for poor English ;(

this ROS2 source is only for panda. So i edited all xacro and file and name 'panda' to 'fr3'.

Do you have any plan to make ROS2 source for FR3??

or

Am i right editting all panda to fr3??

Cartesian controllers

Hi,

I would like to have cartesian control of the Franka robot. Unfortunately, no cartesian position or velocity controllers are implemented.

Are there any plans to release such controllers soon? If not, could someone point out what I would need to do to implement a cartesian position controller myself?

All the best,
Jens

Exposing Gravity Compensation Controller on FR3

Is there a way to access (or disable) Franka's gravity compensation controller running on the FR3? We are planning on swapping out the end-effector and would like that to be accurately reflected by the gravity compensation controller. We noticed that when removing the default FR3 gripper completely and trying to track a trajectory, the robot has massive overshooting, which suggests that the gravity compensation does not detect changes in the end-effector automatically. It would be useful to know how to pass this information to it.

Error in prepare_command_mode_switch when running robotiq gripper controller

I am encountering an error from the hardware interface with the latest version for franka_ros2, the error arises when activating controllers for a gripper (robotiq) and the panda arm under the one controller manager node.

Adding this error for reference in case others also encounter this issue, I will post my resolution below. I started by trying to run separate control_manager nodes for the arm and gripper but I think I also found an issue with this given the current ros2_control implementation on Humble.

Update: namespacing with ROS 2 control works well and avoids this issue.

root@franka-control:~/panda_ws# ros2 launch panda_control_demos control_server_debug.launch.py robot_ip:=192.168.106.99 use_fake_hardware:=false
[INFO] [launch]: All log files can be found below /root/.ros/log/2024-04-03-17-17-40-409065-franka-control-35799
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [joint_state_publisher-1]: process started with pid [35800]
[INFO] [robot_state_publisher-2]: process started with pid [35802]
[INFO] [ros2_control_node-3]: process started with pid [35804]
[INFO] [ros2 run controller_manager spawner panda_jtc_controller-4]: process started with pid [35806]
[INFO] [ros2 run controller_manager spawner panda_state_broadcaster-5]: process started with pid [35808]
[INFO] [ros2 run controller_manager spawner robotiq_state_broadcaster-6]: process started with pid [35810]
[INFO] [ros2 run controller_manager spawner robotiq_gripper_controller-7]: process started with pid [35812]
[robot_state_publisher-2] [INFO] [1712164660.608402668] [panda_state_publisher]: got segment panda_link0
[robot_state_publisher-2] [INFO] [1712164660.608460540] [panda_state_publisher]: got segment panda_link1
[robot_state_publisher-2] [INFO] [1712164660.608466522] [panda_state_publisher]: got segment panda_link2
[robot_state_publisher-2] [INFO] [1712164660.608469562] [panda_state_publisher]: got segment panda_link3
[robot_state_publisher-2] [INFO] [1712164660.608472392] [panda_state_publisher]: got segment panda_link4
[robot_state_publisher-2] [INFO] [1712164660.608475100] [panda_state_publisher]: got segment panda_link5
[robot_state_publisher-2] [INFO] [1712164660.608477667] [panda_state_publisher]: got segment panda_link6
[robot_state_publisher-2] [INFO] [1712164660.608480275] [panda_state_publisher]: got segment panda_link7
[robot_state_publisher-2] [INFO] [1712164660.608483043] [panda_state_publisher]: got segment panda_link8
[robot_state_publisher-2] [INFO] [1712164660.608485668] [panda_state_publisher]: got segment robotiq_85_base_link
[robot_state_publisher-2] [INFO] [1712164660.608488616] [panda_state_publisher]: got segment robotiq_85_left_finger_link
[robot_state_publisher-2] [INFO] [1712164660.608491366] [panda_state_publisher]: got segment robotiq_85_left_finger_tip_link
[robot_state_publisher-2] [INFO] [1712164660.608494288] [panda_state_publisher]: got segment robotiq_85_left_inner_knuckle_link
[robot_state_publisher-2] [INFO] [1712164660.608497094] [panda_state_publisher]: got segment robotiq_85_left_knuckle_link
[robot_state_publisher-2] [INFO] [1712164660.608499798] [panda_state_publisher]: got segment robotiq_85_right_finger_link
[robot_state_publisher-2] [INFO] [1712164660.608503095] [panda_state_publisher]: got segment robotiq_85_right_finger_tip_link
[robot_state_publisher-2] [INFO] [1712164660.608507831] [panda_state_publisher]: got segment robotiq_85_right_inner_knuckle_link
[robot_state_publisher-2] [INFO] [1712164660.608513546] [panda_state_publisher]: got segment robotiq_85_right_knuckle_link
[ros2_control_node-3] [WARN] [1712164660.624893052] [controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use '~/robot_description' topic from 'robot_state_publisher' instead.
[ros2_control_node-3] [INFO] [1712164660.625457791] [resource_manager]: Loading hardware 'RobotiqGripperHardwareInterface' 
[ros2_control_node-3] [INFO] [1712164660.626245168] [resource_manager]: Initialize hardware 'RobotiqGripperHardwareInterface' 
[ros2_control_node-3] [INFO] [1712164660.626360955] [DefaultDriverFactory]: Reading slave_address...
[ros2_control_node-3] [INFO] [1712164660.626367766] [DefaultDriverFactory]: slave_address: 9
[ros2_control_node-3] [INFO] [1712164660.626369915] [DefaultDriverFactory]: Reading gripper_speed_multiplier...
[ros2_control_node-3] [INFO] [1712164660.626375080] [DefaultDriverFactory]: gripper_speed_multiplier: 1.000000s
[ros2_control_node-3] [INFO] [1712164660.626379117] [DefaultDriverFactory]: Reading gripper_force_multiplier...
[ros2_control_node-3] [INFO] [1712164660.626381252] [DefaultDriverFactory]: gripper_force_multiplier: 0.500000s
[ros2_control_node-3] [INFO] [1712164660.626385329] [DefaultSerialFactory]: Reading COM_port...
[ros2_control_node-3] [INFO] [1712164660.626388065] [DefaultSerialFactory]: COM_port: /dev/ttyUSB0
[ros2_control_node-3] [INFO] [1712164660.626389579] [DefaultSerialFactory]: Reading baudrate...
[ros2_control_node-3] [INFO] [1712164660.626391030] [DefaultSerialFactory]: baudrate: 115200bps
[ros2_control_node-3] [INFO] [1712164660.626392457] [DefaultSerialFactory]: Reading timeout...
[ros2_control_node-3] [INFO] [1712164660.626393926] [DefaultSerialFactory]: timeout: 0.500000s
[ros2_control_node-3] [INFO] [1712164660.626498494] [resource_manager]: Successful initialization of hardware 'RobotiqGripperHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.626700162] [resource_manager]: Loading hardware 'FrankaHardwareInterface' 
[ros2_control_node-3] [INFO] [1712164660.630059985] [resource_manager]: Initialize hardware 'FrankaHardwareInterface' 
[ros2_control_node-3] [INFO] [1712164660.630212531] [FrankaHardwareInterface]: Connecting to robot at "192.168.106.99" ...
[ros2_control_node-3] [INFO] [1712164660.641552319] [FrankaHardwareInterface]: Successfully connected to robot
[ros2_control_node-3] [INFO] [1712164660.648836041] [service_server]: Service started
[ros2_control_node-3] [INFO] [1712164660.749267975] [resource_manager]: Successful initialization of hardware 'FrankaHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.750133393] [resource_manager]: 'configure' hardware 'FrankaHardwareInterface' 
[ros2_control_node-3] [INFO] [1712164660.750163984] [resource_manager]: Successful 'configure' of hardware 'FrankaHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.750247339] [resource_manager]: 'activate' hardware 'FrankaHardwareInterface' 
[ros2_control_node-3] [INFO] [1712164660.750535262] [FrankaHardwareInterface]: Started
[ros2_control_node-3] [INFO] [1712164660.750546509] [resource_manager]: Successful 'activate' of hardware 'FrankaHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.750566727] [resource_manager]: 'configure' hardware 'RobotiqGripperHardwareInterface' 
[ros2_control_node-3] [INFO] [1712164660.751150111] [resource_manager]: Successful 'configure' of hardware 'RobotiqGripperHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.751175182] [resource_manager]: 'activate' hardware 'RobotiqGripperHardwareInterface' 
[ros2_control_node-3] [INFO] [1712164660.751183960] [DefaultDriver]: Deactivate...
[ros2_control_node-3] [INFO] [1712164660.764802259] [DefaultDriver]: Activate...
[joint_state_publisher-1] [INFO] [1712164660.769479224] [joint_state_publisher]: Waiting for robot_description to be published on the robot_description topic...
[ros2_control_node-3] [INFO] [1712164662.813675508] [RobotiqGripperHardwareInterface]: Robotiq Gripper successfully activated!
[ros2_control_node-3] [INFO] [1712164662.813702521] [resource_manager]: Successful 'activate' of hardware 'RobotiqGripperHardwareInterface'
[ros2_control_node-3] [INFO] [1712164662.817418470] [controller_manager]: update rate is 500 Hz
[ros2_control_node-3] [INFO] [1712164662.824936177] [controller_manager]: Loading controller 'panda_state_broadcaster'
[ros2_control_node-3] [INFO] [1712164662.830809499] [controller_manager]: Loading controller 'panda_jtc_controller'
[ros2 run controller_manager spawner panda_state_broadcaster-5] [INFO] [1712164662.831143190] [spawner_panda_state_broadcaster]: Loaded panda_state_broadcaster
[ros2_control_node-3] [WARN] [1712164662.840721283] [panda_jtc_controller]: [Deprecated]: "allow_nonzero_velocity_at_trajectory_end" is set to true. The default behavior will change to false.
[ros2_control_node-3] [INFO] [1712164662.843069014] [controller_manager]: Configuring controller 'panda_state_broadcaster'
[ros2 run controller_manager spawner panda_jtc_controller-4] [INFO] [1712164662.843093477] [spawner_panda_jtc_controller]: Loaded panda_jtc_controller
[ros2_control_node-3] [INFO] [1712164662.843167933] [panda_state_broadcaster]: Publishing state interfaces defined in 'joints' and 'interfaces' parameters.
[ros2_control_node-3] [WARN] [1712164662.843215249] [panda_state_broadcaster]: Mapping from 'position' to interface 'position' will not be done, because 'position' is defined in 'interface' parameter.
[ros2_control_node-3] [WARN] [1712164662.843222882] [panda_state_broadcaster]: Mapping from 'velocity' to interface 'velocity' will not be done, because 'velocity' is defined in 'interface' parameter.
[ros2_control_node-3] [WARN] [1712164662.843250527] [panda_state_broadcaster]: Mapping from 'effort' to interface 'effort' will not be done, because 'effort' is defined in 'interface' parameter.
[ros2_control_node-3] [INFO] [1712164662.846703706] [controller_manager]: Loading controller 'robotiq_state_broadcaster'
[ros2_control_node-3] [INFO] [1712164662.850643101] [controller_manager]: Configuring controller 'panda_jtc_controller'
[ros2 run controller_manager spawner robotiq_state_broadcaster-6] [INFO] [1712164662.851000237] [spawner_robotiq_state_broadcaster]: Loaded robotiq_state_broadcaster
[ros2_control_node-3] [INFO] [1712164662.851205383] [panda_jtc_controller]: No specific joint names are used for command interfaces. Using 'joints' parameter.
[ros2_control_node-3] [WARN] [1712164662.851574086] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.851767147] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.851883758] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.851986646] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.852091575] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.852188067] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.852289260] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [INFO] [1712164662.852544336] [panda_jtc_controller]: Command interfaces are [effort] and state interfaces are [position velocity].
[ros2_control_node-3] [INFO] [1712164662.852574192] [panda_jtc_controller]: Using 'splines' interpolation method.
[ros2_control_node-3] [INFO] [1712164662.854284689] [panda_jtc_controller]: Controller state will be published at 50.00 Hz.
[ros2_control_node-3] [INFO] [1712164662.856152021] [panda_jtc_controller]: Action status changes will be monitored at 20.00 Hz.
[ros2_control_node-3] [INFO] [1712164662.860786047] [controller_manager]: Configuring controller 'robotiq_state_broadcaster'
[ros2_control_node-3] [INFO] [1712164662.860843073] [robotiq_state_broadcaster]: Publishing state interfaces defined in 'joints' and 'interfaces' parameters.
[ros2_control_node-3] [WARN] [1712164662.860870905] [robotiq_state_broadcaster]: Mapping from 'position' to interface 'position' will not be done, because 'position' is defined in 'interface' parameter.
[ros2_control_node-3] [WARN] [1712164662.860879527] [robotiq_state_broadcaster]: Mapping from 'velocity' to interface 'velocity' will not be done, because 'velocity' is defined in 'interface' parameter.
[ros2 run controller_manager spawner panda_state_broadcaster-5] [INFO] [1712164662.867305831] [spawner_panda_state_broadcaster]: Configured and activated panda_state_broadcaster
[ros2 run controller_manager spawner panda_jtc_controller-4] [INFO] [1712164662.918119995] [spawner_panda_jtc_controller]: Configured and activated panda_jtc_controller
[ros2_control_node-3] [INFO] [1712164662.919843507] [controller_manager]: Loading controller 'robotiq_gripper_controller'
[ros2 run controller_manager spawner robotiq_state_broadcaster-6] [INFO] [1712164662.920103455] [spawner_robotiq_state_broadcaster]: Configured and activated robotiq_state_broadcaster
[ros2 run controller_manager spawner robotiq_gripper_controller-7] [INFO] [1712164662.924939357] [spawner_robotiq_gripper_controller]: Loaded robotiq_gripper_controller
[ros2_control_node-3] [INFO] [1712164662.925491189] [controller_manager]: Configuring controller 'robotiq_gripper_controller'
[ros2_control_node-3] [INFO] [1712164662.925572228] [robotiq_gripper_controller]: Action status changes will be monitored at 20Hz.
[ros2_control_node-3] [FATAL] [1712164662.927536989] [FrankaHardwareInterface]: Invalid number of position interfaces to start. Expected 7, given 1
[ros2_control_node-3] terminate called after throwing an instance of 'std::invalid_argument'
[ros2_control_node-3]   what():  Invalid number of position interfaces to start. Expected 7, given 1
[ros2_control_node-3] Stack trace (most recent call last) in thread 35982:
[ros2_control_node-3] #31   Object "", at 0xffffffffffffffff, in 
[ros2_control_node-3] #30   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fc02c45a84f, in 
[ros2_control_node-3] #29   Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fc02c3c8ac2, in 
[ros2_control_node-3] #28   Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fc02c65b252, in 
[ros2_control_node-3] #27   Object "/opt/ros/humble/lib/librclcpp.so", at 0x7fc02c89a279, in rclcpp::executors::MultiThreadedExecutor::run(unsigned long)
[ros2_control_node-3] #26   Object "/opt/ros/humble/lib/librclcpp.so", at 0x7fc02c892ff5, in rclcpp::Executor::execute_any_executable(rclcpp::AnyExecutable&)
[ros2_control_node-3] #25   Object "/opt/ros/humble/lib/librclcpp.so", at 0x7fc02c892c89, in rclcpp::Executor::execute_service(std::shared_ptr<rclcpp::ServiceBase>)
[ros2_control_node-3] #24   Object "/opt/ros/humble/lib/librclcpp.so", at 0x7fc02c8952a5, in 
[ros2_control_node-3] #23   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d176972, in rclcpp::Service<controller_manager_msgs::srv::SwitchController>::handle_request(std::shared_ptr<rmw_request_id_s>, std::shared_ptr<void>)
[ros2_control_node-3] #22   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d17e413, in rclcpp::AnyServiceCallback<controller_manager_msgs::srv::SwitchController>::dispatch(std::shared_ptr<rclcpp::Service<controller_manager_msgs::srv::SwitchController> > const&, std::shared_ptr<rmw_request_id_s> const&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >)
[ros2_control_node-3] #21   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d188ae4, in std::function<void (std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >)>::operator()(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >) const
[ros2_control_node-3] #20   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d0e1ea8, in std::_Function_handler<void (std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >), std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >)> >::_M_invoke(std::_Any_data const&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >&&)
[ros2_control_node-3] #19   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d0f2ded, in std::enable_if<is_invocable_r_v<void, std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >)>&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > > >, void>::type std::__invoke_r<void, std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >)>&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > > >(std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >)>&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >&&)
[ros2_control_node-3] #18   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d10263c, in void std::__invoke_impl<void, std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >)>&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > > >(std::__invoke_other, std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >)>&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >&&)
[ros2_control_node-3] #17   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d10dbb8, in void std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >)>::operator()<std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >, void>(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >&&)
[ros2_control_node-3] #16   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d118730, in void std::_Bind<void (controller_manager::ControllerManager::*(controller_manager::ControllerManager*, std::_Placeholder<1>, std::_Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >)>::__call<void, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >&&, 0ul, 1ul, 2ul>(std::tuple<std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >&&>&&, std::_Index_tuple<0ul, 1ul, 2ul>)
[ros2_control_node-3] #15   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d123246, in std::__invoke_result<void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > > >::type std::__invoke<void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > > >(void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >&&)
[ros2_control_node-3] #14   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d130fd6, in void std::__invoke_impl<void, void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > > >(std::__invoke_memfun_deref, void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >&&)
[ros2_control_node-3] #13   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d047c1a, in controller_manager::ControllerManager::switch_controller_service_cb(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator<void> > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator<void> > >)
[ros2_control_node-3] #12   Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d03ef93, in controller_manager::ControllerManager::switch_controller(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, int, bool, rclcpp::Duration const&)
[ros2_control_node-3] #11   Object "/root/panda_ws/install/hardware_interface/lib/libhardware_interface.so", at 0x7fc02c1ed7fd, in hardware_interface::ResourceManager::prepare_command_mode_switch(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)
[ros2_control_node-3] #10   Object "/root/panda_ws/install/hardware_interface/lib/libhardware_interface.so", at 0x7fc02c1ecf69, in auto hardware_interface::ResourceManager::prepare_command_mode_switch(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)::{lambda(auto:1&)#4}::operator()<std::vector<hardware_interface::System, std::allocator<hardware_interface::System> > >(std::vector<hardware_interface::System, std::allocator<hardware_interface::System> >&) const
[ros2_control_node-3] #9    Object "/root/panda_ws/install/hardware_interface/lib/libhardware_interface.so", at 0x7fc02c2338e8, in hardware_interface::System::prepare_command_mode_switch(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)
[ros2_control_node-3] #8    Object "/root/panda_ws/install/franka_hardware/lib/libfranka_hardware.so", at 0x7fc019f28da5, in franka_hardware::FrankaHardwareInterface::prepare_command_mode_switch(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)
[ros2_control_node-3] #7    Object "/root/panda_ws/install/franka_hardware/lib/libfranka_hardware.so", at 0x7fc019f28a99, in franka_hardware::FrankaHardwareInterface::prepare_command_mode_switch(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long)#2}::operator()(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, unsigned long, unsigned long) const
[ros2_control_node-3] #6    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fc02c62d4d7, in __cxa_throw
[ros2_control_node-3] #5    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fc02c62d276, in std::terminate()
[ros2_control_node-3] #4    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fc02c62d20b, in 
[ros2_control_node-3] #3    Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fc02c621b9d, in 
[ros2_control_node-3] #2    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fc02c35c7f2, in abort
[ros2_control_node-3] #1    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fc02c376475, in raise
[ros2_control_node-3] #0    Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fc02c3ca9fc, in pthread_kill
[ros2_control_node-3] Aborted (Signal sent by tkill() 35804 0)
[ERROR] [ros2_control_node-3]: process has died [pid 35804, exit code -6, cmd '/root/panda_ws/install/controller_manager/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_oad8yatj --params-file /root/panda_ws/install/franka_robotiq_moveit_config/share/franka_robotiq_moveit_config/config/ros2_controllers.yaml'].
[INFO] [ros2 run controller_manager spawner panda_state_broadcaster-5]: process has finished cleanly [pid 35808]
[INFO] [ros2 run controller_manager spawner robotiq_state_broadcaster-6]: process has finished cleanly [pid 35810]
[INFO] [ros2 run controller_manager spawner panda_jtc_controller-4]: process has finished cleanly [pid 35806]


root@franka-control:/panda_ws# ros2 launch panda_control_demos control_server_debug.launch.py robot_ip:=192.168.106.99 use_fake_hardware:=false
[INFO] [launch]: All log files can be found below /root/.ros/log/2024-04-03-17-17-40-409065-franka-control-35799
[INFO] [launch]: Default logging verbosity is set to INFO
[INFO] [joint_state_publisher-1]: process started with pid [35800]
[INFO] [robot_state_publisher-2]: process started with pid [35802]
[INFO] [ros2_control_node-3]: process started with pid [35804]
[INFO] [ros2 run controller_manager spawner panda_jtc_controller-4]: process started with pid [35806]
[INFO] [ros2 run controller_manager spawner panda_state_broadcaster-5]: process started with pid [35808]
[INFO] [ros2 run controller_manager spawner robotiq_state_broadcaster-6]: process started with pid [35810]
[INFO] [ros2 run controller_manager spawner robotiq_gripper_controller-7]: process started with pid [35812]
[robot_state_publisher-2] [INFO] [1712164660.608402668] [panda_state_publisher]: got segment panda_link0
[robot_state_publisher-2] [INFO] [1712164660.608460540] [panda_state_publisher]: got segment panda_link1
[robot_state_publisher-2] [INFO] [1712164660.608466522] [panda_state_publisher]: got segment panda_link2
[robot_state_publisher-2] [INFO] [1712164660.608469562] [panda_state_publisher]: got segment panda_link3
[robot_state_publisher-2] [INFO] [1712164660.608472392] [panda_state_publisher]: got segment panda_link4
[robot_state_publisher-2] [INFO] [1712164660.608475100] [panda_state_publisher]: got segment panda_link5
[robot_state_publisher-2] [INFO] [1712164660.608477667] [panda_state_publisher]: got segment panda_link6
[robot_state_publisher-2] [INFO] [1712164660.608480275] [panda_state_publisher]: got segment panda_link7
[robot_state_publisher-2] [INFO] [1712164660.608483043] [panda_state_publisher]: got segment panda_link8
[robot_state_publisher-2] [INFO] [1712164660.608485668] [panda_state_publisher]: got segment robotiq_85_base_link
[robot_state_publisher-2] [INFO] [1712164660.608488616] [panda_state_publisher]: got segment robotiq_85_left_finger_link
[robot_state_publisher-2] [INFO] [1712164660.608491366] [panda_state_publisher]: got segment robotiq_85_left_finger_tip_link
[robot_state_publisher-2] [INFO] [1712164660.608494288] [panda_state_publisher]: got segment robotiq_85_left_inner_knuckle_link
[robot_state_publisher-2] [INFO] [1712164660.608497094] [panda_state_publisher]: got segment robotiq_85_left_knuckle_link
[robot_state_publisher-2] [INFO] [1712164660.608499798] [panda_state_publisher]: got segment robotiq_85_right_finger_link
[robot_state_publisher-2] [INFO] [1712164660.608503095] [panda_state_publisher]: got segment robotiq_85_right_finger_tip_link
[robot_state_publisher-2] [INFO] [1712164660.608507831] [panda_state_publisher]: got segment robotiq_85_right_inner_knuckle_link
[robot_state_publisher-2] [INFO] [1712164660.608513546] [panda_state_publisher]: got segment robotiq_85_right_knuckle_link
[ros2_control_node-3] [WARN] [1712164660.624893052] [controller_manager]: [Deprecated] Passing the robot description parameter directly to the control_manager node is deprecated. Use '
/robot_description' topic from 'robot_state_publisher' instead.
[ros2_control_node-3] [INFO] [1712164660.625457791] [resource_manager]: Loading hardware 'RobotiqGripperHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.626245168] [resource_manager]: Initialize hardware 'RobotiqGripperHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.626360955] [DefaultDriverFactory]: Reading slave_address...
[ros2_control_node-3] [INFO] [1712164660.626367766] [DefaultDriverFactory]: slave_address: 9
[ros2_control_node-3] [INFO] [1712164660.626369915] [DefaultDriverFactory]: Reading gripper_speed_multiplier...
[ros2_control_node-3] [INFO] [1712164660.626375080] [DefaultDriverFactory]: gripper_speed_multiplier: 1.000000s
[ros2_control_node-3] [INFO] [1712164660.626379117] [DefaultDriverFactory]: Reading gripper_force_multiplier...
[ros2_control_node-3] [INFO] [1712164660.626381252] [DefaultDriverFactory]: gripper_force_multiplier: 0.500000s
[ros2_control_node-3] [INFO] [1712164660.626385329] [DefaultSerialFactory]: Reading COM_port...
[ros2_control_node-3] [INFO] [1712164660.626388065] [DefaultSerialFactory]: COM_port: /dev/ttyUSB0
[ros2_control_node-3] [INFO] [1712164660.626389579] [DefaultSerialFactory]: Reading baudrate...
[ros2_control_node-3] [INFO] [1712164660.626391030] [DefaultSerialFactory]: baudrate: 115200bps
[ros2_control_node-3] [INFO] [1712164660.626392457] [DefaultSerialFactory]: Reading timeout...
[ros2_control_node-3] [INFO] [1712164660.626393926] [DefaultSerialFactory]: timeout: 0.500000s
[ros2_control_node-3] [INFO] [1712164660.626498494] [resource_manager]: Successful initialization of hardware 'RobotiqGripperHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.626700162] [resource_manager]: Loading hardware 'FrankaHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.630059985] [resource_manager]: Initialize hardware 'FrankaHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.630212531] [FrankaHardwareInterface]: Connecting to robot at "192.168.106.99" ...
[ros2_control_node-3] [INFO] [1712164660.641552319] [FrankaHardwareInterface]: Successfully connected to robot
[ros2_control_node-3] [INFO] [1712164660.648836041] [service_server]: Service started
[ros2_control_node-3] [INFO] [1712164660.749267975] [resource_manager]: Successful initialization of hardware 'FrankaHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.750133393] [resource_manager]: 'configure' hardware 'FrankaHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.750163984] [resource_manager]: Successful 'configure' of hardware 'FrankaHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.750247339] [resource_manager]: 'activate' hardware 'FrankaHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.750535262] [FrankaHardwareInterface]: Started
[ros2_control_node-3] [INFO] [1712164660.750546509] [resource_manager]: Successful 'activate' of hardware 'FrankaHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.750566727] [resource_manager]: 'configure' hardware 'RobotiqGripperHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.751150111] [resource_manager]: Successful 'configure' of hardware 'RobotiqGripperHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.751175182] [resource_manager]: 'activate' hardware 'RobotiqGripperHardwareInterface'
[ros2_control_node-3] [INFO] [1712164660.751183960] [DefaultDriver]: Deactivate...
[ros2_control_node-3] [INFO] [1712164660.764802259] [DefaultDriver]: Activate...
[joint_state_publisher-1] [INFO] [1712164660.769479224] [joint_state_publisher]: Waiting for robot_description to be published on the robot_description topic...
[ros2_control_node-3] [INFO] [1712164662.813675508] [RobotiqGripperHardwareInterface]: Robotiq Gripper successfully activated!
[ros2_control_node-3] [INFO] [1712164662.813702521] [resource_manager]: Successful 'activate' of hardware 'RobotiqGripperHardwareInterface'
[ros2_control_node-3] [INFO] [1712164662.817418470] [controller_manager]: update rate is 500 Hz
[ros2_control_node-3] [INFO] [1712164662.824936177] [controller_manager]: Loading controller 'panda_state_broadcaster'
[ros2_control_node-3] [INFO] [1712164662.830809499] [controller_manager]: Loading controller 'panda_jtc_controller'
[ros2 run controller_manager spawner panda_state_broadcaster-5] [INFO] [1712164662.831143190] [spawner_panda_state_broadcaster]: Loaded panda_state_broadcaster
[ros2_control_node-3] [WARN] [1712164662.840721283] [panda_jtc_controller]: [Deprecated]: "allow_nonzero_velocity_at_trajectory_end" is set to true. The default behavior will change to false.
[ros2_control_node-3] [INFO] [1712164662.843069014] [controller_manager]: Configuring controller 'panda_state_broadcaster'
[ros2 run controller_manager spawner panda_jtc_controller-4] [INFO] [1712164662.843093477] [spawner_panda_jtc_controller]: Loaded panda_jtc_controller
[ros2_control_node-3] [INFO] [1712164662.843167933] [panda_state_broadcaster]: Publishing state interfaces defined in 'joints' and 'interfaces' parameters.
[ros2_control_node-3] [WARN] [1712164662.843215249] [panda_state_broadcaster]: Mapping from 'position' to interface 'position' will not be done, because 'position' is defined in 'interface' parameter.
[ros2_control_node-3] [WARN] [1712164662.843222882] [panda_state_broadcaster]: Mapping from 'velocity' to interface 'velocity' will not be done, because 'velocity' is defined in 'interface' parameter.
[ros2_control_node-3] [WARN] [1712164662.843250527] [panda_state_broadcaster]: Mapping from 'effort' to interface 'effort' will not be done, because 'effort' is defined in 'interface' parameter.
[ros2_control_node-3] [INFO] [1712164662.846703706] [controller_manager]: Loading controller 'robotiq_state_broadcaster'
[ros2_control_node-3] [INFO] [1712164662.850643101] [controller_manager]: Configuring controller 'panda_jtc_controller'
[ros2 run controller_manager spawner robotiq_state_broadcaster-6] [INFO] [1712164662.851000237] [spawner_robotiq_state_broadcaster]: Loaded robotiq_state_broadcaster
[ros2_control_node-3] [INFO] [1712164662.851205383] [panda_jtc_controller]: No specific joint names are used for command interfaces. Using 'joints' parameter.
[ros2_control_node-3] [WARN] [1712164662.851574086] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.851767147] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.851883758] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.851986646] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.852091575] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.852188067] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [WARN] [1712164662.852289260] [panda_jtc_controller]: 'ff_velocity_scale' parameters is not defined under 'gains.<joint_name>.' structure. Maybe you are using deprecated format 'ff_velocity_scale/<joint_name>'!
[ros2_control_node-3] [INFO] [1712164662.852544336] [panda_jtc_controller]: Command interfaces are [effort] and state interfaces are [position velocity].
[ros2_control_node-3] [INFO] [1712164662.852574192] [panda_jtc_controller]: Using 'splines' interpolation method.
[ros2_control_node-3] [INFO] [1712164662.854284689] [panda_jtc_controller]: Controller state will be published at 50.00 Hz.
[ros2_control_node-3] [INFO] [1712164662.856152021] [panda_jtc_controller]: Action status changes will be monitored at 20.00 Hz.
[ros2_control_node-3] [INFO] [1712164662.860786047] [controller_manager]: Configuring controller 'robotiq_state_broadcaster'
[ros2_control_node-3] [INFO] [1712164662.860843073] [robotiq_state_broadcaster]: Publishing state interfaces defined in 'joints' and 'interfaces' parameters.
[ros2_control_node-3] [WARN] [1712164662.860870905] [robotiq_state_broadcaster]: Mapping from 'position' to interface 'position' will not be done, because 'position' is defined in 'interface' parameter.
[ros2_control_node-3] [WARN] [1712164662.860879527] [robotiq_state_broadcaster]: Mapping from 'velocity' to interface 'velocity' will not be done, because 'velocity' is defined in 'interface' parameter.
[ros2 run controller_manager spawner panda_state_broadcaster-5] [INFO] [1712164662.867305831] [spawner_panda_state_broadcaster]: Configured and activated panda_state_broadcaster
[ros2 run controller_manager spawner panda_jtc_controller-4] [INFO] [1712164662.918119995] [spawner_panda_jtc_controller]: Configured and activated panda_jtc_controller
[ros2_control_node-3] [INFO] [1712164662.919843507] [controller_manager]: Loading controller 'robotiq_gripper_controller'
[ros2 run controller_manager spawner robotiq_state_broadcaster-6] [INFO] [1712164662.920103455] [spawner_robotiq_state_broadcaster]: Configured and activated robotiq_state_broadcaster
[ros2 run controller_manager spawner robotiq_gripper_controller-7] [INFO] [1712164662.924939357] [spawner_robotiq_gripper_controller]: Loaded robotiq_gripper_controller
[ros2_control_node-3] [INFO] [1712164662.925491189] [controller_manager]: Configuring controller 'robotiq_gripper_controller'
[ros2_control_node-3] [INFO] [1712164662.925572228] [robotiq_gripper_controller]: Action status changes will be monitored at 20Hz.
[ros2_control_node-3] [FATAL] [1712164662.927536989] [FrankaHardwareInterface]: Invalid number of position interfaces to start. Expected 7, given 1
[ros2_control_node-3] terminate called after throwing an instance of 'std::invalid_argument'
[ros2_control_node-3] what(): Invalid number of position interfaces to start. Expected 7, given 1
[ros2_control_node-3] Stack trace (most recent call last) in thread 35982:
[ros2_control_node-3] #31 Object "", at 0xffffffffffffffff, in
[ros2_control_node-3] #30 Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fc02c45a84f, in
[ros2_control_node-3] #29 Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fc02c3c8ac2, in
[ros2_control_node-3] #28 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fc02c65b252, in
[ros2_control_node-3] #27 Object "/opt/ros/humble/lib/librclcpp.so", at 0x7fc02c89a279, in rclcpp::executors::MultiThreadedExecutor::run(unsigned long)
[ros2_control_node-3] #26 Object "/opt/ros/humble/lib/librclcpp.so", at 0x7fc02c892ff5, in rclcpp::Executor::execute_any_executable(rclcpp::AnyExecutable&)
[ros2_control_node-3] #25 Object "/opt/ros/humble/lib/librclcpp.so", at 0x7fc02c892c89, in rclcpp::Executor::execute_service(std::shared_ptrrclcpp::ServiceBase)
[ros2_control_node-3] #24 Object "/opt/ros/humble/lib/librclcpp.so", at 0x7fc02c8952a5, in
[ros2_control_node-3] #23 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d176972, in rclcpp::Service<controller_manager_msgs::srv::SwitchController>::handle_request(std::shared_ptr<rmw_request_id_s>, std::shared_ptr)
[ros2_control_node-3] #22 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d17e413, in rclcpp::AnyServiceCallback<controller_manager_msgs::srv::SwitchController>::dispatch(std::shared_ptr<rclcpp::Service<controller_manager_msgs::srv::SwitchController> > const&, std::shared_ptr<rmw_request_id_s> const&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator > >)
[ros2_control_node-3] #21 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d188ae4, in std::function<void (std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > >)>::operator()(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > >) const
[ros2_control_node-3] #20 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d0e1ea8, in std::Function_handler<void (std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > >), std::Bind<void (controller_manager::ControllerManager::(controller_manager::ControllerManager, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >)> >::M_invoke(std::Any_data const&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >&&)
[ros2_control_node-3] #19 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d0f2ded, in std::enable_if<is_invocable_r_v<void, std::Bind<void (controller_manager::ControllerManager::(controller_manager::ControllerManager, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >)>&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > > >, void>::type std::invoke_r<void, std::Bind<void (controller_manager::ControllerManager::(controller_manager::ControllerManager, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >)>&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > > >(std::Bind<void (controller_manager::ControllerManager::(controller_manager::ControllerManager, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >)>&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >&&)
[ros2_control_node-3] #18 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d10263c, in void std::invoke_impl<void, std::Bind<void (controller_manager::ControllerManager::(controller_manager::ControllerManager, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >)>&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > > >(std::invoke_other, std::Bind<void (controller_manager::ControllerManager::(controller_manager::ControllerManager, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >)>&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >&&)
[ros2_control_node-3] #17 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d10dbb8, in void std::Bind<void (controller_manager::ControllerManager::(controller_manager::ControllerManager, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >)>::operator()<std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >, void>(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > >&&)
[ros2_control_node-3] #16 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d118730, in void std::Bind<void (controller_manager::ControllerManager::(controller_manager::ControllerManager, std::Placeholder<1>, std::Placeholder<2>))(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >)>::call<void, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >&&, 0ul, 1ul, 2ul>(std::tuple<std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > >&&>&&, std::Index_tuple<0ul, 1ul, 2ul>)
[ros2_control_node-3] #15 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d123246, in std::invoke_result<void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request
<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > > >::type std::invoke<void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > > >(void (controller_manager::ControllerManager::&)(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > >), controller_manager::ControllerManager&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > >&&)
[ros2_control_node-3] #14 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d130fd6, in void std::invoke_impl<void, void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > > >(std::invoke_memfun_deref, void (controller_manager::ControllerManager::*&)(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response<std::allocator > >), controller_manager::ControllerManager*&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator > >&&, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > >&&)
[ros2_control_node-3] #13 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d047c1a, in controller_manager::ControllerManager::switch_controller_service_cb(std::shared_ptr<controller_manager_msgs::srv::SwitchController_Request_<std::allocator > >, std::shared_ptr<controller_manager_msgs::srv::SwitchController_Response_<std::allocator > >)
[ros2_control_node-3] #12 Object "/root/panda_ws/install/controller_manager/lib/libcontroller_manager.so", at 0x7fc02d03ef93, in controller_manager::ControllerManager::switch_controller(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, int, bool, rclcpp::Duration const&)
[ros2_control_node-3] #11 Object "/root/panda_ws/install/hardware_interface/lib/libhardware_interface.so", at 0x7fc02c1ed7fd, in hardware_interface::ResourceManager::prepare_command_mode_switch(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&)
[ros2_control_node-3] #10 Object "/root/panda_ws/install/hardware_interface/lib/libhardware_interface.so", at 0x7fc02c1ecf69, in auto hardware_interface::ResourceManager::prepare_command_mode_switch(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&)::{lambda(auto:1&)#4}::operator()<std::vector<hardware_interface::System, std::allocator<hardware_interface::System> > >(std::vector<hardware_interface::System, std::allocator<hardware_interface::System> >&) const
[ros2_control_node-3] #9 Object "/root/panda_ws/install/hardware_interface/lib/libhardware_interface.so", at 0x7fc02c2338e8, in hardware_interface::System::prepare_command_mode_switch(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&)
[ros2_control_node-3] #8 Object "/root/panda_ws/install/franka_hardware/lib/libfranka_hardware.so", at 0x7fc019f28da5, in franka_hardware::FrankaHardwareInterface::prepare_command_mode_switch(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&)
[ros2_control_node-3] #7 Object "/root/panda_ws/install/franka_hardware/lib/libfranka_hardware.so", at 0x7fc019f28a99, in franka_hardware::FrankaHardwareInterface::prepare_command_mode_switch(std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&, std::vector<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, std::allocator<std::__cxx11::basic_string<char, std::char_traits, std::allocator > > > const&)::{lambda(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, unsigned long, unsigned long)#2}::operator()(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, unsigned long, unsigned long) const
[ros2_control_node-3] #6 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fc02c62d4d7, in __cxa_throw
[ros2_control_node-3] #5 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fc02c62d276, in std::terminate()
[ros2_control_node-3] #4 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fc02c62d20b, in
[ros2_control_node-3] #3 Object "/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.30", at 0x7fc02c621b9d, in
[ros2_control_node-3] #2 Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fc02c35c7f2, in abort
[ros2_control_node-3] #1 Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fc02c376475, in raise
[ros2_control_node-3] #0 Object "/usr/lib/x86_64-linux-gnu/libc.so.6", at 0x7fc02c3ca9fc, in pthread_kill
[ros2_control_node-3] Aborted (Signal sent by tkill() 35804 0)
[ERROR] [ros2_control_node-3]: process has died [pid 35804, exit code -6, cmd '/root/panda_ws/install/controller_manager/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_oad8yatj --params-file /root/panda_ws/install/franka_robotiq_moveit_config/share/franka_robotiq_moveit_config/config/ros2_controllers.yaml'].
[INFO] [ros2 run controller_manager spawner panda_state_broadcaster-5]: process has finished cleanly [pid 35808]
[INFO] [ros2 run controller_manager spawner robotiq_state_broadcaster-6]: process has finished cleanly [pid 35810]
[INFO] [ros2 run controller_manager spawner panda_jtc_controller-4]: process has finished cleanly [pid 35806]

Cartesian Stiffness Values Ignored

When I use the Cartesian pose interface through franka_semantic_components, the arm seems to ignore the Cartesian stiffness values I set through the /service_center. The Joint impedance values are respected, but no matter how low I set the Cartesian stiffness values, the arm is not compliant in Cartesian space.

To replicate this, you can add the following code to the on_configure method of the CartesianImpedanceExampleController class. Am I missing some way to configure the arm for compliant motion in Cartesian space?

  auto client =
      get_node()->create_client<franka_msgs::srv::SetCartesianStiffness>("service_server/set_cartesian_stiffness");
  
  auto request = std::make_shared<franka_msgs::srv::SetCartesianStiffness::Request>(franka_msgs::srv::SetCartesianStiffness::Request());
  request->cartesian_stiffness.at(0) = 10;
  request->cartesian_stiffness.at(1) = 10;
  request->cartesian_stiffness.at(2) = 10;
  request->cartesian_stiffness.at(3) = 10;
  request->cartesian_stiffness.at(4) = 10;
  request->cartesian_stiffness.at(5) = 10;

  auto future_result = client->async_send_request(request);
  future_result.wait_for(seconds(1));

  auto success = future_result.get();
  if (!success) {
    RCLCPP_FATAL(get_node()->get_logger(), "Failed to set Cartesian stiffness.");
    return controller_interface::CallbackReturn::ERROR;
  } else if (!success->success) {
    RCLCPP_FATAL(get_node()->get_logger(), "Failed to set Cartesian stiffness.");
    return controller_interface::CallbackReturn::ERROR;
  } else {
    RCLCPP_INFO(get_node()->get_logger(), "Cartesian stiffness set.");
  }

cartesian_pose_example_controller Issue

Hi franka scientist,
I was running cartesian_pose_example_controller in franka_example_controllers (just ros2 launch franka_bringup cartesian_pose_example_controller.launch.py robot_ip:=, without changing any code), but got the error:
libfranka: Move command aborted: motion aborted by reflex! ["cartesian_motion_generator_velocity_discontinuity", "cartesian_motion_generator_acceleration_discontinuity", "cartesian_motion_generator_joint_acceleration_discontinuity"]
os: Ubuntu 22.04
ROS2 humble
franka_ros2 branch: humble, tag: v0.1.13
libfranka branch: fr3-develop, tag: 0.13.3
I was also trying to reduce the radius of motion, but no matter how much I reduced, the same error still show up, unless I set the radius - 0. besides, I tried to set cartesian_pose_command_rate_limit_active_ = true, does not help either.
Please advise.
Thanks,

controller manager crashes when controller is stopped

After loading the joint_state_broadcaster and panda_arm_controller via ros2 run controller_manager spawner.py into the controller manager, I am unable to unload panda_arm_controller again.

An attempt to unload via:

ros2 run controller_manager unspawner.py panda_arm_controller

or simply stop via:

ros2 service call /controller_manager/switch_controller controller_manager_msgs/srv/SwitchController "{stop_controllers: ['panda_arm_controller'], strictness: 1}"

crashes the controller manager:

[ERROR] [ros2_control_node-6]: process has died [pid 3810693, exit code -11, cmd '/opt/ros/foxy/lib/controller_manager/ros2_control_node --ros-args --params-file /tmp/launch_params_a2hvyo1e --params-file [...]/install/franka_moveit_config/share/franka_moveit_config/config/panda_ros_controllers.yaml -r joint_states:=franka/joint_states'].
[INFO] [launch]: process[ros2_control_node-6] was required: shutting down launched system

Compatible Library Versions

The following document only outlines version compatibility for franka_ros.

I have updated my FER to 4.2.2 and wished to check what the recommended libfranka and associated submodule versions were for interfacing with the robot using franka_ros2.

Error Message

moveit_1  | [ros2_control_node-4] [FATAL] [1674486353.275366943] [FrankaHardwareInterface]: libfranka: Incompatible library version (server version: 5, library version: 4). Please check https://frankaemika.github.io for Panda system updates or use a different version of libfranka.

Environment
ROS Version: Foxy
libfranka: 0.9.0 - 0.10.0 (tested against multiple releases)

Note: I am recursively cloning libfranka so have also cloned associated libfranka-common repository.

Thanks in advance for any clarity you can provide. My workspace is built as a Docker image so I am happy to share further technical details where required.

@andrejpan does this fall under no ROS2 support as mentioned here?

FYI @Kzernobog.

Parameterized Launch Configurations

Right now, the franka_bringup package has launch files which load a static controllers.yaml file, which has all of the *_example_controller controllers. I think it would be helpful to have a parameter that defaults to the controllers.yaml file in the franka_bringup package. This way, users could benefit from using franka_bringup, while still loading their own controllers.

If this capability isn't added, I think users have to execute ros2 param set commands as shell processes, either in launch files or manually in a terminal.

@BarisYazici do you agree that a controller_manager_parameters parameter, which defaults to controllers.yaml, is acceptable? If so, I can submit a PR with this change.

Failed loading controller when using Humble dummy hardware

Dear Sir,

When I tried to use the dummy hardware, the robot not only didn't move, but also have problems with all the controller examples.
for example, in move_to_start_example_controller:
image

and all other example shows the similar errors.is that solvable for now?

Waiting for your reply. Thank you.

Using the internal Impedance controllers through ROS2

Hi,

This might be a noob question.

The libfranka interface allows one to generate their own motions and then speak to the Robot control using the motion_generator interface and a default option of either the internal joint Impedance controller or the internal cartesian Impedance controller.

Is there a way of utilising the internal controllers through ROS2 api as well?

model_example_controller crashes in simulation

Currently, I was trying to visualize the dynamic parameters of the robot using the command

ros2 launch franka_bringup model_example_controller.launch.py robot_ip:=dont-care use_fake_hardware:=true use_rviz:=true

But I get the following output:

image
I think that it interprets the robot name as a state and it gives an error.
I am using libfranka 0.13.2 and franka_ros2 0.1.11.

Humble fake controller moveit partially broken

Tested within the dev container by following the instructions here and launching moveit with fake controllers (i.e. not a real robot):

  • I was able to get into the dev container, build and launch the fake moveit instance.
  • Rviz popper up, I planned to a valid goal, and hit execute.
  • The console in VSCode showed positive feedback and eventually execution success after some seconds as expected.
  • The MotionPlanning visualization in rviz also showed execution success after some seconds
  • But the robot did not actually move. This can be verified by introspecting the robot state visually, tf tree etc..

Support for Multiple Libfranka Versions

It would be nice to have an official release per libfranka version.

Also was sorry to hear the news about Franka Emika, hoping the the company will pull through into a strong future ❤️🤖.

collision meshes not shown in RViz

The collision geometry defined in the XACRO is not visualised in RViz.

Steps to reproduce:

  1. follow instructions at https://support.franka.de/docs/franka_ros2.html
  2. start the fake robot: ros2 launch franka_moveit_config moveit.launch.py robot_ip:=dont-care use_fake_hardware:=true
  3. show collision geometry: tick PlanningScene -> Scene Robot -> Show Robot Collision and untick Show Robot Visual

Expected Results:

You should see the collision geometry, such as <cylinder radius="${0.06+safety_distance}" length="0.03" /> for link "${arm_id}_link0" in RViz.

Actual Results:

No collision geometry is shown.

MoveIt seems to respect the collision geometry as it prevents collision states, but they are not shown in RViz.

Errors building franka_ros2 in ros Iron

Hello,

Because of circunstances I have ros Iron installed and I tried to install franka_ros2 even if humble is the recommended one. So, I followed the steps in the tutorial adapting the steps to iron:
https://support.franka.de/docs/franka_ros2.html

sudo apt install -y libpoco-dev libeigen3-dev
git clone https://github.com/frankaemika/libfranka.git --recursive
cd libfranka
git switch 0.11.0
mkdir build && cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=OFF  ..
cmake --build . -j$(nproc)
cpack -G DEB
sudo dpkg -i libfranka-0.9.2-x86_64.deb 


sudo apt install -y ros-iron-hardware-interface ros-iron-generate-parameter-library ros-iron-ros2-control-test-assets ros-iron-controller-manager ros-iron-control-msgs ros-iron-xacro ros-iron-angles ros-iron-ros2-control ros-iron-realtime-tools ros-iron-control-toolbox ros-iron-moveit ros-iron-ros2-controllers ros-iron-joint-state-publisher ros-iron-joint-state-publisher-gui ros-iron-ament-cmake ros-iron-ament-cmake-clang-format python3-colcon-common-extensions 

mkdir -p ~/franka_ros2_ws/src

source /opt/ros/iron/setup.bash
cd ~/franka_ros2_ws
git clone https://github.com/frankaemika/franka_ros2.git src/franka_ros2
colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
source install/setup.sh

But somehow fails in joint_trayectory_controller and aborts franka_msgs. Can someone help me with this issue?

`colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release
source install/setup.sh
Cloning into 'src/franka_ros2'...
remote: Enumerating objects: 2149, done.
remote: Counting objects: 100% (692/692), done.
remote: Compressing objects: 100% (161/161), done.
remote: Total 2149 (delta 583), reused 585 (delta 525), pack-reused 1457
Receiving objects: 100% (2149/2149), 4.06 MiB | 2.01 MiB/s, done.
Resolving deltas: 100% (1262/1262), done.
[1.518s] WARNING:colcon.colcon_core.package_selection:Some selected packages are already built in one or more underlay workspaces:
	'joint_trajectory_controller' is in: /opt/ros/iron
If a package in a merged underlay workspace is overridden and it installs headers, then all packages in the overlay must sort their include directories by workspace order. Failure to do so may result in build failures or undefined behavior at run time.
If the overridden package is used by another package in any underlay, then the overriding package in the overlay must be API and ABI compatible or undefined behavior at run time may occur.

If you understand the risks and want to override a package anyways, add the following to the command line:
	--allow-overriding joint_trajectory_controller

This may be promoted to an error in a future release of colcon-override-check.
Starting >>> franka_msgs
Starting >>> franka_description
Starting >>> integration_launch_testing                    
Starting >>> joint_trajectory_controller
Finished <<< integration_launch_testing [0.91s]                  
Finished <<< franka_description [1.18s]                          
--- stderr: joint_trajectory_controller                                
In file included from /home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:37:
/opt/ros/iron/include/rclcpp/rclcpp/qos_event.hpp:18:2: warning: #warning This header is obsolete, please include rclcpp/event_handler.hpp instead [-Wcpp]
   18 | #warning This header is obsolete, please include rclcpp/event_handler.hpp instead
      |  ^~~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp: In member function ‘virtual controller_interface::CallbackReturn joint_trajectory_controller::JointTrajectoryController::on_configure(const rclcpp_lifecycle::State&)’:
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:685:26: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘desired’
  685 |   state_publisher_->msg_.desired.positions.resize(dof_);
      |                          ^~~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:686:26: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘desired’
  686 |   state_publisher_->msg_.desired.velocities.resize(dof_);
      |                          ^~~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:687:26: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘desired’
  687 |   state_publisher_->msg_.desired.accelerations.resize(dof_);
      |                          ^~~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:688:26: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘actual’
  688 |   state_publisher_->msg_.actual.positions.resize(dof_);
      |                          ^~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:692:28: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘actual’
  692 |     state_publisher_->msg_.actual.velocities.resize(dof_);
      |                            ^~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:697:28: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘actual’
  697 |     state_publisher_->msg_.actual.accelerations.resize(dof_);
      |                            ^~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp: In member function ‘void joint_trajectory_controller::JointTrajectoryController::publish_state(const JointTrajectoryPoint&, const JointTrajectoryPoint&, const JointTrajectoryPoint&)’:
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:912:28: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘desired’
  912 |     state_publisher_->msg_.desired.positions = desired_state.positions;
      |                            ^~~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:913:28: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘desired’
  913 |     state_publisher_->msg_.desired.velocities = desired_state.velocities;
      |                            ^~~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:914:28: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘desired’
  914 |     state_publisher_->msg_.desired.accelerations = desired_state.accelerations;
      |                            ^~~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:915:28: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘actual’
  915 |     state_publisher_->msg_.actual.positions = current_state.positions;
      |                            ^~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:919:30: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘actual’
  919 |       state_publisher_->msg_.actual.velocities = current_state.velocities;
      |                              ^~~~~~
/home/mikel/franka_ros2_ws/src/franka_ros2/joint_trajectory_controller/src/joint_trajectory_controller.cpp:924:30: error: ‘struct control_msgs::msg::JointTrajectoryControllerState_<std::allocator<void> >’ has no member named ‘actual’
  924 |       state_publisher_->msg_.actual.accelerations = current_state.accelerations;
      |                              ^~~~~~
gmake[2]: *** [CMakeFiles/joint_trajectory_controller.dir/build.make:76: CMakeFiles/joint_trajectory_controller.dir/src/joint_trajectory_controller.cpp.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:208: CMakeFiles/joint_trajectory_controller.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....
gmake: *** [Makefile:146: all] Error 2
---
Failed   <<< joint_trajectory_controller [10.5s, exited with code 2]
Aborted  <<< franka_msgs [15.0s]                                   

Summary: 2 packages finished [16.3s]
  1 package failed: joint_trajectory_controller
  1 package aborted: franka_msgs
  1 package had stderr output: joint_trajectory_controller
  7 packages not processed
not found: "/home/mikel/franka_ros2_ws/install/joint_trajectory_controller/share/joint_trajectory_controller/local_setup.sh"
`

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.