Back in the last century my University research involved finding a book in a library
(using an 8x8 pixel camera). I called it the "Steamed Glasses Problem" as virtually
everything was fuzzy. You had to trace the edge of letters to read them or trace
the edge of a book to recognize that it was a book and not the shelf.<p>These days I think that the "Library Book Problem" is a useful generalization.
I have several thousand books on 19 3x6 shelves. I would like the robot to be
able to perform various tasks, each one of which could be done in isolation.<p>0) Manipulate a book. Some are soft, some are heavy, some are fragile. Books
are generally oriented so titles read in the same direction. Some books have
titles in other languages. Sizes, colors, and fonts vary widely. Some information
is covered by bookstore stickers. Some can stand on edge, others fall. Stacks
and rows need to be stable. (Physics / Vision / Expectation Problems)<p>1) Find a book. This involves either searching or memory to find and navigate
to the current location. This is harder than it sounds based on issues like
lighting near the floor or faded lettering on the edges of older books. In
some cases I might have the book somewhere else in the house so it isn't where
the robot thinks it is (Independent Actor / World Model Problem).<p>2) Fetch a book. Beyond finding, this involves difficult tasks such as separating
an upright book from others, or removing a book from a horizontal pile on the shelf.
It also involves bending as at least half of the books are below waist level.
Removing a book can cause others to topple sideways.
(The Physics of Stability Problem, etc.)<p>3) Shelve a book. This involves a classification task of the book subject based on
some ordering such as Dewey Decimal or subject matter or other chosen semantics.
It is also difficult because it involves making space for the book by pushing
books apart or stacking the book in a pile that is stable by size. Some books
are too large to fit in the standard shelf space and need to be placed elsewhere.
(Multi-handed Manipulation Problem, Physics of Flexible Materials, etc.)<p>4) Shelve a new book. This involves knowing or learning the contents of the new
book or its Dewey Decimal or table of contents, classifying it relative to the
current collection, and inserting it in its "proper place" where I'd expect to
find it myself.<p>5) Recommend a book. Based on the library contents find "the best book" on a
given subject based on verbal stated criteria.<p>6) (humor) Defend the hoarding. Explain to people why I have so many books (/humor)<p>All of these are interesting research problems with subtle issues. For example,
if the needed book is on the bottom shelf the robot needs to bend very low.<p>Unlike a real library or a book store my home library has very limited space
making it necessary to "walk sideways" between the shelves and requiring odd
bending motions to reach lower shelves.<p>I can't wait to have access to a real robot and spend my days failing to
achieve any of these tasks. Despite that, you have to admit it is much more
interesting than playing with dishwashers :-)