A demo where a pepper tries to keep a person in the center of the frame, without the information being processed by the user’s laptopThere is a list of targets that Nao can track using the Naoqi Tracker API, which works well under good lighting conditions. Here is a walkthrough on how to track a face with its head and a red ball with its arms.
Track a face with Nao’s head
First, import the necessary functions from the SIC framework:
Code Block |
---|
from sic_framework.devices import Nao
from sic_framework.devices.common_naoqi.naoqi_stiffness import Stiffness
from sic_framework.devices.common_naoqi.naoqi_tracker import (
RemoveTargetRequest,
StartTrackRequest,
StopAllTrackRequest,
) |
Connect to the Nao (computer must be connected to the same network)
Code Block |
---|
nao = Nao(ip="NAO_IP_HERE") |
Set a tracking target, a list of available targets can be found here: http://doc.aldebaran.com/2-5/naoqi/trackers/index.html#target-names
Code Block |
---|
target_name = "Face" |
Since we want to use the head to track an object, we need to set the stiffness to 1 to enable the motor to control the head joint
Code Block |
---|
nao.stiffness.request(Stiffness(stiffness=1.0, joints=["Head"])) |
Start tracking, the size is the diameter of the target and a list of available modes can be found here: http://doc.aldebaran.com/2-5/naoqi/trackers/index.html#tracking-modes
Code Block |
---|
nao.tracker.request(StartTrackRequest(target_name, size=0.2, mode="Head", effector="None")) |
Unregister a target
Code Block |
---|
nao.tracker.request(RemoveTargetRequest(target_name)) |
Track a red ball with Nao’s arms
Set a new target
Code Block |
---|
target_name = "RedBall" |
A complete script for this tutorial can be found here: demo_nao_motion.py