ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
1

Navigation2 Controller Server: Unable to start transition 1 from current state active

asked 2022-01-25 04:01:51 -0500

cracy_capacitor gravatar image

Hello,

I'm trying to build a holonomic robot on Ros2 Galactic. I'm using an RPLidar Sensor, Slam Toolbox for map creation, a custom node for the odometry frame and Navigation2 for navigation.

Everything works perfect (driving in manual mode with controller, map creation and localisation in the map with SlamToolbox ...), but when I launch the navigation stack I get following error message from the controller server:

[controller_server-5] [WARN] [1643104238.458930210] [rcl_lifecycle]: No transition matching 1 found for current state active
[controller_server-5] [ERROR] [1643104238.458952432] []: Unable to start transition 1 from current state active: Transition is not registered., at /tmp/binarydeb/ros-galactic-rcl-lifecycle-3.1.2/src/rcl_lifecycle.c:355
[lifecycle_manager-10] [ERROR] [1643104238.460523509] [lifecycle_manager_navigation]: Failed to change state for node: controller_server
[lifecycle_manager-10] [ERROR] [1643104238.460550162] [lifecycle_manager_navigation]: Failed to bring up all requested nodes. Aborting bringup.

Everything else seems to work. For example I can see the plannerserver publishing the global.costmap.

I'm using the default nav2_bringup navigation_launch.py launchfile (for navigation with SLAM) with a custom configuration file to launch the navigation stack. My Configuration File is:

amcl:
  ros__parameters:
    use_sim_time: True
    alpha1: 0.2
    alpha2: 0.2
    alpha3: 0.2
    alpha4: 0.2
    alpha5: 0.2
    base_frame_id: "base_footprint"
    beam_skip_distance: 0.5
    beam_skip_error_threshold: 0.9
    beam_skip_threshold: 0.3
    do_beamskip: false
    global_frame_id: "map"
    lambda_short: 0.1
    laser_likelihood_max_dist: 2.0
    laser_max_range: 100.0
    laser_min_range: -1.0
    laser_model_type: "likelihood_field"
    max_beams: 60
    max_particles: 2000
    min_particles: 500
    odom_frame_id: "odom"
    pf_err: 0.05
    pf_z: 0.99
    recovery_alpha_fast: 0.0
    recovery_alpha_slow: 0.0
    resample_interval: 1
    robot_model_type: "omnidirectional"  #holonomic
    save_pose_rate: 0.5
    sigma_hit: 0.2
    tf_broadcast: true
    transform_tolerance: 1.0
    update_min_a: 0.2
    update_min_d: 0.25
    z_hit: 0.5
    z_max: 0.05
    z_rand: 0.5
    z_short: 0.05
    scan_topic: scan

amcl_map_client:
  ros__parameters:
    use_sim_time: True

amcl_rclcpp_node:
  ros__parameters:
    use_sim_time: True

bt_navigator:
  ros__parameters:
    use_sim_time: True
    global_frame: map
    robot_base_frame: base_link
    odom_topic: /odom
    bt_loop_duration: 10
    default_server_timeout: 20
    enable_groot_monitoring: True
    groot_zmq_publisher_port: 1666
    groot_zmq_server_port: 1667
    # 'default_nav_through_poses_bt_xml' and 'default_nav_to_pose_bt_xml' are use defaults:
    # nav2_bt_navigator/navigate_to_pose_w_replanning_and_recovery.xml
    # nav2_bt_navigator/navigate_through_poses_w_replanning_and_recovery.xml
    # They can be set here or via a RewrittenYaml remap from a parent launch file to Nav2.
    plugin_lib_names:
    - nav2_compute_path_to_pose_action_bt_node
    - nav2_compute_path_through_poses_action_bt_node
    - nav2_follow_path_action_bt_node
    - nav2_back_up_action_bt_node
    - nav2_spin_action_bt_node
    - nav2_wait_action_bt_node
    - nav2_clear_costmap_service_bt_node
    - nav2_is_stuck_condition_bt_node
    - nav2_goal_reached_condition_bt_node
    - nav2_goal_updated_condition_bt_node
    - nav2_initial_pose_received_condition_bt_node
    - nav2_reinitialize_global_localization_service_bt_node
    - nav2_rate_controller_bt_node
    - nav2_distance_controller_bt_node
    - nav2_speed_controller_bt_node
    - nav2_truncate_path_action_bt_node
    - nav2_goal_updater_node_bt_node
    - nav2_recovery_node_bt_node
    - nav2_pipeline_sequence_bt_node
    - nav2_round_robin_node_bt_node
    - nav2_transform_available_condition_bt_node
    - nav2_time_expired_condition_bt_node
    - nav2_distance_traveled_condition_bt_node
    - nav2_single_trigger_bt_node
    - nav2_is_battery_low_condition_bt_node
    - nav2_navigate_through_poses_action_bt_node
    - nav2_navigate_to_pose_action_bt_node
    - nav2_remove_passed_goals_action_bt_node
    - nav2_planner_selector_bt_node
    - nav2_controller_selector_bt_node
    - nav2_goal_checker_selector_bt_node

