jonh : robots : position-encoding : bwtiles

Absolute position-encoding with two-level pixels

One of our future-work items was to encode floor patterns in only two shades of grey, to make it more robust and easier to output. The diagram below gives the pattern I came up with to solve this problem. (It's pretty simple, given how long it took to stumble across it. :v)

Here are the key ideas:

  • The n*n red border marks the boundary of one repeating super-cell.
  • The strip of black bits across the top and left are a control channel to identify the boundaries of supercells.
  • The diagonal strip of white bits ensures that no other bit pattern will result in the accidental formation of an n-bit long sequence of black bits that could be mistaken for the black boundary control channel.
  • The black bit at upper right and the white bit at lower right serve to disambiguate the four rotational symmetries of the pattern. Once we find the black control channels, the four control bits at the corners will always be one black and three white.
  • The remaining spaces can be filled with data bits. In this example, the 6x6 grid provides space for an 18-bit data channel, which can address a 512x512-supercell grid. The formula for data bits in an n*n supercell is:
    Supercell widthData bits (both channels)
    nn2-3n
    44
    510
    618
    728
    840