[Documentation] [TitleIndex] [WordIndex

WG Inventory System

The Willow Garage Inventory System, known as "Invent", stores as device history record (DHR) for components of the PR2 and other Willow Garage products. The inventory system is located at http://invent.willowgarage.com.

A separate, "debug", system exists at http://cmi.willowgarage.com. This system contains a mirror of the real Invent database for debugging and testing.

Invent Overview

The device history record contains data for individual parts and products used at Willow Garage.

Invent vocabulary

Serial Numbers

Invent serial numbers are of the form:


The first values, XXXX, are the part number. All Hokuyo laser scanners have the part number "3134". The second, YYYY, is the serial number of the device. Serial numbers are increasing from "0000" for each device.


Invent allows users to:

Administrators can:

Invent also has a client API, which this package provides an interface to. Users can use the client API to query and modify the Invent database.

WG Inventory Client

This package contains the client API for using the WG Inventory System. The client can be used from any computer, even outside of Willow Garage, as long as the user has the correct permissions.

Client Example

   1 from wg_invent_client import Invent
   3 # Initialize client
   4 iv = Invent(username, password)
   5 iv.login() 
   7 # Check that component is valid
   8 if not iv.check_serial_valid(serial) or not iv.check_assembled(serial):
   9     raise InvalidItemException("The item %s is not properly assembled or is invalid" % serial)
  11 # Pull all attachments
  12 attachs = iv.list_attachments(serial)
  14 # Check that we've pass qualification tests
  15 if iv.get_test_status(serial):
  16     iv.setNote(serial, "Item has finished with all testing")

Client functions will log in automatically. Calling the login() method can be useful to check a username and password.

Analyzing Test Data

Test data is analyzed using the wgtest_data_analysis package.

Device History Record (DHR) API

The following is a summary of the functions currently needed for the Device History Record API.

Below is the unfinished API for the WG inventory system.

Device History

When processing diagnostic logs, it is important to be able to recall the history of moves of every part of the robot to compute use.

  1. User can get a list of historical changes to the composition or membership of a serialized component.
    1. pseudo-code:

    2. returns a list of changes
    3. Each change is a list comprising the datetime of the change followed by a string for the type of change, either Parent or Children

This will allow a precise record of move. The goal is to process .bag files of diagnostics by MCB serial numbers, and associate them with the correct assemblies, and other components (slip rings, etc).

2024-06-15 13:49