Lesson 3. Find and follow an object, navigate between them

In the third lesson you will learn how to find World Objects and go to them.

The challenge

You start with Spot in the place with some fiducials (a mark on the object) around. Create and execute Python script detects at least two fiducials and moves Spot to each of them within 1 m.

Theory

Spot has the World Object Service that provides a way to track and store objects detected in the world around Spot. A world object is considered a higher-level item in the scene that has some amount of semantic information associated with it. More information you can find in Robot Services tab in Spot SDK documentation.

Using world object service you can find fiducials near the Spot.

Spot can find objects around faster if he stands.

In the task you will need find fiducials' coordinates and go to them. You already know how to move to the local coordinates from the Lesson 2. The example of how to find a fiducial and it's coordinates is in fiducial_follow example.

In your script, firstly, you need to find fiducial object with World Object Service:

fiducial_objects = world_object_client.list_world_objects(
            object_type=[world_object_pb2.WORLD_OBJECT_APRILTAG]).world_objects

Then get fiducial coordinates in a visual frame:

fiducial = fiducial_objects[0]
vision_tform_fiducial = get_a_tform_b(fiducial.transforms_snapshot, VISION_FRAME_NAME,fiducial.apriltag_properties.frame_name_fiducial.to_proto()

Practice

Ensure you have Yggdrasil Network software running and configured as described in the Lesson 0. Otherwise you will not have connection to the robot. On macOS you may need to launch Yggdrasil Network in the terminal:

sudo yggdrasil -useconffile /etc/yggdrasil.conf
  1. Connect to Spot from a terminal or using your development environment remote execution function.
ssh student@strelka.ygg.merklebot.com
  1. Develop and demonstrate your solution to the challenge.

We create E-Stop endpoint for you, so you should not create it. For Spot authentication use username and password from /home/student/credentials file. Spot address is 192.168.50.3.

← Lesson 2. Remote controlled and programmed motion Lesson 4. GraphNav service. Mapping and navigating on the map →