bt_navigator_rclcpp_node:
  ros__parameters:
    use_sim_time: True

controller_server:
  ros__parameters:
    use_sim_time: True
    controller_frequency: 20.0
    min_x_velocity_threshold: 0.001
    min_y_velocity_threshold: 0.001       #holonomic
    min_theta_velocity_threshold: 0.001
    failure_tolerance: 0.3
    progress_checker_plugin: "progress_checker"
    goal_checker_plugins: ["general_goal_checker"] # "precise_goal_checker"
    controller_plugins: ["FollowPath"]

    # Progress checker parameters
    progress_checker:
      plugin: "nav2_controller::SimpleProgressChecker"
      required_movement_radius: 0.5
      movement_time_allowance: 10.0
    # Goal checker parameters
    #precise_goal_checker:
    #  plugin: "nav2_controller::SimpleGoalChecker"
    #  xy_goal_tolerance: 0.25
    #  yaw_goal_tolerance: 0.25
    #  stateful: True
    general_goal_checker:
      stateful: True
      plugin: "nav2_controller::SimpleGoalChecker"
      xy_goal_tolerance: 0.25
      yaw_goal_tolerance: 0.25
    # DWB parameters
    FollowPath:
      plugin: "dwb_core::DWBLocalPlanner"
      debug_trajectory_details: True
      min_vel_x: 0.0
      min_vel_y: 0.0
      max_vel_x: 0.26
      max_vel_y: 0.26     #holonomic
      max_vel_theta: 1.0
      min_speed_xy: 0.0
      max_speed_xy: 0.26
      min_speed_theta: 0.0
      # Add high threshold velocity for turtlebot 3 issue.
      # https://github.com/ROBOTIS-GIT/turtlebot3_simulations/issues/75
      acc_lim_x: 2.5
      acc_lim_y: 2.5      #holonomic
      acc_lim_theta: 3.2 ...
(more)
edit retag flag offensive close merge delete

Comments

You should look up in your logs, almost certainly there are other errors printed before you got to this point.

stevemacenski gravatar image stevemacenski  ( 2022-01-25 17:45:32 -0500 )edit

As above, please add your error logs

ljaniec gravatar image ljaniec  ( 2023-03-08 08:54:20 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2022-01-25 07:18:52 -0500

ljaniec gravatar image

I can see some differences between your controller_server and the official one frome documentation, especially with goal_checker_plugin(s).

Maybe this could be a trace to follow? Could you link me where you have found sources for these configuration parameters?

edit flag offensive delete link more

Comments

I've already tried changing this line to goal_checker_plugin: "general_goal_checker". This didn't resolve the problem.

I think the goal_checker_plugin parameter was replaced by goal_checker_pluginsin the migration from foxy to galactic: https://navigation.ros.org/migration/...

The config file is from the Navigation2 Github Repository Galactic Branch: https://github.com/ros-planning/navig...

cracy_capacitor gravatar image cracy_capacitor  ( 2022-01-25 08:17:07 -0500 )edit

have you resolved this? I have the same issue.

n000oob gravatar image n000oob  ( 2023-03-02 01:50:36 -0500 )edit

I also have the same issue, were you able to solve it?

Davies Ogunsina gravatar image Davies Ogunsina  ( 2023-03-11 08:40:18 -0500 )edit

I found a similar problem in https://github.com/ros-planning/navig... perhaps the node controller_server was not closed

1037330028 gravatar image 1037330028  ( 2023-05-11 03:44:10 -0500 )edit

Question Tools

1 follower

Stats

Asked: 2022-01-25 04:01:51 -0500

Seen: 864 times

Last updated: Jan 25 '22