Professional Documents
Culture Documents
Features
• Integrated Color CMOS Camera
1
∗ Reporting Color, CoM, Number of Pixels and Bounding box for each region
∗ Adjustable Noise / small Region ltering
On-line Griding
∗ Reduces the Resolution of the Image to 32*24
∗ Minimum Loss of Information using Object Priority
∗ Reports Color and Number of Pixels for each 5x5 Cell
Raw image output in both calibration and implementation modes
∗ Interlaced Output at 19 FPS
∗ Full Frame Output at 0.5 FPS
• Supported Hardware
• Supported Software
Roboplus (ROBOTIS )
Direct C programming (ROBOTIS )
RBC rmware
Direct C programming (RoboBuilder )
1 Introduction
HaViMo is a computer vision solution for low power microprocessors. It is equipped with a CMOS
camera chip and a microcontroller which performs the image processing. The results are then
accessed via serial port. In HaViMo2 several features such as frame rate are improved.
In addition to the region growing algorithm available in prior versions, a new algorithm is imple-
mented called Griding. The algorithm is a suitable pre-processing step for many other applications
such as object recognition and self localization.
The compatibility area of the module is also extended to more software and hardware platforms.
HaViMo2 is compatible with ROBOTIS and RoboBuilder bridges. It can also be integrated in
programs developed in Roboplus. Other platforms can also communicate with the module using
either half or full-duplex serial protocols.
2
2 Hardware Setup
The module can be used in dierent congurations according to the hardware platform it is used
in conjunction with. These are described in calibration and implementation modes.
3
• In-System Calibration in RoboBuilder Mode
The module is connected through a standard RoboBuilder bridge (RBC) to a PC. The
rmware of the bridge allows data communication between HaViMo2 and the PC. To
enter this mode the marked pins on the PCB should be jumpered prior to module start-
up.
3 Function Description
HaViMo2 is accessed on a serial bus. A communication protocol is designed for accessing the
device which works on a command/response basis. A command packet contains an instruction
which invokes a function of the device, reads or writes values or a combinations of these. In this
section the function of the device is described.
HaViMo2 supports both half and full duplex communications in physical layer. This makes the
module compatible with both ROBOTIS and RoboBuilder platforms. However to avoid conicts
4
with other members of the bus, it is also necessary to support the communication protocols of
both platforms. Following diagram shows a summary of command and response packets in both
operation modes.
CMD
RESP
Command and Response Packets in ROBOTIS Mode
CMD
RESP
Command and Response Packets in RoboBuilder Mode
Figure 3. Command and Response Packets in ROBOTIS and RoboBuilder Modes
5
a RoboBuilder conguration packet being transmitted to ID = 30 which is not existing on the bus,
so that it is ignored by the other bus members.
The command packet is structured as follows.
Header The sequence 0xFF 0xFE, which also includes the xed ID = 30
INST Instruction code described in table 1.
PAR1,PAR2 Parameters associated with the instruction. Note that The number of parameters
must always be 2
CHK Check sum is the lowest 7 bits of the exclusive or of the instruction and the parameters.
3.2 Instructions
6
READ_REG This instruction is to read the content of camera registers. It is the same as READ
instruction. This command accepts multi byte read.
WRITE_REG This instruction is to write the content of camera registers. It is the same as the
WRITE instruction but it accepts only single byte write.
CAP_REGION This instruction starts capturing and processing of the next available frame.
The processing algorithm used in this instruction is Region Growing. It takes approximately
60 ms to process a full frame. The main CPU should pole the functionality of the device using
the PING command before sending the next instruction. The results can be then accessed
using READ_REGION instruction.
RAW_SAMPLE With this instruction the camera module transmits a full frame of raw image
data. This instruction is used when the GUI receives a request to sample a raw image. This
instruction does not use the Standard packet protocol.
LUT_MANAGE After receiving this instruction, the module enters the programming mode, in
this mode the device accepts no more packets, but other instructions assigned to manage the
look-up table, such as erasing, reading and writing into it. This instruction is used by User
interface during calibration phase and should not be used in implementation phase.
RD_FILTHR, WR_FILTHR These instructions make access to the threshold values of the
noise lter. Noise lter thresholds are actually the minimum number of neighbor pixels in
a scan line which should be counted as a part of a region. For each color a separate 8-bit
threshold should be dened. Default values are 8 for unknown color and 2 for others. The
address eld contains the index of the color category (0 = unknown,. . . ). The structure of
these instructions are the same as in READ and WRITE, however multi-byte read/write is
not supported.
RD_REGTHR WR_REGTHR These instructions provide access to the threshold values of
the region lter. The region lter thresholds dene the minimum number of pixels inside a
region, regions with fewer pixels are ltered away. For each color a separate 16-bit threshold
should be dened. The address eld contains 2*index of the color category (0 = unknown,. . . ).
Default values are (0,5,50,50,50,100,50,50). No region is built for color 0 (unknown). The
structure of these instructions are the same as in READ and WRITE, however multi-byte
read/write is not supported.
CAP_GRID This instruction invokes the griding algorithm. The algorithm compresses the image
into a 32*24 cell grid and reports the number of pixels and the color observed in the 5x5 window
related to the cell. Only one color is accepted for each cell. Lower color codes dominate the
higher ones but Unknown = 0 has the lowest priority.
READ_GRID This instruction reads the results of the griding algorithm. It has a similar struc-
ture to other READ instructions but the given address is internally multiplied by 16. This
gives access to a wider range of addresses, however at least 16 bytes should be read to cover
the whole space. The data structure is described further in the data sheet.
SAMPLE_FAST This instruction is used to download a RAW image from the module. Unlike
RAW_SAMPLE instruction, the image is transferred with full baud rate, 1Mbps. Therefore
it is not possible to use the instruction with low baud rates such as in RoboBuilder mode.
7
3.3 Image Processing Algorithms
HaViMo2 is equipped with two image processing algorithms, which are described in this section.
In the rst step both algorithms translate color values to object codes using the built-in look-up
table. Therefore an exact calibration of the colors should have a great impact on the results of the
recognition.
8
To access the results, the instruction READ_REG should be used. Up to 15 regions can be
read from the address range 0x10 to 0xFF using the READ_REG (0x02) instruction. Following
example shows the produced output of the module according to a given image.
The algorithms results 768 bytes of data. These can be read using the READ_GRID instruction.
Note that the given address is internally multiplied by 16 to increase the access range. It is therefore
required that a multi-byte read operation with at least 16 bytes be used.
Following example shows the result of a the griding algorithm. Note that only the color is
visualized.