LCAS / topological_navigation

The topological navigation framework
Apache License 2.0
31 stars 36 forks source link

Merging reconf_at_edges_server into Navigation #37

Closed Jailander closed 3 years ago

Jailander commented 3 years ago

The action reconfiguration at edges was a late addition to our navigation pipeline and it was a bit messy, mainly because its a separate service configured by a different file which adds a lot of complexity to the system, additional points of problems and unnecessary delays.

The way to overcome this, is to fully integrate the edge re-configuring into the navigation server (#33 ). The new map format (#35 ) already provides for this in the edge definition where the config field can be used to define parameters that can be reconfigured using the rqt_reconfigure interface.

edges:                              # List of edges departing from the node
  - action: move_action               # Action Name
    node: WayPoint002
    config: &move_action_config_1             # Action Configuration
      inflation_radius: 0.0                   # Action Parameters
      top_vel: 0.55
      recovery_behaviours_config: ''
    action_type: 'move_action_msgs/MoveActionGoal'      # Goal type for the Action
    goal:
      target_pose: $node.pose
Jailander commented 3 years ago

@adambinch do you think of the config field? will we need more parameters? (I was thinking name of reconf server)

adambinch commented 3 years ago

Edge config is now:

    edges:                        # List of edges departing from the node
    - action: move_action                # Action Name
      edge_id: WayPoint001_WayPoint002
      node: WayPoint002
      config: &move_action_config_1             # Edge Reconfigure
      - namespace: param1_namespace                   # Parameter
        name: param1_name
        value: param1_value
      - namespace: param2_namespace                   # Parameter
        name: param2_name
        value: param2_value
adambinch commented 3 years ago

Edge reconfigure for the new map is now implemented in the main navigation script (navigation.py) but not as yet for the execute policy server, which is due to be integrated with navigation.py. Issue https://github.com/LCAS/topological_navigation/issues/33 needs to be resolved before this issue can be fully resolved.

adambinch commented 3 years ago

Done.