15-494/694 Cognitive Robotics Lab 11:
Multi-Camera and Multi-Robot Systems
I. Software Update, SDK Update, and Initial Setup
Note: This labs will be done in 2 teams. Each team should have 6-7 people.
Equipment: each team gets one webcam, and a robot with an AruCo marker
on its back.
At the beginning of every lab you should update your copy of the
cozmo-tools package. Do this:
$ cd ~/cozmo-tools
$ git pull
II. Perched Camera Support
for perched camera SLAM and shared maps.
Pick two adjacent computers; the space between them will be the
workspace for the robots. Hook up the large monitor to Team 1's
computer so everyone can see it. Run simple_cli on each machine.
- There are new commands in simple_cli to support perched camera
SLAM and shared maps. Type "show" and "start" in simple_cli to see a list.
- Plug a webcam into each computer. Each team should type "show
camera 0" and adjust their webcams to give a view of the workspace
where their robots will operate.
- Both teams should type "start perched 0" to start the perched camera thread
using their webcam. Enter the number of the ArUco marker on their
robot's back: 91 or 92.
- Both teams should type "show particle_viewer".
- Both teams should type "show worldmap_viewer" and zoom out until the world is visible.
If the robot is in view, both teams should see a perched camera floating in the air.
- The perched camera acts as a landmark that can be used by the
particle filter to track the robot's position. Both teams should
type WarmUp.now() to exercise their robot and refine the camera's
III. Shared Maps
- Team 1 should type "start server" in simple_cli.
- Team 1 should find their machine's IP address by typing "ifconfig"
in a shell. The number will begin with 128.2. Give that number to team 2.
- Team 2 should type "start client IP_address" using the IP address
they got from team 1.
- Once a connection to the server is established, team 2 should type "start shared_map"
to subscribe to the server's shared map.
- All teams should now see two robots in their world map viewer.
IV. Shared Map Experiments
The shared map facility is new and not debugged yet. Try some experiments
to see how well it works.
- Drive each robot around with Forward() and Turn() and check the maps for
- Introduce a wall that one robot can see; have the other robot face in a different
direction so it doesn't see the wayll. Verify that the wall is visible
in both world maps.
- Put a light cube on the far side of the wall. Drive one robot through
the doorway so it can see the light cube. Verify that the cube appears in both maps.
- Type "show objects" on each robot to see the contents of the world maps.
- Try some of the nodes listed in section 3 of the documentation. Do they work?
V. Rest of the Lab
You can spend the rest of the lab period working on your assignments from labs 9 and 10.
There is no hand-in for his lab.