Program structure

To provide a easy and modular programming of the robot, every device can be seperately started by a launch file. They provide the startup setting whats neccessary

Launch files for the actors and sensor devices:

Launch Files for setting up the position estimation of the robot (odometry, path estimation, etc.):

Launch files for starting the basic control layers for following waypoints and avoid obstacles:

Launch files for the decision layer, what decides what singals finaly goes to the motorcontrollers and some visualisation:

Under normal circumstances all launchfiles can be started with one command in a terminal: <note>roslaunch talos start_navigation.launch</note>

a detailed graph of all programmed nodes can be found in the next picture of the overall node graph…

Node graph:

Mission files

The robot navigation follow a 2D kartesian koordinate system. At outdoor navigation task we can use the UTM Koordinate System to navigate. So the positions can be set by absolute coordinates in UTM. This is sufficient for deterministic navigation. But if we want to perform a special task at a certain point, some more information for success is neccessary! This additional information could be:

typically these information can be provided by a .txt or .xml file, because of the easy way of programming and uncomplicated change for different programmes.

Example mission file:

<mission> <route>

    <point 
    utme="0"
    utmn="0"
    comment="Point1"
  />    
<point
    utme="7.3103272608"
    utmn="-8.2351758052"
    speed="0.500"
    comment="Point2"
  />
  <point
    utme="9.7020082594"
    utmn="-6.5281831669"
    wait="5"
    comment="Point3"
  />
  <point
    utme="2.4196230196"
    utmn="1.5525352387"
    comment="Point4"
  />
  <point
    utme="4.51991709"
    utmn="3.5841530077"
    wait_until_task_ready="true"
    comment="Point5"
  />

</route> </mission>