Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

About the package

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

Tip
titleTip:
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.

local

total

all

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

true

false

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

integer


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:

    Code Block
    languagesql
    themeRDark
    linenumberstrue
    roslaunch neo_simulation simulation.launch


    Tip
    titleTip:

    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 ! 

Now run:

Code Block
languagesql
themeRDark
linenumberstrue
rosrun neo_goal_sequence_driver automated_sequence.py 

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

Node updates the selected goal sequence in the YAML file.

Setup server


  1. Run goal_sequence_driver_server and goal_sequence_visualizer with launch file:

    Code Block
    languagesql
    themeRDark
    linenumberstrue
    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:

    Code Block
    languagesql
    themeRDark
    linenumberstrue
    roslaunch neo_goal_sequence_driver neo_goal_sequence_driver.launch


    Note

    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:

    Code Block
    languagesql
    themeRDark
    linenumberstrue
    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:

    Code Block
    languagesql
    themeRDark
    linenumberstrue
    rosservice call /goal_sequence_driver/stop

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

Video demo

Widget Connector
urlhttps://www.youtube.com/watch?v=gs0Cfb5Iz2Y

Please switch on the subtitles!