Charles Rosenberg

Home Page

Formal Resume

Work History - Stories & Details

KeyCorp, Cleveland, OH, August 1998 - October 1998


Peerless Systems Corporation, El Segundo, CA, November 1996 - September 1998


The Rest of The Story

While working at Peerless, I was an employee of a consulting / head hunting firm, named PeopleWare. They matched me up with Peerless, because of my prior experience with printer imaging at HP.

My time at Peerless has split into two main tasks. The first was color imaging issues and the second was general imaging support.

My first main task was working on the color imaging issues on the Minolta Color PageWorks Pro color laser printer. (For the PCL implementation.) Specifically, I designed and implemented: the halftoning patterns, the undercolor removal, and the tone compensation curves. The changes I implemented, pretty much touched every bit of every page coming out of that printer. So my changes had a large effect on the general color appearance of all pages printed on that printer. However, as in any large software system, my changes and code were only a very very very small part of the code which put bits on paper and affected the overall appearance of printed pages.

The printer was released in May 1997. They were even full page ads for the printer in the Wall Street Journal. It was a big deal because it was the first in a wave of relatively cheap color laser printers, the first color laser printer which sold for under $3000.

My next task was general imaging support at the Peerless Page OS level. This included support needed for new page description languages and improved image processing algorithms.

IS Robotics, Inc., Somerville, MA, August 1996 - August 1997


The Rest of The Story

In August of 1996, I moved to Los Angeles. Because of this, I switched to half time and took on a less active role at IS Robotics. From August to the end of October I worked on various less critical path projects which helped improve the basic Venus operating system. Starting in November, I switched over to more of a stand by consulting role. Not involved in the day to day operations, but always on call if problems arise.

IS Robotics, Inc., Somerville, MA, April 1993 - July 1996

Director of Software Technology

The Rest of The Story

IS Robotics was founded by Professor Rod Brooks and his student Colin Angle. The purpose was to off load some of the hardware tasks from Rod's lab for the multi-robot experiments they were conducting and hopefully sell some systems to experimenters at other universities. Originally it was just Rod, Colin, and Jill. (Colin's then wife.) When I joined the company Helen Greiner, Joe Jones, and Peter Ning (part time) were the other engineers at the company. (There were also other people like Rajiv Desai, but I was full time employee number 5.) Colin was President. But the company was small enough that everyone worked hard in getting things out the door. Colin and Helen did mechanical and electrical engineering. Pete did electrical engineering. Joe did software. I did both software and electrical engineering.

My first task was a robot named "Kaa", after the snake in the story the Jungle Book. When I showed up at ISR, a deadline was coming up and they needed someone to work on the robot ASAP. The robot is a snake like robot, it has two arms, with six degrees of freedom each. The robot is a hyper-redundant robot, all of its degrees of freedom are in the same plane. Rajiv Desai came up with the initial concept for the robot and Colin Angle and Helen Greiner constructed the first prototype. Rod did some very basic hacking, to just try to get the robot to move. I wrote grasping code which allowed it to use force feedback information from the servos to adjust its grip dynamically. Joe Jones wrote some code, which made the robot crawl on the ground. This code was not sensor based, but just put the joints through a fixed sequence of motions to test out the concept.

My second task was working with Lynne Parker, a PhD student of Rod's at MIT. She was using three IS Robotics R2E robots for her experiments in multi-agent systems. My task was to get the radio communications and position system originally designed for the R1 robots (totally different processors) to work with the R2E. It basically involved a major re-write of all the software related to this part of the system. The system utilized a Proxim radio modem on each robot and a base station which also contained a proxim radio modem and some 6811 processors. The base station coordinated the communications between the robots and a host computer. Because the system only operated on a single frequency, a time sliced communications protocol was implemented. The base station always co-ordinated the transmission of sonar pings which were received on each robot and, in conjunction, with a simultaneous radio packet transmission could be used to measure distance to the sonar pingers and allowed each robot to triangulate its position. Peter Ning also worked with me getting the hardware going here.

There's a whole lot more to be said here, I hope to add it later....

Hewlett-Packard Laboratories, Palo Alto, CA, January 1994


The Rest of The Story

After I left HP, I was contacted by former manager (Jeanne Wiseman) to see if I would be interested in helping them to develop course materials for an internal course on halftoning technology. I agreed and worked with people at HP to develop the course materials.

Hewlett-Packard Laboratories, Palo Alto, CA, September 1990 - September 1993

Member of Technical Staff

MIT AI Laboratory, Cambridge, MA, February 1990 - September 1990

Research Assistant

The Rest of The Story

After my internship at HP, I needed support while I finished my Master's Thesis. I was supposed to be a TA for 6.004 (Digital Systems), but that fell through. I scrambled and begged a bit and Rod agreed to me being an RA. He agreed, mostly because I had taken is Mobile Robotics class and built a cool robot that actually worked (it squirted people with a water gun), Hoser.

I worked for Rod in the Spring and Summer of 1990. At the same time I was finishing my Master's Thesis on image compression with Walter Bender at the Media Lab.

