Iteration 1: Building Directs 1 Robot
- Waypoint app 1: Building sends waypoint to Robot
- Waypoint app 2: Building sends waypoint to Robot and continually monitors its progress
Foci:
- Integrating existing components and capabilities into skeleton infrastructure
Iteration 2: Building and a Robot communicate
- Pano app 1: Robot collects panorama and sends bag file of data to Building to store.
- Building map 1: Robots use /building/map topic to retrieve map data
- 3D mapping 1: Robot collects 3D data and sends bag files to Building to store
Foci:
- ROS interface specification
- Data storage infrastructure
Needs:
- Creates
- Server to store bag data
- web bags?
- RIDE prototype to start phasing out use of rviz as UI
Iteration 3: Building Directs Multiple Robots
- Pano app 2: Multiple robots collect panoramas and send bag files to Building to store. Building assembles these into "Street View"
- Pano app 3: Multiple robots collect panoramas and send bag files to Building to store. Building assembles these into "Time Machine Street View", where you can scan back in time
- 3D Mapping 2: Multiple robots collect panoramas and send bag files to Building to store. Building assembles these into full 3D model of Building.
- Multiple robot teleop 1: Control position of multiple robots on map
- Teleop full robot 1: Select a robot to connect to, then get full teleop (arms, gripper, head, base)
- Multiple robot teleop 2: Control position of multiple robots on map, and switch into full teleop at any time
Foci:
- App deployment
- RIDE interface
- Generalization of robot interfaces
Potential new apps:
- Object recognition across collected pano data, e.g. to test feasibility for a janitor app
Iteration 4: Complete Peer-to-Peer
At this phase, the system becomes truly peer to peer, with no primacy of any particular 'robot'. At this level, instead of focusing on pushing apps onto robots, we think of pushing apps onto clients that interact with robots. As an analogy, the iPad with a Hulu app, plus an Apple TV, can be used to play Hulu videos on a TV. The iPad is both the user interface and the application; the Apple TV is just a dumb device that connects the data to the TV. In a robot case, an Android tablet can double as both user interface (e.g. multitouch RIDE), plus implement its own single- and multi-robot apps by treating the robots as data sources and sinks.
This iteration is the most challenging and represents the frontier of where we could experiment.
- Pano app 4: Android phone connects to teleop control and camera data from robot, collects data, and then runs its own panorama app
Foci:
- ROS on Android
- Decentralization of control, allocation
- Communicating with multiple robots over a wifi connection