Dreamsongs Wiki


VegetableSorterApplication

This is one of my ideas for an ApplicationExperience.

Travis Griggs develops software to run high-speed vegetable

sorters. For a while, his signature was "Lord of the frys"

because he was building french-fry sorting machines that were

sold to potato processing plants that supplied companies like

McDonald's. But the machines his company builds sort all kinds of material, from green beans and peas to peaches and aquarium gravel.

The computer system is a pipeline. TV cameras take pictures

of the vegetables as they come down the conveyor belts at

50 miles an hour. The images are pushed through some custom

image processing hardware to convert the image into a set of

labeled regions. For green beans, the labels might be "bean",

"black spot on bean", and "string". The regions are used

by a planner that decides that it should reject a bean

because of a black spot, or to cut off a string.

Bad parts are cut off on the conveyor belt.

The vegetables are sorted (good beans go here, bad beans and strings go there) by hitting

them with a jet of air while they are flying from one

conveyor belt to another. There is a four-part pipeline

consisting of cameras, image processing, planner, and

actuators (knives and air jets).

All this is interesting, but it is not very object-oriented.

The object-oriented layer sits above the processing pipe-line and controls it. I don't know all the functions of the

top layer, but some of them are feedback, UI, and setup.

When a french-fry producer makes a contract with McDonald's,

they agree to provide frys that are close to a certain length

and with no more than a small percent of bad spots. The factory

will sample the output of a processing line to make sure that

they are fulfilling the contract. If they are not, they

adjust the machinery. "Adjust the machinery" means that

they modify the programs in the processing pipeline.

A lot of this is done automatically. The top layer can

adjust the parameters of the processing pipeline to reject

more fries or to make them a little longer. But also the

top layer provides several views of the factory so that operators

can decide to make adjustments that are too complicated to

figure out automatically. For example, they can decide to

tune the colors that define ripeness (for peaches) or bad spots

(for fries).

The UI is hard to build because many of the factory workers

do not read English. The agriculture industry in the US relies

on Mexican emigrants, and many of them end up working in the

food processing plants. So, the UI for the factory control

system ends up looking more like a videogame than a business

application.

It is common to reconfigure a factory. They don't get a

new machine very often, but machines break all the time, and

have to be turned off until they are repaired. Sometimes

half the factory is used to supply one contract, and half another. Sometimes part of the factory is processing the

big potatoes from Farmer Jones while the other part is processing

the smaller potatoes of Farmer Smith. Sensors have to be

calibrated. Each of these requires changing the pipeline.

This is usually not done by changing the programs in the

various processing units, though it can be. Instead, it is

done by changing parameters. However, from the point of view

of the top level of the system, all reconfigurations require

changing the model of the factory and then sending commands

to the pipeline to match its internal model.

My idea of a presentation would be to start by showing videos

of the equipment in action, including the factories. Then to talk about the business environment and the group that builds

the equipment, then describing the architecture (the various

processors involved and how they are interconnected) and

finishing up with the design of the object-oriented part,

some of the tricks that they used, and how object-oriented

programming helped them. Travis has lots of things he wants

to do but hasn't done, perhaps he could talk about a few of

them.

Travis is an excellent speaker one-on-one, but probably

doesn't have any experience speaking to a large group.

He wrote one of the better DesignFest problems and has been

involved in DesignFest a number of times, but otherwise hasn't

been involved in organizing OOPSLA. But he has been coming

for a long time.

What do you think? Do you think this would be an interesting talk? I don't think it could be done in a 20 minute slot.

I'm thinking that it would take 45 minutes.

-RalphJohnson


this is also why, following the JAOO/SPA model, some or many of these sessions should be invited, rather than refereed. But let me be clear: I really like this idea, this kind of paper or presentation, I think it would be popular, and that it could work in well alongside say an IntriguingTechnologies (or EmergingTechnologies) stream that also was more practicioner focursed.

Put the "technical papers" of in a small room, list them at the back of the brochure if you must (academics will come anyway) but let's put the spolight on this kind of thing!

-- JamesNoble