ALNavigation

Overview | API


What it does

ALNavigation API allows the user to perform safe displacements when using the robot.

nao NAO

The robot cannot yet avoid obstacles, but it is able to move cautiously, stopping as soon as an obstacle enters its security zone.

juju Pepper only

Pepper may also use the ALNavigation API in several modes:

How it works

nao NAO & juju Pepper

While moving, the robot tries to detect obstacles in its move direction, using all its sensors.

juju Pepper only

While moving, the robot tries to detect obstacles in its move direction, using all its sensors.

../../_images/juliette_alnavigation.png

Getting Started

Using Choregraphe

The most straightforward way to start using ALNavigation is:

  1. Use the Motions > Move To box.
  2. Activate the Secure moveTo (Stop if obstacle) option.

Python script

alnavigation.py

# -*- encoding: UTF-8 -*-

import argparse
from naoqi import ALProxy

def main(robotIP, PORT = 9559):

    navigationProxy = ALProxy("ALNavigation", robotIP, PORT)
    motionProxy     = ALProxy("ALMotion", robotIP, PORT)
    postureProxy    = ALProxy("ALRobotPosture", robotIP, PORT)

    # Wake up robot
    motionProxy.wakeUp()

    # Send robot to Stand Init
    postureProxy.goToPosture("StandInit", 0.5)

    # No specific move config.
    motionProxy.moveTo(1.0, 0.0, 0.0)
    motionProxy.moveTo(1.0, 0.0, 0.0, [])

    # To do 6 cm steps instead of 4 cm.
    motionProxy.moveTo(1.0, 0.0, 0.0, [["MaxStepX", "0.06"]])

    # Will stop at 0.5m (FRAME_ROBOT) instead of 0.4m away from the obstacle.
    navigationProxy.setSecurityDistance(0.5)


if __name__ == "__main__":
    parser = argparse.ArgumentParser()
    parser.add_argument("--ip", type=str, default="127.0.0.1",
                        help="Robot ip address")
    parser.add_argument("--port", type=int, default=9559,
                        help="Robot port number")

    args = parser.parse_args()
    main(args.ip, args.port)