At this time, the big project at Rod's Lab was Colin Angle's Master's thesis, Attila. Attila was a six legged robot, the successor to Genghis. Attila was significantly more complex than Genghis with three degrees of freedom on each leg, a pan/tilt head, on board vision, and a lot of processors - including a central processor and a separate processor on each leg all connected together by an on-board network. I worked on a number of hardware projects related to Attila with Cynthia Ferrell. At this point she was a new graduate student in Rod's lab and was thrown into the thick of electronic design, something completely new to her. She quickly picked up the essentials and we worked on designing and laying out the hardware for the Attila's leg controller boards. There were two PC boards on each leg. One was the processor board and the other was the analog front end for the sensors on the leg, including the three axes of strain gauges. The boards were completely surface mount (except for the processors which were 87C51 variants in ceramic DIPs with a window) because, like all the robots in Rod's lab, it was relatively small, about 18" long and 24" wide. One of the cool things I added to the strain gauge processing was an analog peak detector - the idea was that the system could tap its leg on an object and figure something out about its hardness that way. It was a real push to get the pc boards out on time, but we finally did. When the boards came back there were some problems, but the core functionality worked. Because the rest of the electronics and mechanics were still coming up, I left before the boards were actually used to make Attila walk.

I also worked on a black and white display board for Attila. The board was a 256 x 256 x 8 bit per pixel frame buffer which could generate a standard composite (RS-170) video signal. It used dual ported ram so both the video circuitry and the processor could access the video data without contention. I built a working prototype, but left before a pc board was designed.

Hewlett-Packard Laboratories, Palo Alto, CA, June 1989 - January 1990


The Rest of The Story

I worked an intern at HP as part of the 6A program at MIT. This was a five year combined Bachelor's and Master's program. I also worked for two summers previous to this time period. The work I did during this period at HP was my Master's Thesis. It was supervised by Walter Bender from the Media Lab and my manager, Jeanne Wiseman, at HP Labs. My thesis focused on a lossy image compression algorithm which was asymmetrical in compression and decompression time. It took longer to compress to decompress. It was meant to be used for an image archive application with small (low computational power computers) as the browsers. The algorithm non-uniformly sampled the image and made a simple approximation to the image intensity surface, while maintaining a certain bounded error in the reconstructed image. Two papers were published and a patent was granted for this work. A brief description of this work is here.

Also, during this time I worked on a number of bitmap font compression algorithms. One of them was specifically designed for Kanji fonts. Kanji fonts are a particularly hard problem because of the large number of characters in the character set and the complexity of the characters themselves. Standard algorithms which removed white space and efficiently encoded long horizontal or vertical lines did not work well on this type of data. The algorithm designed segmented the character into blocks and used the context of the surrounding blocks to predict the most likely block for the next location. One paper was published and a patent was granted for this work.

DOK, Hewlett, NY, March 1985 - September 1996


The Rest of The Story

This project started during my senior year of high school. First some background. At the time, the Apple 2 series of computers was very popular. Pirates and software vendors were in an escalating war of copy protection schemes, disk copying programs and cracking schemes. Many of these schemes took advantage of the flexibility of the floppy disk controller card hardware. To make the Apple 2 floppy system cheap, a lot of the decoding of the bit stream from sectors was done in software. What this meant is that it was possible to come up with a disk format which was incompatible with the standard Apple 2 DOS floppy disk format. This made it impossible to copy disks using the standard DOS copy software.

So a bunch of people wrote copy programs which were more generic than the standard DOS copy and could copy these disks, for example Locksmith, Copy II Plus, and EDD. They treated the disk as a series of bytes and didn't rely on as much of the underlying structure. How did they get away with selling these programs? These programs were sold as a means of a genuine user making archival copies of their software. Of course, these programs themselves were pirated and used to distribute and copy pirated software.

Of course once certain protection schemes were defeated, a new protection scheme was invented. The one which I decided to attack was one which took advantage of how the disk hardware worked. One of the main tasks of the floppy disk controller card was chopping the bit stream from the disk drive up into bytes. The way this was done was that every byte had to start with a one bit, the hardware threw away all leading zero bits. By writing a particular sequence of bits to the disk, you could always guarantee that the controller would sync up. Well, certain protection schemes were written which would write out extra zero bits when writing bytes to disk. This software would then time how long it took the disk controller to decode a byte and detect the presence of these bits. The problem for copy programs was that the hardware removed those bits before they could see them. A protected disk knew where the "magic" bytes were and therefore could check those bytes multiple times and average the time to read them over multiple tries. Copy programs could try to do the same thing, but they didn't have the luxury of knowing where these bits were.

My idea was to implement an auxiliary disk drive controller. This controller would intercept the data stream before it reached the drive controller and pass the raw bitstream onto the computer. So I implemented hardware to do exactly this. The card ended up being a simple set of 8 TTL chips with a pass through connector. The floppy disk drive would plug into this card and a secondary cable would run over to the regular controller card.

Once I had a functioning prototype I tried to convince the makers of the current copy programs to modify their software to be able to read data from my card. After a couple of months, I was able to convince Don Schnapp, the author of EDD (Essential Data Duplicator) to offer a special version of his software packaged with my card. I had the cards manufactured, and shipped them to Don, and he modified his software and dealt with all of the customer issues. He also continued to sell the version of his program without the card.

All, in all the card was reasonably successful and provided me with some income during my years at college. Because the Apple 2 market is pretty much dead now (it mostly only lives on in emulation) and therefore there were no more sales, Don and I decided to stop selling the system.

E-mail: chuck+@cs.cmu.edu -- First Edition: 9/09/97 -- Last Update: 7/24/00