Skip to main content
. 2019 Mar 1;19(5):1049. doi: 10.3390/s19051049
Algorithm 2: Hybrid navigation algorithm.
Require: Occupancy Grid OG, Robot current Pose X, Robot Desired Pose Xd, γ, fe
Ensure: Occupancy Grid OG, Xd
  • 1:

    routeAStarSearch(OG,X,Xd)

  • 2:

    ifrouteWasFoundthen

  • 3:

    pathGeneratePath(OG,X,Xd)

  • 4:

    PathFoundtrue

  • 5:

    dobsdobsA

  • 6:

    Aescapefalse

  • 7:

    else

  • 8:

    dobsdobsT

  • 9:

    end if

  • 10:

    whileXXddo

  • 11:

    XGetRobotOdometry()

  • 12:

    MGetSensorData()

  • 13:

    UpdateMap(OG,M,X)

  • 14:

    if PathFound then

  • 15:

      if (min(M)dobsA¬(Aescape))(Aescapemin(M)dobsT) then

  • 16:

       dobsdobsT

  • 17:

       Aescapetrue

  • 18:

      else

  • 19:

       dobsdobsA

  • 20:

       Aescapefalse

  • 21:

      end if

  • 22:

      ControllerPathFollowingController

  • 23:

      XdgetClosestPathPpoint

  • 24:

    end if

  • 25:

    XdTangentialEscape(min(M),dobs,fe,γ)

  • 26:

    UController(X,Xd)

  • 27:

    sendControlSignals

  • 28:

    end while

  • 29:

    returnOG,X