Page tree
Skip to end of metadata
Go to start of metadata

About the package

User will demand the robot to reach a set of self-defined goals by running neo_goal_sequence_driver


Prerequisite  knowledge: Installation and Navigation with Move Base for neo_simulation package

Driver Configuration

The following parameters could be found in driver_config.yaml and can be modified:

ParameterDefault ValueDescriptionOptions
print_option allUser can define which information is to be printed in terminal.




infi_paramfalseRobot will (or not) continuously repeat the sequence until it's shutdown by calling service.



patience5User can define the time length spent on one single goal (in seconds).


manual_steppingfalseif to require calling /next for each goalbool

Initial Startup

  1. Start the robot (or simulator) and launch navigation stack first, e.g. using simulator:

    roslaunch neo_simulation simulation.launch


    If there's any problem, see: Configuration and Launch

Goal Configuration

Goals to the driver can be given in two ways:

1. Manual

Manual methodology will allow the users to set the co-ordinates of the goals by directly editing the YAML file

ParameterDefault ValueDescriptionOptions
goalssee goal_list.yamlA sequence of goals, the number of goals could be more or less than default.
[{X: <m>, Y: <m>, theta: <deg>}, ...]

2. Automated

Automated methodology will allow the users to set the goals on the fly in RViz.

In order to use the functionality in simulation, set the "move_base" argument to "false" in the ($Desire_robot)_autonomous_navigation.launch file ! 

For the real robot, just start the neo_localization node : (if you have mp_500, use the below command! Else, change it based on your robot type)

roslaunch neo_mp_500 neo_localization.launch

Now run:

roslaunch neo_goal_sequence_driver neo_goal_sequence_driver_autoamated.launch

automated_sequence node enables to use the "2D Nav goal" option to continuously set any number of goals in sequence which are then visualized using the pose arrays. 

Node updates the selected goal sequence in the YAML file.

In simulation run:

roslaunch neo_simulation ($Desire_robot)_move_base.launch

In real-robot now run: (if you have mp_500, use the below command! Else, change it based on your robot type)

roslaunch neo_mp_500 move_base.launch

Setup server

  1. Run goal_sequence_driver_server and goal_sequence_visualizer with launch file:

    roslaunch neo_goal_sequence_driver neo_goal_sequence_driver_visualized.launch

    if the visualization of goal list is not necessary, just launch the server by:

    roslaunch neo_goal_sequence_driver neo_goal_sequence_driver.launch

    Make sure the system time on the platform is the same as on the machine which is running neo_goal_sequence_driver, otherwise it may not work.

  2. If every thing is now set up, it looks like the picture below, you can move on to next step and demand the robot to first goal!

  3. Change configurations:
    1. shutdown the server node
    2. modify yaml files
    3. run server node again

Start driver

  1. Start the driver by calling:

    rosservice call /goal_sequence_driver/run

    Now the robot should be moving toward it's goals until it reaches the final one(if the default configurations are applied).

  2. Stop by calling:

    rosservice call /goal_sequence_driver/stop

    And if the former service is called again, it restarts the drive from 1st goal.

Video demo

Please switch on the subtitles!

  • No labels