определение-вычисление позиций
Классы МПК: | G06K1/12 маркировка иным способом, чем перфорирование |
Автор(ы): | ПЕТТЕРССОН Матс Петтер (SE), ЭДСЕ Томас (SE) |
Патентообладатель(и): | Аното АйПи Лик ЭйчБи (SE) |
Приоритеты: |
подача заявки:
2000-10-02 публикация патента:
27.09.2005 |
Изобретение относится к маркировке. Его использование позволяет обеспечить возможность кодировать большое количество позиций. В способе выбирают циклический числовой ряд с той особенностью, что позиция в числовом ряду каждой числовой последовательности заранее заданной длины определяется однозначно, печатают на поверхности множество меток в соответствии с множеством экземпляров циклического числового ряда, экземпляры которого имеют различные значения циклического сдвига, и при этом печать меток выполняют с заранее заданными смещениями между смежными экземплярами. Результат достигается благодаря тому, что этап печати содержит деление поверхности в заданном направлении на множество кодовых окон, каждое из которых содержит хотя бы три экземпляра циклического числового ряда, один из которых в каждом кодовом окне является общим для смежных кодовых окон, и метки печатают так, что позиция каждого кодового окна в заданном направлении кодируется посредством смещений между экземплярами циклического числового ряда, принадлежащих к кодовому окну. 7 н. и 41 з.п. ф-лы, 6 ил.
Формула изобретения
1. Способ обеспечения кода позиции на поверхности, при этом код позиции кодирует множество позиций в первом направлении на поверхности, содержащий этапы: выбирают первый циклический числовой ряд, который имеет такую особенность, что позиция в числовом ряду каждой числовой последовательности первой заранее заданной длины определяется однозначно, печатают на поверхности множество меток в соответствии с множеством экземпляров первого циклического числового ряда, причем экземпляры первого циклического числового ряда имеют различные значения циклического сдвига, при этом печать меток выполняют так, чтобы между смежными экземплярами возникли заранее заданные смещения, отличающийся тем, что этап печати содержит деление поверхности на множество первых кодовых окон в первом направлении, каждое из которых содержит, по меньшей мере, три экземпляра первого циклического числового ряда, один из которых в каждом из множества первых кодовых окон является общим для смежных первых кодовых окон, и метки печатают таким образом, что позиция каждого первого кодового окна в первом направлении кодируется посредством смещений между экземплярами первого циклического числового ряда, принадлежащими к кодовому окну.
2. Способ по п. 1, в котором циклические сдвиги циклического числового ряда являются такими, что, по меньшей мере, некоторые из смещений больше единицы.
3. Способ по п. 1, дополнительно содержащий этап, на котором задают такие значения циклических сдвигов для экземпляров первого циклического числового ряда, что смещения каждого кодового окна задают номер позиции в основании смешанной системы счисления, который дает позицию кодового окна в первом направлении, и указывают в номере позиции наименьшее значащее смещение.
4. Способ по п. 3, в котором этап указания наименьшего значащего смещения в номере позиции содержит задание таких значений циклических сдвигов экземпляров первого циклического числового ряда, что наименьшее значащее смещение меньше других смещений.
5. Способ по п. 3, в котором этап указания наименьшего значащего смещения в номере позиции содержит задание таких значений циклических сдвигов экземпляров первого циклического числового ряда, что наименьшее значащее смещение находится в пределах первого диапазона размеров, а другие значения смещения находятся в пределах второго диапазона размеров.
6. Способ по п. 1, содержащий этап создания различных вариантов кода позиции, для чего первый экземпляр первого циклического числового ряда в первом направлении начинается в различных позициях для различных вариантов.
7. Способ по п. 1, в котором код позиции также кодирует множество позиций во втором направлении на поверхности; способ содержит этапы: выбирают второй циклический числовой ряд, который имеет такую особенность, что позиция в числовом ряду каждой числовой последовательности второй заданной длины определяется однозначно, печатают на поверхности множество меток в соответствии с множеством экземпляров второго циклического числового ряда, причем экземпляры второго циклического числового ряда имеют различные значения циклического сдвига и начинаются в различных начальных позициях, причем этап печати содержит деление поверхности на множество не перекрывающихся вторых кодовых окон, каждое из которых содержит заданное множество экземпляров второго циклического числового ряда, и печатают упомянутые метки так, чтобы позиция каждого второго кодового окна во втором направлении кодировалась посредством начальных позиций ассоциированных экземпляров второго циклического числового ряда.
8. Способ по п. 7, дополнительно содержащий этапы задания таких значений циклических сдвигов экземпляров второго циклического числового ряда, что начальная позиция каждого второго кодового окна образует номер позиции в основании смешанной системы счисления, который дает позицию второго кодового окна во втором направлении, и указания наименьшей значащей начальной позиции в номере позиции.
9. Способ по п. 8, в котором этап указания наименьшей значащей начальной позиции в номере позиции содержит задание таких значений циклических сдвигов экземпляров второго циклического числового ряда, что наименьшая значащая начальная позиция меньше других начальных позиций.
10. Способ по п. 8, в котором этап указания наименьшей значащей начальной позиции в номере позиции содержит задание таких значений циклических сдвигов экземпляров второго циклического числового ряда, что наименьшая значащая начальная позиция находится в пределах первого диапазона размеров, а другие начальные позиции находятся в пределах второго диапазона размеров.
11. Способ по п. 7, в котором второй циклический числовой ряд идентичен первому циклическому числовому ряду.
12. Способ по п. 1, в котором первый циклический числовой ряд является двоичным числовым рядом.
13. Способ по п. 7, в котором метки в соответствии с экземплярами первого циклического числового ряда печатаются столбцами на поверхности, а метки в соответствии с экземплярами второго циклического числового ряда печатается строками на поверхности.
14. Способ по п. 7, в котором печать меток в соответствии с экземплярами первого и второго циклических числовых рядов выполняется так, что каждому пересечению растровых линий в виртуальном растре, который покрывает поверхность, присваивается число из первой циклической числовой последовательности и число из второй циклической числовой последовательности, и числа, принадлежащие каждому пересечению, кодируются графически меткой на поверхности, ассоциированной с пересечением растровых линий.
15. Способ по п. 14, в котором различные возможные комбинации чисел из первого и второго циклических числовых рядов кодируются различными местоположениями метки относительно точки пересечения растровых линий.
16. Компьютерный программный продукт, считываемый компьютером, который содержит компьютерную программу с командами, которые позволяют компьютеру осуществлять способ по любому из пп. 1-15.
17. Способ обеспечения кода позиции на поверхности, который кодирует множество позиций вдоль направления на поверхности, содержащий этапы: выбирают циклический числовой ряд, который имеет особенность, что позиция в этом числовом ряду каждой числовой последовательности заранее заданной длины определяется однозначно, печатают на поверхности множество меток в соответствии с множеством экземпляров циклического числового ряда, причем различные экземпляры циклического числового ряда имеют различные значения циклического сдвига так, что экземпляры циклического числового ряда начинаются в различных начальных позициях, причем этап печати содержит деление поверхности на множество не перекрывающихся кодовых окон, каждое из которых содержит заданное множество экземпляров циклического числового ряда, и печатают метки таким образом, что позиция каждого кодового окна в упомянутом направлении кодируется посредством начальных позиций соответствующих им экземпляров упомянутого циклического числового ряда.
18. Способ по п. 17, дополнительно содержащий этапы задания таких значений циклических сдвигов экземпляров циклического числового ряда, что начальная позиция каждого кодового окна образует номер позиции в основании смешанной системы счисления, который дает позицию кодового окна в упомянутом направлении, и указания наименьшей значащей начальной позиции в номере позиции.
19. Способ по п. 18, в котором этап указания наименьшей значащей позиции в номере позиции содержит задание таких значений циклических сдвигов экземпляров циклического числового ряда, что наименьшая начальная позиция меньше других начальных позиций.
20. Способ по п. 18, в котором этап указания наименьшей значащей позиции в номере позиции содержит задание таких значений циклических сдвигов экземпляров циклического числового ряда, что наименьшая начальная позиция находится в пределах первого диапазона размеров, а другие начальные позиции находятся в пределах второго диапазона размеров.
21. Способ определения позиции в первом направлении произвольной частичной поверхности заданного размера на поверхности, которая снабжается кодом позиции, который для кодирования позиции в первом направлении основан на первом циклическом числовом ряду, который имеет такую особенность, что позиция в числовом ряду каждой первой числовой последовательности первой заранее заданной длины определяется однозначно, и множество меток, соответствующих множеству экземпляров которого, печатается на поверхности с различными значениями циклического сдвига так, что смежные экземпляры первого циклического числового ряда смещаются друг относительно друга на заранее заданные смещения, содержащий этапы: идентифицируют множество первых числовых последовательностей из кода позиции на частичной поверхности, определяют позицию каждой первой числовой последовательности в первом циклическом числовом ряду, на основе этих позиций определяют смещения между смежными первыми циклическими числовыми рядами, содержащими первые числовые последовательности с частичной поверхности, при этом имеется этап, на котором определяют на основе этих смещений позиции в первом направлении первого кодового окна, которое упомянутая частичная поверхность перекрывает, по меньшей мере, частично, причем первое кодовое окно является одним из множества кодовых окон в первом направлении, каждое из которых содержит заданное множество экземпляров первого циклического числового ряда и каждое из которых имеет один экземпляр первого циклического числового ряда, общий со смежным первым кодовым окном.
22. Способ по п. 21, в котором этап определения упомянутой позиции первого кодового окна содержит определение того, какие из смещений соответствуют наименьшей значащей цифре в номере позиции в основании смешанной системы счисления, которая дает позицию первого кодового окна в первом направлении.
23. Способ по п. 21, в котором смещение, которое соответствует наименьшей значащей цифре в номере позиции, определяется как наименьшее из смещений.
24. Способ по п. 21, в котором смещение, которое соответствует наименьшей значащей цифре в номере позиции, определяется как смещение, которое находится в первом диапазоне размеров.
25. Способ по п. 21, дополнительно содержащий этап определения первой координаты, которая дает позицию частичной поверхности в первом направлении на основе упомянутого номера позиции, который дает позицию первого кодового окна в первом направлении, и на основе того, какое из смещений соответствует наименьшей значащей цифре в номере позиции.
26. Способ по п. 21, дополнительно содержащий этап определения позиции упомянутой частичной поверхности во втором направлении на поверхности, причем шаблон кодирования позиции для кодирования во втором направлении, кроме того, основан на втором циклическом числовом ряду, который имеет такую особенность, что позиция в числовом ряду каждой второй числовой последовательности второй заранее заданной длины определяется однозначно, и множество меток, соответствующих множеству экземпляров которого, печатаются на поверхности с различными значениями циклического сдвига так, что смежные вторые циклические числовые ряды начинаются в различных начальных позициях, содержащий этапы: идентифицируют множество вторых числовых последовательностей из кода позиции на частичной поверхности, определяют позицию каждой второй числовой последовательности во втором циклическом числовом ряду, вычисляют начальные позиции каждого экземпляра второго циклического числового ряда, содержащего вторую числовую последовательность на частичной поверхности, на основе позиции частичной поверхности в первом направлении, и определяют из упомянутых начальных позиций позицию во втором направлении второго кодового окна, которое частичная поверхность перекрывает, по меньшей мере, частично, причем второе кодовое окно является одним из множества не перекрывающихся кодовых окон во втором направлении, каждое из которых содержит заранее заданное множество экземпляров второго циклического числового ряда.
27. Способ по п. 26, в котором этап определения позиции второго кодового окна во втором направлении содержит определение того, какая из начальных позиций соответствует наименьшей значащей цифре в номере позиции в основании смешанной системы счисления, которая дает позицию второго кодового окна во втором направлении.
28. Способ по п. 27, в котором начальная позиция, которая соответствует наименьшей значащей цифре в номере позиции для второго кодового окна, определяется как наименьшая значащая начальная позиция.
29. Способ по п. 27, в котором начальная позиция, которая соответствует наименьшей значащей цифре в номере позиции, определяется как начальная позиция, которая находится в первом диапазоне размеров.
30. Способ по п. 23, дополнительно содержащий этап определения второй координаты, которая дает позицию частичной поверхности во втором направлении на основе упомянутого номера позиции, который дает позицию второго кодового окна во втором направлении, и на основе того, какая из начальных позиций соответствует наименьшей значащей цифре в номере позиции.
31. Способ по п. 27, дополнительно содержащий этап определения третьей координаты для позиции частичной поверхности на поверхности посредством вычисления с использованием второй координаты того, в какой позиции начинается первый циклический числовой ряд в первом направлении.
32. Способ по п. 23, в котором код позиции содержит виртуальный растр, который располагается на поверхности, в котором каждому пересечению между растровыми линиями в упомянутом растре присваивается число из первого циклического числового ряда и число из второго циклического числового ряда, эти числа кодируются графической меткой, в котором этапы идентификации множества первых числовых последовательностей и идентификации множества вторых числовых последовательностей содержат декодирование меток, которые найдены на упомянутой частичной поверхности, и отделение полученных таким образом чисел в упомянутом множестве первых числовых последовательностей и в упомянутом множестве вторых числовых последовательностей.
33. Компьютерный программный продукт, считываемый компьютером, содержащий компьютерную программу с командами, которые позволяют компьютеру осуществлять способ по любому из пп. 21-32.
34. Устройство для определения позиций, содержащее датчик (14) для формирования изображения частичной поверхности, которая снабжается кодом позиции, и средство (16) обработки изображения, которое скомпоновано таким образом, чтобы на основе подмножества кодов позиции, которое должно быть найдено в изображении частичной поверхности, вычислять позицию частичной поверхности согласно способу по любому из пп. 21-32.
35. Устройство по п. 34, которое является портативным.
36. Устройство по п. 35, в котором устройство имеет средство (19) для беспроводной передачи информации о позициях.
37. Изделие, которое дает возможность определять позиции в первом направлении произвольной частичной поверхности заданного размера на поверхности изделия, которое снабжается кодом позиции, причем кодирование позиции в первом направлении основано на первом циклическом числовом ряду, имеющем такую особенность, что позиция в числовом ряду каждой первой числовой последовательности первой заданной длины определяется однозначно, и множество экземпляров которого печатаются на поверхности посредством печати меток, кодирующих числа упомянутого первого циклического числового ряда, с различными значениями циклического сдвига так, чтобы смежные экземпляры первого циклического числового ряда смещались относительно друг друга на заданные смещения, причем множество первых числовых последовательностей из кода позиции могут быть идентифицированы на частичной поверхности для того, чтобы определить позицию каждой первой числовой последовательности в экземпляре первого циклического числового ряда, а смещения между смежными экземплярами первого циклического числового ряда, содержащими первые числовые последовательности из частичной поверхности, определяются на основе этих позиций, отличающееся тем, что на основе смещений определяется позиция в первом направлении первого кодового окна, которое, по меньшей мере, частично, перекрывает упомянутая частичная поверхность, причем первое кодовое окно является одним из множества кодовых окон в первом направлении, каждое из которых содержит заданное множество экземпляров первого циклического числового ряда и каждое из которых имеет один экземпляр первого циклического числового ряда, общий со смежными первыми кодовыми окнами.
38. Изделие по п. 37, в котором для определения упомянутой позиции первого кодового окна определяется, какие из смещений соответствуют наименьшей значащей цифре в номере позиции в основании смешанной системы счисления, которая дает позицию первого кодового окна в первом направлении.
39. Изделие по п. 38, в котором смещение, которое соответствует наименьшей значащей цифре в номере позиции, определяется как наименьшее из смещений.
40. Изделие по п. 38, в котором смещение, которое соответствует наименьшей значащей цифре в номере позиции, представляет собой смещение, которое находится в первом диапазоне размеров.
41. Изделие по п. 37, в котором первая координата задает позицию частичной поверхности в первом направлении на основе упомянутого номера позиции, который дает позицию первого кодового окна в первом направлении на основе того, какое из смещений соответствует наименьшей значащей цифре в номере позиции.
42. Изделие по п. 37, дополнительно содержащее позицию упомянутой частичной поверхности во втором направлении на поверхности, причем шаблон кодирования позиции для кодирования во втором направлении, кроме того, основан на втором циклическом числовом ряду, который имеет такую особенность, что позиция в числовом ряду каждой второй числовой последовательности второй заранее заданной длины определяется однозначно, и множество меток, соответствующих множеству экземпляров которого, печатаются на поверхности с различными значениями циклического сдвига так, что экземпляры второго циклического числового ряда начинаются в различных начальных позициях, причем экземпляры второго циклического числового ряда из кода позиции на частичной поверхности могут быть идентифицированы посредством определения позиции каждой второй числовой последовательности во втором циклическом числовом ряду, вычисления - на основе позиции частичной поверхности в первом направлении - начальных позиций каждого из экземпляров второго циклического числового ряда, содержащих вторые числовые последовательности на частичной поверхности, и определения из начальных позиций позиции во втором направлении второго кодового окна, которое частичная поверхность перекрывает, по меньшей мере, частично, причем второе кодовое окно является одним из множества не перекрывающихся кодовых окон во втором направлении, каждое из которых содержит заранее заданное множество экземпляров второго циклического числового ряда.
43. Изделие по п. 42, в котором позиция второго кодового окна во втором направлении определяется тем, какие из начальных позиций соответствуют наименьшей значащей цифре в номере позиции в основании смешанной системы счисления, которая дает позицию второго кодового окна во втором направлении.
44. Изделие по п. 43, в котором начальная позиция, которая соответствует наименьшей значащей цифре в номере позиции второго кодового окна, определяется как наименьшая значащая начальная позиция.
45. Изделие по п. 43, в котором начальная позиция, которая соответствует наименьшей значащей цифре в номере позиции, определяется как начальная позиция, которая находится в первом диапазоне размеров.
46. Изделие по п. 42, в котором определяется вторая координата, которая дает позицию частичной поверхности во втором направлении на основе упомянутого номера позиции, который дает позицию второго кодового окна во втором направлении на основе того, какая из начальных позиций соответствует наименьшей значащей цифре в номере позиции.
47. Изделие по п. 46, дополнительно содержащее третью координату, которая определяется для позиции частичной поверхности на поверхности с использованием второй координаты, посредством вычисления того, в какой позиции начинается экземпляр первого циклического числового ряда в первом направлении.
48. Изделие по п. 39, в котором код позиции содержит виртуальный растр, который располагается на поверхности, причем каждому пересечению между растровыми линиями в упомянутом растре присваивается число из первого циклического числового ряда и число из второго циклического числового ряда, и эти числа кодируются графической меткой, причем упомянутое множество первых числовых последовательностей и упомянутое множество вторых числовых последовательностей компонуются таким образом, чтобы их можно было идентифицировать посредством декодирования меток, которые найдены в пределах упомянутой частичной поверхности, и отделения полученных таким образом чисел в упомянутом множестве первых числовых последовательностей и в упомянутом множестве вторых числовых последовательностей.
Описание изобретения к патенту
Область техники
Настоящее изобретение относится к способу обеспечения кода позиции согласно преамбуле к п.1 формулы изобретения. Изобретение также имеет отношение к способу вычисления позиции согласно преамбуле к п.18 формулы изобретения. Изобретение также имеет отношение к программным компьютерным продуктам, к устройству для определения позиции и к изделию с кодом позиции.
Предшествующий уровень техники
Во многих ситуациях желательно иметь возможность определять абсолютную позицию на поверхности. Один из примеров имеет отношение к цифровому кодированию чертежей. Другой пример имеет отношение к случаю, когда требуется электронная версия рукописной информации.
Патент США 5852434 описывает устройство для определения абсолютной позиции. Устройство содержит поверхность записи, которая снабжается шаблоном кодирования позиции, посредством которой могут определяется Х-Y-координаты, детектором, который может определять шаблон кодирования позиции, и процессором, который на основе определенного шаблона кодирования позиции может определять позицию детектора относительно поверхности записи. Устройство позволяет пользователю вводить рукописную и начерченную рукой информацию в компьютер в то же самое время, когда информация записывается/чертится на поверхности записи.
Три примера кодирования позиции даются в патенте США 5852434. Первый пример представляет символы, каждый из которых строится из трех концентрических окружностей. Внешняя окружность представляет Х-координату, а средняя окружность представляет Y-координату. Обе внешних окружности дополнительно разделены на 16 частей, которые в зависимости от того, закрашены они или нет, показывают различные числа. Это означает, что каждая пара координат X, Y кодируется сложным символом с конкретным видом.
Во втором примере координаты каждой точки на поверхности записи задаются штрих-кодами, причем штрих-код для Х-координаты изображается над штрих-кодом для Y-координаты.
В качестве третьего примера дается шаблон в виде клеток, который может использоваться для кодирования Х- и Y-координат. Однако нет объяснения относительно того, как строится шаблон в виде клеток или как он может быть преобразован в координаты.
Проблема в связи с известным шаблоном состоит в том, что он строится из сложных символов и чем меньшими делаются эти символы, тем труднее производить поверхность записи с шаблонами и тем больше риск неправильного определения позиций, в то время как чем большими делаются символы, тем хуже становится разрешение позиции.
Еще одна проблема состоит в том, что обработка определенного шаблона кодирования позиции становится слишком сложной вследствие того факта, что процессор должен интерпретировать сложные символы.
Дополнительная проблема состоит в том, что детектор должен конструироваться таким образом, чтобы он регистрировал четыре символа одновременно так, чтобы он наверняка охватил полностью, по меньшей мере, один символ, что необходимо для возможности проведения определения позиции. Таким образом, отношение между требуемой поверхностью датчика и поверхностью шаблона кодирования позиции, которая задает позицию, велико.
Приложение А к патенту WO 92/17859 дает следующий пример того, как можно сформировать шаблон и как можно декодировать позицию.
Возьмем следующие m-последовательности: s=(0,0,1,0,1,1,1) и t=(0,1,1). Сформируем шаблон кодирования позиции, приравнивая первый столбец в шаблоне к последовательности s. Чтобы сформировать следующие столбцы, посмотрим на t-последовательность. Если первый элемент в t-последовательности равен 0, тогда второй столбец состоит из s-последовательности. Если первый элемент вместо 0 равен 1, тогда второй столбец состоит из s-последовательности, циклически сдвинутой на один шаг. Последующие столбцы строятся соответствующим способом в соответствии со значениями элементов в t-последовательности. Тогда получается следующий шаблон:
0 0 1 1
0 0 0 1
1 1 0 0
0 0 1 0
1 1 0 1
1 1 1 0
1 1 1 1
Теперь предположим, что требуется найти позицию частичной поверхности с подмножеством шаблона, показанным ниже.
1 0 0
0 1 0
1 0 1
Первый столбец в подмножестве представляет собой (1,0,1). Эта подпоследовательность появляется в позиции 2 в s-последовательности. Циклические сдвиги в подмножестве составляют (1,1). Эта подпоследовательность появляется в позиции 1 в t-последовательности. Накопленные сдвиги в шаблоне составляют (0,0,1,2), и, следовательно, вертикальная позиция подмножества представляет собой 2+0=2. Таким образом, позиция подмножества на частичной поверхности будет (1,2).
При таком шаблоне избегают вышеупомянутых проблем со сложными символами, а соотношение между требуемой поверхностью датчика и поверхностью с шаблоном кодирования позиции, который задает положение, снижается.
Однако интересная особенность шаблона кодирования позиции такого типа состоит в способности кодировать большой шаблон со многими уникальными позициями так, чтобы определение позиций могло быть выполнено на возможно большей поверхности. В вышеописанном примере ее размер в вертикальном направлении ограничен длиной s-последовательности, а размер в горизонтальном направлении - длиной t-последовательности. Однако длина этих последовательностей не может увеличиваться беспредельно, поскольку последовательности должны иметь такую особенность, что, если берется подпоследовательность из k бит, то эта подпоследовательность должна встречаться в последовательности только в одной позиции. Таким образом, увеличение длины последовательности может подразумевать увеличение длины подпоследовательности и, в связи с этим, увеличение частичной поверхности, которая должна регистрироваться, для того, чтобы иметь способность определить позицию.
Сущность изобретения
Задача настоящего изобретения заключается в том, чтобы показать, как можно обеспечить код позиции, который обеспечивает возможность кодирования большого количества позиций.
Данная задача решается полностью или частично способом по п.1 формулы изобретения, способом по п.8 формулы изобретения, а также компьютерным программным продуктом по п.17 формулы изобретения.
Согласно первому аспекту изобретение более конкретно затрагивает способ обеспечения кода позиции на поверхности, кода позиции, который кодирует множество позиций в первом направлении на поверхности, способ, содержащий шаги: использование первого циклического числового ряда, который имеет такую особенность, что позиция в числовом ряду каждой числовой последовательности первой заданной длины определяется однозначно; печать первого циклического числового ряда многократно на поверхности, причем различные вращения первого циклического числового ряда используются так, чтобы между смежными числовыми рядами возникли заданные смещения.
Способ отличается тем, что шаг печати содержит деление поверхности на множество первых кодовых окон в первом направлении, каждое из которых содержит, по меньшей мере, три первых циклических числовых ряда и имеет один числовой ряд, перекрывающий один числовой ряд смежных первых кодовых окон, а также использование таких вращений первого циклического числового ряда при печати, при которых позиция каждого первого кодового окна в первом направлении кодируется посредством смещений между первым циклическим числовым рядом, принадлежащим к кодовому окну.
Способ отличается от известных тем, что код позиции делится на множество кодовых окон, соответствующая позиция которых кодируется величиной смещения между циклическими числовыми рядами, которые принадлежат к кодовому окну. Кодовые окна располагаются так, что никакое смещение не принадлежит больше чем одному кодовому окну. Таким образом, кодирование в первом направлении больше не основано на смещениях, которые следуют за циклическим числовым рядом, и, следовательно, избегает ограничений, которые они накладывают.
Вышеупомянутые смещения практически могут быть определены как разность между соответствующими числовыми последовательностями в числовом ряду.
Одно вращение циклического числового ряда также можно называть версией числового ряда с циклическим сдвигом. Таким образом, различные вращения начинаются в различных местах в числовом ряду.
Как будет объясняться ниже, печать циклического числового ряда не обязательно должна выполняться с числами в явном виде, но числа могут печататься, предпочтительно используя графические символы, которые легче распознавать, например, посредством обработки изображения кода позиции.
В предпочтительном варианте осуществления используются такие вращения циклического числового ряда, что, по меньшей мере, некоторые из смещений больше единицы. В результате в первом направлении можно закодировать намного большее число позиций, чем когда использовались только смещения с одним шагом.
Кроме того, в предпочтительном варианте осуществления используются такие вращения первого циклического числового ряда, что смещения каждого кодового окна задают номер позиции в основании смешанной системы счисления, который указывает позицию первого кодового окна в первом направлении и, кроме того, в номере позиции указывается наименьшее значащее смещение.
Номер позиции может быть n-адическим, где n - число первого циклического числового ряда в пределах кодового окна за минусом единицы.
Индикация наименьшего значащего смещения в номере позиции позволяет определять позиции частичных поверхностей, которые имеют такой же размер, как и кодовые окна, но которые не совпадают с любым из них, а частично перекрывают два кодовых окна в первом направлении.
Наименьшее значащее смещение может быть показано различными способами. Один способ содержит использование таких вращений первого циклического числового ряда, что наименьшее значащее смещение меньше других смещений. Другой способ содержит использование таких вращений первого циклического числового ряда, что наименьшее значащее смещение находится в пределах первого диапазона размеров, а другие смещения находятся в пределах второго диапазона размеров. Первый способ позволяет закодировать большее количество позиций.
В предпочтительном варианте осуществления способ дополнительно содержит шаг создания различных вариантов кода позиции, позволяя первому циклическому числовому ряду в первом направлении, то есть циклическому числовому ряду, из которого вычисляется первое смещение, начинаться в различных позициях для различных вариантов.
В результате максимальное число кодируемых позиций дополнительно увеличивается. Число возможных вариантов равно числу номеров позиций в первом циклическом числовом ряду.
В предпочтительном варианте осуществления код позиции также кодирует множество позиций во втором направлении на поверхности, и для этой цели способ содержит шаги: использование второго циклического числового ряда, который имеет такую особенность, что позиция в числовом ряду каждой числовой последовательности второй заданной длины определяется однозначно; печать второго циклического числового ряда на поверхности многократно, причем различные вращения второго циклического числового ряда используются так, чтобы второй циклический числовой ряд начинался в различных начальных позициях, причем шаг печати содержит деление поверхности на множество не перекрывающихся вторых кодовых окон, каждое из которых содержит заданное множество из второго циклического числового ряда, и использование таких вращений второго циклического числового ряда так, чтобы позиция каждого второго кодового окна во втором направлении кодировалась посредством начальных позиций ассоциированного второго циклического числового ряда.
Кодирование во втором направлении основано на том же принципе, что и кодирование в первом направлении, а именно на использовании кодовых окон с соответствующими преимуществами. Однако здесь вместо смещений используются начальные позиции для второго циклического числового ряда, что дает возможность большего количества позиций. Такая процедура, однако, основана на известной позиции в первом направлении.
Способ кодирования позиций во втором направлении может использоваться вместе со способами кодирования позиций в первом направлении, отличающимися от способа согласно изобретению.
Позиция во втором направлении может кодироваться номером позиции в основании смешанной системы счисления, и наименьшая значащая начальная позиция может быть показана подобно кодовым окнам в первом направлении, с соответствующими преимуществами.
В предпочтительном варианте осуществления второй циклический числовой ряд идентичен первому циклическому числовому ряду, который предпочтительно является двоичным. Это выгодно в связи с декодированием, поскольку достаточно сохранить таблицу с позициями, соответствующими числовым последовательностям. Кроме того, первые и вторые кодовые окна могут быть одинакового размера и могут перекрывать друг друга.
Простой код позиции для позиций в декартовой системе координат получается, если первый циклический числовой ряд печатается столбцами на поверхности, а второй циклический числовой ряд печатается строками на поверхности или наоборот. Числа в числовом ряду могут быть напечатаны один раз в каждой строке/столбце или несколько раз в последовательности. Тогда для всех одинаковых строк/столбцов используется одинаковое вращение числового ряда.
В предпочтительном варианте осуществления печать первого и второго циклических числовых рядов выполняется так, чтобы каждому пересечению между растровыми линиями в растре, который покрывает поверхность, присваивалось число из первой циклической числовой последовательности и число из второй циклической числовой последовательности, а числа, принадлежащие каждому пересечению, кодируются графически меткой на поверхности на пересечении. Растр может быть напечатан на поверхности, но предпочтительно он является виртуальным.
Таким образом, в каждом пересечении имеется число, которое принадлежит кодированию позиции для первого направления, и число, которое принадлежит кодированию позиции для второго направления. Эти числа могут быть отделены при декодировании, но они могут кодироваться общей меткой на поверхности. Такая процедура делает возможным высокое разрешение и высокую плотность информации.
Пересечения могут также называться растровыми точками.
В предпочтительном варианте осуществления различные возможные комбинации чисел из первого и второго циклических числовых рядов кодируются различными местоположениями метки относительно пересечения.
Если оба числовых ряда являются битовыми рядами, то получается четыре различных возможных комбинаций чисел (0,0; 1,0; 0,1 и 1,1). Они кодируются четырьмя различными местоположениями метки. Различные местоположения могут быть заданным смещением от пересечения вдоль четырех различных растровых линий, которые вытягиваются из них. Пересечение можно рассматривать как номинальную позицию, относительно которой смещается метка.
Использование меток, представляющих различные значения в зависимости от их местоположений, имеет много преимуществ. Среди прочего, все метки могут иметь одинаковый вид, что облегчает расположение кода позиции на поверхности.
Числа, которые присваиваются пересечениям, могут, естественно, быть представлены графически способами, отличными от способов смещенной метки. Вместо этого можно использовать четыре метки с различными видами или метку для каждого из чисел.
Вышеописанный способ может быть осуществлен в виде компьютерной программы, в ASIC (интегральных схемах прикладной ориентации) или FPGA (программируемой пользователем вентильной матрице), или каким-либо другим подходящим способом.
Другая задача настоящего изобретения заключается в том, чтобы обеспечить способ определения позиции, который является подходящим для того, чтобы использоваться вместе с кодом позиции вышеописанного типа.
Такая задача решается полностью или частично посредством способа по п.18 формулы изобретения и посредством компьютерного программного продукта по п.30 формулы изобретения.
Согласно второму аспекту изобретение относится к способу вычисления позиции в первом направлении для произвольной частичной поверхности заданного размера на поверхности, которая снабжается кодом позиции, который для кодирования позиции в первом направлении основан на первом циклическом числовом ряде, который имеет такую особенность, что позиция в числовом ряду каждой первой числовой последовательности первой заданной длины определяется однозначно, и который печатается многократно на поверхности с различными вращениями так, чтобы смежные первые циклические числовые ряды смещались друг относительно друга на заданные смещения, способ, содержащий шаги: идентификация множества первых числовых последовательностей из кода позиции на частичной поверхности, определение позиции каждой первой числовой последовательности в первом циклическом числовом ряду, определение на основе этих позиций смещения между смежными первыми циклическими числовыми рядами, содержащими первые числовые последовательности с частичной поверхности. Способ отличается шагами определения из смещений позиции в первом направлении первого кодового окна, причем упомянутая частичная поверхность, по меньшей мере, частично перекрывается, причем первое кодовое окно является одним из множества кодовых окон в первом направлении, каждое из которых содержит заданное множество первых циклических числовых рядов и имеет один числовой ряд, перекрывающий один числовой ряд смежных первых кодовых окон.
Этот способ выгоден, поскольку он делает возможным определение позиций на поверхности, которая имеет код позиции, кодирующий большое количество позиций.
Способ может быть осуществлен в виде компьютерной программы, в ASIC (интегральных схемах прикладной ориентации) или FPGA (программируемой пользователем вентильной матрице), или каким-либо другим подходящим способом.
Способ определения позиции может быть осуществлен с дополнительными шагами, которые адаптированы таким образом, чтобы декодировать различные варианты осуществления шаблона кодирования позиции, который получается в результате вышеописанного способа обеспечения кода позиции. Эти шаги также описаны подробно в специальном разделе описания.
В частности, способ определения позиции во втором направлении на поверхности может быть осуществлен по п.23 формулы изобретения. Шаги, которые заданы в п.23, могут также использоваться вместе со способами, отличными от вышеописанного, для того, чтобы определить позицию в первом направлении.
Дополнительная задача настоящего изобретения заключается в том, чтобы обеспечить устройство для определения позиций, которое является подходящим для использования с целью декодирования шаблона кодирования позиции вышеописанного типа.
Эта задача решается посредством устройства по п.31.
Согласно третьему аспекту изобретение, следовательно, относится к устройству для определения позиций, содержащему датчик для получения изображения частичной поверхности с поверхности, которая снабжается кодом позиции, и средство обработки изображения, скомпонованное так, чтобы на основе подмножества кодов позиции, которые присутствуют в изображении частичной поверхности, вычислять позицию частичной поверхности по любому из пп.18-29.
Дальнейшая задача настоящего изобретения заключается в том, чтобы снабдить изделие шаблона кодирования позиции, который делает возможным кодирование большого количества позиций.
Эта задача решается посредством изделия по п.34.
Согласно четвертому аспекту изобретение относится к изделию, которое делает возможным определение позиции в первом направлении для произвольной частичной поверхности заданного размера на поверхности изделия, которая снабжается кодом позиции, который для кодирования позиции в первом направлении основан на первом циклическом числовом ряду, имеющем такую особенность, что позиция в числовом ряду каждой первой числовой последовательности первой заданной длины определяется однозначно, и который печатается многократно на поверхности с различными вращениями так, чтобы смежные первые циклические числовые ряды смещались друг относительно друга на заданные смещения, причем множество первых числовых последовательностей из кода позиции могут быть идентифицированы на частичной поверхности для того, чтобы определить позицию каждой первой числовой последовательности в первом циклическом числовом ряду, а смещения между смежными первыми циклическими числовыми рядами, содержащими первые числовые последовательности из частичной поверхности, могут определяться на основе этих позиций. Изделие отличается тем, что позиция в первом направлении первого кодового окна, которое, по меньшей мере, частично перекрывает упомянутая частичная поверхность, может определяться из смещений, причем первое кодовое окно является одним из множества кодовых окон в первом направлении, каждое из которых содержит заданное множество первых циклических числовых рядов и имеет один числовой ряд, перекрывающий один числовой ряд смежных первых кодовых окон.
Преимущества изделия очевидны из вышеприведенного обсуждения. Особенности, которые описаны в связи со способами обеспечения кода позиции и определения позиции, естественно, также применимы к изделию.
Краткое описание чертежей
В дальнейшем изобретение поясняется описанием конкретных вариантов его осуществления со ссылками на сопровождающие чертежи, на которых:
фиг.1 схематично изображает вариант осуществления изделия, которое снабжается шаблоном кодирования позиции,
фиг.2 схематично изображает то, каким образом метки могут быть оформлены и расположены в варианте осуществления изобретения,
фиг.3 схематично изображает пример символов 4*4, которые используются для кодирования позиции,
фиг.4 схематично изображает устройство, которое может использоваться для определения позиции,
фиг.5 схематично изображает шаблон кодирования позиции с треугольным растром и
фиг.6 схематично изображает шаблон кодирования позиции с гексагональным растром.
Подробное описание предпочтительных вариантов осуществления
Фиг.1 изображает часть изделия в виде листа 1 бумаги, который, по меньшей мере, на части своей поверхности 2 снабжается оптически считываемым шаблоном 3 кодирования позиции, обеспечивающим возможность определения позиции.
Шаблон кодирования позиции содержит метки 4, которые выстроены систематически на поверхности 2 так, чтобы она имела вид с нанесенным шаблоном. Лист бумаги имеет ось Х-координаты и ось Y-координаты. Определение позиции может выполняться на всей поверхности изделия. В других случаях поверхность, которая обеспечивает возможность определения позиции, может составлять маленькую часть изделия.
Шаблон, например, может использоваться для того, чтобы обеспечить электронное представление информации, которое записывается или графически представляется на поверхности. Электронное представление может быть обеспечено во время записи на поверхности ручкой, путем непрерывного определения позиции ручки на листе бумаги, посредством считывания шаблона кодирования позиции.
Шаблон кодирования позиции содержит виртуальный растр, который, таким образом, является как не видимым для глаза, так и не может быть обнаружен непосредственно устройством, которое должно определять позицию на поверхности, а также содержит множество меток 4, каждая из которых, в зависимости от ее местоположения, представляет одно из четырех значений от "1" до "4", как описано ниже. В этой связи следует указать, что для наглядности шаблон кодирования позиции на фиг.1 является сильно увеличенным. Кроме того, он показан расположенным только на части листа бумаги.
Шаблон кодирования позиции расположен так, что позиция частичной поверхности на полной поверхности записи однозначно определяется метками, находящимися на этой частичной поверхности. Первая и вторая частичные поверхности 5а, 5b показаны на фиг.1 пунктирными линиями. Вторая частичная поверхность частично накладывается на первую частичную поверхность. Часть шаблона кодирования позиции (здесь метки 4*4) на первой частичной поверхности 5а кодирует первую позицию, а часть шаблона кодирования позиции на второй частичной поверхности 5b кодирует вторую позицию. Таким образом, шаблон кодирования позиции является частично одним и тем же для смежных первой и второй позиций. Такой шаблон кодирования позиции в настоящем описании называется "плавающим". Каждая частичная поверхность кодирует специфическую позицию.
Фиг.2а-г показывают, как метка может быть оформлена и как она может быть расположена относительно номинальной позиции 6. Номинальная позиция 6, которая также может называться растровой точкой, представлена пересечением растровых линий 8. Метка 7 имеет форму круглого пятнышка. Метка 7 и растровая точка 6 вместе составляют символ.
В одном варианте осуществления расстояние между растровыми линиями составляет 300 мкм, а угол между растровыми линиями составляет 90 градусов. Возможны другие растровые интервалы, например, 254 мкм, для того, чтобы адаптироваться к принтерам и сканерам, которые часто имеют разрешение, кратное 100 точкам на дюйм, что соответствует расстоянию между точками, равному 25,4 мм/100, то есть 254 мкм.
Значение метки зависит от того, где расположена метка относительно номинальной позиции. В примере на фиг.2 имеются четыре возможных местоположения, по одному на каждую из растровых линий, отстоящих от номинальной позиции. Смещение от номинальной позиции имеет одинаковую величину для всех значений.
Каждая метка 7 смещается относительно своей номинальной позиции 6, то есть в номинальной позиции нет никакой метки. Кроме того, на одну номинальную позицию приходится только одна метка, и эта метка смещается относительно своей номинальной позиции. Это относится к меткам, которые составляют шаблон. Могут иметься другие метки на поверхности, которые не являются частью шаблона и, таким образом, не вносят вклад в кодирование. Такие метки могут представлять собой пятнышки пыли, непреднамеренные точки или метки и преднамеренные метки, например, от изображения или чертежа на поверхности. Поскольку положение меток шаблона на поверхности достаточно четкое, шаблон не подвержен действию таких помех.
В одном варианте осуществления метки смещаются на 50 мкм относительно номинальной позиции 6 вдоль растровой линии 8. Смещение составляет предпочтительно 1/6 растрового интервала, поскольку тогда относительно легко определить, к какой именно номинальной позиции принадлежит конкретная метка. Смещение должно составлять, по меньшей мере, приблизительно 1/8 растрового интервала, в противном случае становится трудно определять смещение, то есть требования к разрешению становятся высокими. С другой стороны, смещение должно составлять меньше, чем приблизительно 1/4 растрового интервала, для того, чтобы можно было определить, к какой номинальной позиции принадлежит метка.
Смещение необязательно должно происходить вдоль растровой линии, но метки могут располагаться в отдельных квадрантах. Однако, если метки смещаются вдоль растровых линий, достигается преимущество, заключающееся в том, что расстояние между метками имеет минимум, который может использоваться для восстановления растровых линий, как подробно описано ниже.
Каждая метка состоит из более или менее круглого пятнышка с радиусом, который имеет приблизительно такую же величину, как смещение, или несколько меньше. Радиус может составлять от 25 до 120% от смещения. Если радиус намного больше, чем смещение, то может быть трудно определить растровые линии. Если радиус слишком маленький, то для регистрации меток требуется большее разрешение.
Метки не обязательно должны быть круглыми, но может использоваться любая подходящая форма, как, например, квадрат или треугольник.
Обычно каждая метка охватывает множество пикселей на микрокадре датчика и, в одном варианте осуществления, центр тяжести этих пикселей регистрируется или рассчитывается и используется в последующей обработке. Поэтому точная форма метки имеет несущественное значение. Таким образом, могут использоваться относительно простые процессы печати, если можно гарантировать, что центр тяжести метки имеет требуемое смещение.
В дальнейшем метка на фиг.2а представляет значение 1, на фиг.2б - значение 2, на фиг.2в представляет значение 3 и на фиг.2г представляет значение 4.
Таким образом, каждая метка может представлять одно из четырех значений от 1 до 4. Это означает, что шаблон кодирования позиции может быть разделен на первый код позиции для х-координаты и второй код позиции для y-координаты. Разделение выполняется следующим образом:
Значение метки | х-код | y-код |
1 | 1 | 1 |
2 | 0 | 1 |
3 | 1 | 0 |
4 | 0 | 0 |
Таким образом, значение каждой метки преобразуется в первое значение, в данном случае бит для x-кода, и во второе значение, в данном случае бит для y-кода. Таким способом с помощью этого шаблона получается два полностью независимых битовых шаблона. Наоборот, два или более битовых шаблона можно объединить в общий шаблон, который кодируется графически посредством множества меток в соответствии с фиг.2.
Каждая позиция кодируется посредством множества меток. В этом примере для того, чтобы закодировать позицию в двух измерениях, то есть по x-координате и y-координате, используются метки 4*4.
Код позиции строится посредством числового ряда из единиц и нулей некоторого битового ряда, который имеет особенность, состоящую в том, что никакая битовая последовательность длиной четыре бита не встречается в битовом ряду больше одного раза. Битовый ряд является циклическим, что означает, что особенность также применима в случае, когда конец ряда соединяется с его началом. Таким образом, четырехбитовая последовательность всегда имеет однозначно определяемый номер позиции в битовом ряду.
Чтобы битовый ряд имел вышеописанную особенность для битовой последовательности из четырех битов, он должен быть длиной максимум 16 битов. Однако в данном примере битовый ряд длиной только семь битов используется следующим образом:
"0 0 0 1 0 1 0".
Этот битовый ряд содержит семь уникальных битовых последовательностей из четырех битов, которые кодируют номер позиции в ряду следующим образом:
Номер позиции в ряду | Последовательность |
0 | 0001 |
1 | 0010 |
2 | 0101 |
3 | 1010 |
4 | 0100 |
5 | 1000 |
6 | 0000 |
Для того, чтобы закодировать x-координату, битовый ряд записывается последовательно в столбцах по всей поверхности, которая должна быть закодирована, где левый столбец К0 соответствует нулевой x-координате (0). Таким образом, в одном столбце битовый ряд может последовательно повторяться несколько раз.
Кодирование основано на разностях или смещениях позиции между соседними битовыми рядами в смежных столбцах. Величина разности определяется номером позиции (то есть битовой последовательностью) в битовом ряду, с которого начинаются смежные столбцы.
Более точно, если взять разность n по модулю семь между, с одной стороны, номером позиции, который закодирован четырехбитовой последовательностью в первом столбце Кn и который, таким образом, может иметь значение от 0 до 6, и, с другой стороны, номером позиции, который закодирован смежной четырехбитовой последовательностью на соответствующей "высоте" в смежном столбце Kn+1, то разность будет одинаковой независимо от того, где, то есть на какой "высоте", вдоль двух столбцов создается разность. Таким образом, используя разность между номерами позиций для двух битовых последовательностей в двух смежных столбцах, можно закодировать x-координату, которая является независимой от всех y-координат и постоянной для них.
Поскольку каждая позиция на поверхности кодируется частичной поверхностью, в этом примере состоящей из 4*4 меток, то для кодирования х-координаты имеются четыре вертикальных доступных битовых последовательностей и, таким образом, три разности, каждая со значением от 0 до 6.
Шаблон делится на кодовые окна F с особенностью, состоящей в том, что каждое кодовое окно состоит из 4*4 меток. Таким образом, имеются четыре горизонтальных битовых последовательности и четыре вертикальных доступных битовых последовательности, так что можно создать три разности в x-направлении и можно получить четыре позиции в y-направлении. Эти три разности и четыре позиции кодируют позицию частичной поверхности в x-направлении и y-направлении. Смежные окна в x-направлении имеют общий столбец, см. фиг.1. Таким образом, первое кодовое окно F0,0 содержит битовые последовательности из столбцов К0, K1, К2, К3 и битовые последовательности из строк R0, R1, R2, R3 . Поскольку разности используются в x-направлении, следующее окно по диагонали в x-направлении и y-направлении, окно F 1,1, содержит битовую последовательность из столбцов К 3, К4, K5, К6 и строк R4, R5, R6, R7. Рассматривая кодирование только в x-направлении, можно считать, что кодовое окно имеет в y-направлении неограниченное протяжение. Соответственно, рассматривая кодирование только в y-направлении, можно считать, что кодовое окно имеет в x-направлении неограниченное протяжение. Такое первое и второе кодовое окно с неограниченным протяжением в y-направлении и x-направлении, соответственно, вместе образуют кодовое окно типа, показанного на фиг.1, например, F0,0 .
Каждое окно имеет координаты Fx, которые задают положение окна в x-направлении, и Fy, которые задают положение окна в y-направлении. Таким образом, связь между окнами и столбцами следующая:
Ki=3 Fx
Rj=4 Fy
Кодирование выполняется таким образом, что из трех разностей одна из разностей 0 всегда имеет значение 1 или 2, что показывает наименьшую значащую цифру S0 для числа, которое представляет позицию кодового окна в x-направлении, а обе другие разности 1, 2 имеют значения в диапазоне от 3 до 6, которые показывают наименьшие значащие цифры S1, S2 для координаты кодового окна. Таким образом, для x-координат никакая разность не может быть нулевой, так как это могло бы привести к слишком симметричному кодовому шаблону. Другими словами, столбцы кодируются так, чтобы разности были следующие:
(от 3 до 6); (от 3 до 6); (от 1 до 2); (от 3 до 6); (от 3 до 6); (от 1 до 2); (от 3 до 6); (от 3 до 6); (от 1 до 2); (от 3 до 6); (от 3 до 6);...
Таким образом, каждая x-координата кодируется двумя разностями 1, 2 между 3 и 6 и последующей разностью, которая равна 1 или 2. Вычитая единицу (1) из наименьшей разности 0 и тройку (3) из других разностей, можно получить три цифры S2, S1, S0, которые в основании смешанной системы счисления непосредственно дают номер позиции кодового окна в x-направлении, из которого можно затем непосредственно определить x-координату, как показано в примере ниже. Номер позиции кодового окна:
S2 *(4*2)+S1*2+S0*1
Таким образом, используя вышеописанный принцип, возможно закодировать кодовые окна 0, 1, 2,..., 31, используя номер позиции для кодового окна, состоящий из трех цифр, которые представлены тремя разностями. Эти разности кодируются битовым шаблоном, который основан на вышеупомянутом числовом ряде. Битовый шаблон может быть окончательно закодирован графически посредством меток, изображенных на фиг.2.
Во многих случаях, когда регистрируется частичная поверхность, состоящая из 4*4 меток, полный номер позиции, который кодирует x-координату, не будет получен, но будут получены части двух номеров позиций, поскольку частичная поверхность во многих случаях не совпадает с одним кодовым окном, но покрывает части двух смежных кодовых окон в x-направлении. Однако, так как разность для наименьшей значащей цифры S0 каждого номера всегда составляет 1 или 2, полный номер позиции можно легко восстановить, поскольку известно, что цифра является наименьшей значащей.
Y-координаты кодируются посредством кодовых окон приблизительно в соответствии с тем же принципом, который используется для x-координат. Циклический числовой ряд, который представляет собой такой же числовой ряд, который используется для x-кодирования, записывается многократно в горизонтальных строках на поверхности, которая должна подвергнуться кодированию позиции. Точно так же, как для x-координат, строки составляются так, чтобы они начинались в различных позициях, то есть с различных битовых последовательностей в числовом ряду. Однако для y-координаты разности не используются, а координаты кодируются значениями, которые основаны на начальной позиции числового ряда в каждой строке. Как только x-координата определена для частичной поверхности с 4*4 метками, начальные позиции в числовом ряду фактически могут быть определены для строк, которые включены в y-код для 4*4 меток.
В y-коде наименьшая значащая цифра определяется как единственная цифра, которая имеет значение в специфическом диапазоне. В данном примере строка из четверок начинается в позиции от 0 до 1 в числовом ряду, чтобы показать, что этот ряд относится к наименьшей значащей цифре S0 в кодовом окне, а три другие строки начинаются в любой из позиций от 2 до 6, чтобы показать другие цифры S1 S2 S3 в кодовом окне. Таким образом, в y-направлении имеется следующий ряд значений:
(от 2 до 6); (от 2 до 6); (от 2 до 6); (от 0 до 1); (от 2 до 6); (от 2 до 6); (от 2 до 6); (от 0 до 1); (от 2 до 6);...
Таким образом, каждое кодовое окно кодируется тремя значениями между 2 и 6 и последующим значением между 0 и 1.
Если из низкого значения вычесть ноль (0), а из других значений двойку (2), то в основании смешанной системы счисления получается позиция в y-направлении S3 S2 S1 S0, способом, подобным для х-направления, из которого номер позиции кодового окна может быть определен непосредственно, то есть:
S3*(5*5*2)+S 2*(5*2)+S1*2+S0*1
Используя вышеупомянутый способ, в x-направлении для кодовых окон можно закодировать 4*4*2=32 номеров позиций. Каждое кодовое окно содержит битовые последовательности из трех столбцов, что дает 3*32=96 столбцов или x-координат. Кроме того, можно закодировать 5*5*5*2=250 номеров позиций в y-направлении для кодовых окон. Каждый такой номер позиции содержит горизонтальные битовые последовательности из 4 строк, что дает 4*250=1000 строк или y-координат. Таким образом, всего возможно закодировать 96000 координатных позиций.
Так как x-кодирование основано на разностях, то можно выбрать позицию, в которой начинается первый числовой ряд в первом кодовом окне. Если учесть, что первый числовой ряд может начинаться в семи различных позициях, то можно закодировать 7*96000=672000 позиций. Начальная позиция первого числового ряда в первом столбце К0 может быть рассчитана, когда уже определены x- и y-координаты. Вышеупомянутые семь различных начальных позиций для первого ряда могут кодировать различные страницы или поверхности записи изделия.
Теоретически частичная поверхность с 4*4 символами, каждый из которых имеет четыре значения, может закодировать 44*4 позиций, то есть 4294967296 позиций. Таким образом, чтобы обеспечить возможность плавающего определения позиции частичной поверхности, имеется множитель избыточности более 6000 (4294967296/672000).
Избыточность состоит частично в ограничении на величину разностей и частично в использовании только 7 битов из 16 в коде позиции. Однако последний факт может использоваться для определения позиции вращения частичной поверхности. Если к последовательности с четырьмя битами добавить следующий бит в битовом ряду, то получается последовательность с пятью битами. Пятый бит получается посредством считывания смежного бита, находящегося сразу за используемой частичной поверхностью. Такой дополнительный бит часто является легкодоступным.
Частичная поверхность, которая считывается датчиком, может иметь четыре различных позиции вращения, вращающихся на 0, 90, 180 или 270 градусов относительно кодового окна. В тех случаях, когда вращается частичная поверхность, считывание кода, однако, будет таким, что считываемый код будет инвертирован и обращен либо в x-направлении, либо в y-направлении, либо в обоих, по сравнению со случаем, в котором он считывался при 0 градусов. Однако тем самым подразумевается, что используется несколько отличное декодирование значения меток согласно нижеследующей таблице.
Значение метки | x-код | y-код |
1 | 0 | 0 |
2 | 1 | 0 |
3 | 1 | 1 |
4 | 0 | 1 |
Вышеупомянутая последовательность с пятью битами имеет такую особенность, что последовательность встречается только в случае циклического сдвига направо, а не в инвертированной и обращенной форме в семибитовом ряду. Это очевидно из того факта, что битовый ряд (0 0 0 1 0 1 0) содержит только две "единицы". Поэтому все последовательности с пятью битами должны содержать, по меньшей мере, три нуля, которые после инверсии (или обращения, если они вообще происходят) приводят к трем единицам, чего быть не может. Таким образом, если найдена последовательность с пятью битами, которая не имеет номера позиции в битовом ряду, то можно сделать вывод, что частичная поверхность, вероятно, должна быть повернута и должна проверяться новая позиция.
Чтобы представить дальнейшие иллюстрации изобретения согласно данному варианту осуществления, ниже приводится конкретный пример, который основан на описанном варианте осуществления кода позиции.
Фиг.3 изображает пример изображения с метками 4*4, которое считывается устройством для определения позиции.
Эти 4*4 метки имеют следующие значения:
4 4 4 2
3 2 3 4
4 4 2 4
1 3 2 4
Указанные значения представляют следующие двоичные х- и y-коды:
х-код: | y-код: |
0000 | 0001 |
1010 | 0100 |
0000 | 0010 |
1100 | 1010 |
Вертикальные битовые последовательности в x-коде кодируют следующие позиции в битовом ряду: 2046. Разности между столбцами составляют -2 4 2, что по модулю 7 дает 542, что в основании смешанной системы счисления кодирует номер позиции кодового окна: (5-3)*8+(4-3)*2+(2-1)=16+2+1=19. Первое закодированное кодовое окно имеет номер позиции 0. Таким образом, разность, которая находится в диапазоне от 1 до 2 и которая появляется в 4*4 метках частичной поверхности, составляет двадцатую часть такой разности. В качестве дополнительных имеется всего три столбца для каждой такой разности, а также имеется начальный столбец, вертикальная последовательность, наиболее удаленная направо в 4*4 x-коде, принадлежит 61-му столбцу (столбец 60) в x-коде (3*20+1=61), а вертикальная последовательность, наиболее удаленная налево, принадлежит 58-му столбцу (столбец 57).
Горизонтальные битовые последовательности в y-коде кодируют в числовом ряду позиции 0 4 1 3. Поскольку эти горизонтальные битовые последовательности начинаются в 58 столбце, начальная позиция строк составляет их значение минус 57 по модулю 7, что дает начальные позиции 6 3 0 2. Преобразованные к цифрам в основании смешанной системы счисления, они становятся 6-2, 3-2, 0-0, 2-2=4100, где третья цифра представляет собой наименьшую значащую цифру в рассматриваемом числе. Тогда четвертая цифра является наименьшей значащей цифрой в следующем числе. В этом случае она должна быть такой же, как в рассматриваемом числе. (Исключение составляет случай, когда рассматриваемое число состоит из наибольших возможных цифр во всех позициях. Тогда известно, что начало следующего числа больше, чем начало рассматриваемого числа.)
Номер позиции в основании смешанной системы счисления будет 0*50+4*10+1*2+0*1=42.
Таким образом, третья горизонтальная битовая последовательность в y-коде принадлежит к 43-му кодовому окну, которое имеет начальную позицию 0 или 1, а поскольку имеется всего четыре строки для каждого такого кодового окна, третья строка является числом 43*4=172.
В данном примере позиция верхнего левого угла частичной поверхности с 4*4 метками имеет вид: (58,170).
Поскольку вертикальные битовые последовательности в x-коде в 4*4 группе начинаются в строке 170, x-столбцы всего шаблона начинаются в позициях числового ряда ((2 0 4 6) -169) по модулю 7=1635. Между последней начальной позицией (5) и первой начальной позицией числа 0-19 кодируются в основании смешанной системы счисления, и, прибавляя представления чисел 0-19 в основании смешанной системы счисления, можно получить полную разность между этими столбцами. Простой алгоритм для выполнения этого должен генерировать эти двадцать чисел и непосредственно прибавлять их цифры. Обозначим полученную сумму s. Тогда страница или поверхность записи дается выражением (5-s) по модулю 7.
Альтернативный способ для определения того, какой бит является наименьшим значащим в частичной поверхности, чтобы можно было идентифицировать кодовое окно таким способом, заключается в следующем. Наименьший значащий бит (LSB, НЗБ) определяется как цифра, которая является самой меньшей в разностях частичной поверхности или в номере позиции строки. Таким образом, уменьшение (избыточность) максимального применимого номера координат относительно мало. Например, первые кодовые окна в x-направлении в вышеприведенном примере все могут иметь НЗБ=1, а другие будут иметь НЗБ=цифрам между 2 и 6, что дает 25 кодовых окон, следующие все могут иметь НЗБ=2 и равное другим цифрам между 3 и 6, что дает 16 кодовых окон, следующие все могут иметь НЗБ=3 и другим цифрам между 4 и 6, что дает 9 кодовых окон, следующие могут иметь НЗБ=4 и другим цифрам между 5 и 6, что дает 4 кодовых окна, следующие могут иметь НЗБ=5 и другим цифрам 6, что дает 1 кодовое окно, то есть в сумме 55 кодовых окон, по сравнению с 32 в вышеприведенном примере.
В вышеприведенном примере был описан вариант осуществления, в котором каждое кодовое окно кодируется 4*4 метками, и используется числовой ряд с 7 битами. Это, конечно, только один пример. Позиции могут кодироваться большим или меньшим числом меток. Не обязательно должно быть одно и то же число в обоих направлениях. Числовой ряд может иметь различную длину и необязательно должен быть двоичным, но может быть основан на другом основании, например, шестнадцатеричном коде. Для кодирования в x-направлении и кодирования в y-направлении может использоваться различный числовой ряд. Различные метки могут представлять различные номера значений.
В практическом примере используется состоящая из 6*6 меток частичная поверхность, а битовый ряд может состоять максимум из 26 битов, то есть 64 битов. Однако, чтобы иметь возможность определять позицию вращения частичной поверхности, используется битовый ряд, состоящий из 51 бита, и, следовательно, 51 позиции. Пример такой битовой последовательности:
0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 0 1 0 1 0 1 1 0 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 0 1 1 1 0 1 1 1 1 0 0 1 0
Такая частичная поверхность, состоящая из меток числом шесть на шесть, может теоретически закодировать 46*6 позиций, что, с вышеупомянутыми размерами растра 0,3 мм, представляет собой чрезвычайно большую поверхность.
Подобным способом, как описано выше для последовательности с семью битами, согласно настоящему изобретению применяется такая особенность, что частичная поверхность увеличивается, чтобы включить один бит на каждой стороне частичной поверхности, по меньшей мере, в ее центре, так, чтобы для третьей и четвертой строк в частичной поверхности из 6*6 символов считывалось 8 символов, по одному на каждой стороне частичной поверхности, и аналогично в y-направлении. Вышеупомянутый битовый ряд, который содержит 51 бит, имеет такую особенность, для которой битовая последовательность из 6 битов попадается только однажды, а также то, что битовая последовательность из 8 битов, которая содержит вышеупомянутую битовую последовательность из 6 битов, попадается только однажды и никогда не встречается в инвертированной позиции или в обращенной и инвертированной позиции. Таким образом, позиция вращения частичной поверхности может быть определена путем считывания 8 битов в строке 3, строке 4, столбце 3 и/или столбце 4. Когда позиция вращения известна, частичная поверхность может вращаться до правильной позиции перед тем, как продолжить обработку.
Желательно получить шаблон, который является настолько хаотическим, насколько это возможно, то есть в котором не встречаются участки с чрезмерной симметрией. Желательно получить шаблон, в котором частичная поверхность с 6*6 метками содержит метки со всеми различными позициями в соответствии с фиг.2а-2г. Для того, чтобы еще больше увеличить хаотичность или избежать повторяющихся особенностей, способ может использовать так называемую "перетасовку". Каждая горизонтальная битовая последовательность начинается в заданной начальной позиции. Однако для каждой строки возможно смещать начальную позицию в горизонтальном направлении, если смещение известно. Такую операцию можно выполнить, присваивая отдельный вектор смещения для смежных строк каждому наименьшему значащему биту (НЗБ). Вектор смещения устанавливается тем, насколько каждая строка смещается в горизонтальном направлении. Визуально это можно рассматривать так, как если бы ось y на фиг.1 являлась "заостренной".
В вышеупомянутом примере с 4*4 кодовым окном вектор смещения может быть 1, 2, 4, 0 для НЗБ=0 и 2, 2, 3, 0 для НЗБ=1. Это означает, что после вычитания числа 2 и 0 соответственно, перед тем, как продолжить обработку, вышеупомянутое смещение должно вычитаться (по модулю пять) из номера позиции битовой последовательности. В вышеупомянутом примере для y-координаты цифры 4 1 0 0 (S2, S 2, S0, S4) получаются в основании смешанной системы счисления, где вторая цифра справа является наименьшей значащей цифрой, НЗБ. Поскольку вектор смещения 1, 2, 4, 0, который должен использоваться (НЗБ=0) для цифр 4 и 1, то 2 вычитается из 4, чтобы дать S2=2, а 4 вычитается из 1 (по модулю пять), чтобы дать S1=2. Цифра S 0=0 остается неизменной (составляющая вектора смещения для наименьшей значащей цифры всегда равна нулю). Наконец, цифра S4 принадлежит следующему кодовому окну, которое должно иметь НЗБ=1, то есть должен использоваться второй вектор смещения. Таким образом, 2 вычитается из 0 (по модулю пять), что дает S 4=3.
Подобный способ можно использовать, чтобы изменить коды для x-координат. Однако имеется меньшая потребность изменять х-координаты, поскольку они уже распределены относительно хаотически, поскольку нулевая разность в вышеупомянутом примере не используется.
В вышеупомянутом примере метка является пятнышком. Естественно, она может иметь различный вид. Она может, например, состоять из линии или эллипса, который начинается в виртуальной растровой точке и вытягивается из нее до специфической позиции. Можно использовать отличные от круглого пятнышка символы, такие как, например, квадрат, прямоугольник, треугольник, круг или эллипс, закрашенные или нет.
В вышеупомянутом примере метки используются в пределах квадратной частичной поверхности для кодирования позиции. Частичная поверхность может быть другой формы, например, гексагональной. Метки необязательно должны быть расположены вдоль растровых линий в ортогональном растре, но также могут быть расположены другими способами, как, например, вдоль растровых линий с углами наклона 60 градусов и т.д. Также можно использовать систему полярных координат.
Также могут использоваться растры в форме треугольников или шестиугольников, как показано на фиг.5 и 6. Например, растр с треугольниками, см. фиг.5, позволяет смещать каждую метку в шести различных направлениях, что обеспечивает даже более высокие возможности, соответствуя 66*6 позициям частичной поверхности. Для гексагонального растра, фиг.6, т.е. сотового шаблона, каждая метка может быть смещена в трех различных направлениях вдоль растровых линий.
Как упомянуто выше, метки не должны смещаться вдоль растровых линий, но могут смещаться в других направлениях, например, так, чтобы каждая была определена в отдельном квадранте при использовании квадратного растрового шаблона. В гексагональном растровом шаблоне метки могут смещаться в четырех или более различных направлениях, например, в шести различных направлениях вдоль растровых линий и по линиям, которые наклонены под углом 60 градусов к растровым линиям.
Чтобы была возможность определить код позиции, необходимо определить виртуальный растр. В квадратном растровом шаблоне это можно выполнить, рассматривая расстояние между различными метками. Самое короткое расстояние между двумя метками должно получиться от двух смежных меток со значениями 1 и 3 в горизонтальном направлении или со значениями 2 и 4 в вертикальном направлении так, чтобы метки лежали на той же самой растровой линии между двумя растровыми точками. Когда оказалась такая пара меток определенной, ассоциированные растровые точки (номинальные позиции) могут быть определены, используя знание расстояния между растровыми точками и смещение меток от растровых точек. Как только определено положение двух растровых точек, можно определить дополнительные растровые точки, используя измеренное расстояние до других меток и зная расстояние между растровыми точками.
Если метки смещаются на 50 мкм вдоль растровых линий, что составляет разнесение 300 мкм, то наименьшее расстояние между двумя метками будет 200 мкм, например, между метками со значениями 1 и 3. Следующее наименьшее расстояние возникает, например, между метками со значениями 1 и 2 и составляет 255 мкм. Следовательно, существует относительно отчетливая разница между наименьшим и следующим самым маленьким расстоянием. Разность для любых диагоналей также велика. Однако, если смещение больше 50 мкм, например, больше 75 мкм (1/4), то диагонали могут вызывать проблемы и может быть трудно определить, к какой именно номинальной позиции принадлежит метка. Если смещение меньше 50 мкм, например, меньше, чем приблизительно 35 мкм (1/8), то наименьшее расстояние будет 230 мкм, что не дает очень большую разность для следующего расстояния, которое тогда составляет 267 мкм. Кроме того, повышаются требования к оптическому считыванию.
Метки не должны покрывать их собственную растровую точку и, следовательно, не должны иметь большего диаметра, чем двойное смещение, то есть 200%. Однако это не критично, и можно допустить некоторое перекрывание, например, 240%. Наименьшая величина определяется, во-первых, разрешением датчика и требованиями к процессу печати, используемому для изготовления шаблона. Однако практически метки не должны иметь диаметр меньше, чем приблизительно 50% от смещения, для того, чтобы избежать проблем с частицами пыли и шумом в датчике.
Вариант осуществления устройства для определения позиции схематически изображен на фиг.4. Оно содержит корпус 11, который имеет приблизительно такую же форму, как авторучка. На короткой грани (торце) корпуса имеется отверстие 12. Короткая грань предназначена для того, чтобы упираться в поверхность или поддерживаться на коротком расстоянии от поверхности, на которой должно выполняться определение позиции.
Корпус содержит по существу оптическую часть, электронную часть и источник питания.
Оптическая часть содержит, по меньшей мере, один светодиод 13 для освещения поверхности, которая должна отображаться, и светочувствительный датчик 14, например, датчик на приборе с зарядовой связью (CCD, ПЗС) или датчик на комплементарной МОП структуре (CMOS, КМОП) для регистрации двухмерного изображения. При необходимости устройство также может содержать оптическую систему, такую как, например, систему зеркал и/или линз. Светодиод может быть инфракрасным светодиодом, а датчик может быть чувствительным к инфракрасному свету.
Электропитание для устройства подается от батареи 15, которая устанавливается в отдельном секторе в корпусе.
Электронная часть содержит средство 16 обработки изображения для определения позиции на основе изображения, зарегистрированного датчиком 14, и, в частности, модуль процессора с процессором, который запрограммирован так, чтобы считывать изображение с датчика и выполнять определение позиции на основе этих изображений.
В этом варианте осуществления устройство также содержит шариковую авторучку 17, с помощью которой обычная запись на основе красителя может быть записана на поверхности, на которой должно выполняться определение позиции. Шариковая ручка 17 способна удлиняться и выдвигаться так, чтобы пользователь мог управлять, нужно или нет ее использовать. В некоторых применениях устройство вообще может не иметь шариковой ручки.
Запись на основе красителя соответственно является такого типа, чтобы она была прозрачна для инфракрасного излучения, а метки соответственно поглощают инфракрасное излучение. Используя светодиод, который испускает инфракрасный свет, и датчик, который является чувствительным к инфракрасному свету, можно выполнять определение шаблона без взаимного влияния вышеупомянутой записи с шаблоном.
Устройство также содержит кнопки 18, которыми устройство может активизироваться и управляться. Оно также имеет приемопередатчик 19 для беспроводной передачи информации к устройству и от него, например, с использованием инфракрасного света, радиоволн или ультразвука. Устройство также может содержать дисплей 20 для отображения позиций или зарегистрированной информации.
Устройство для регистрации текста описано в патенте №9604008-4 Швеции. Это устройство может использоваться для определения позиций, если оно запрограммировано соответствующим образом. Если оно должно использоваться для записи на основе красителя, то оно также может быть снабжено шариковой ручкой.
Устройство физически может быть разделено на различные корпуса, причем первый корпус содержит компоненты, которые требуются для регистрации изображений шаблона кодирования позиции и для их передачи к компонентам, которые содержатся во втором корпусе и которые выполняют определение позиций на основе зарегистрированного изображения(-й).
Как уже упоминалось, определение позиций выполняется процессором, который, следовательно, должен иметь программное обеспечение для определения местоположений меток в изображении и для их декодирования, а также для определения позиций из кодов, полученных таким образом. Специалист будет способен на основе вышеприведенных примеров создать программное обеспечение, которое выполняет определение позиций на основе изображения части шаблона кодирования позиции.
Кроме того, на основе предшествующего описания специалист будет способен создать программное обеспечение для печати шаблона кодирования позиции.
В вышеописанном варианте осуществления шаблон может считываться оптически, и, следовательно, датчик является оптическим. Как уже упоминалось, шаблон может быть основан на параметре, отличающемся от оптического параметра. В таком случае датчик, конечно, должен быть такого типа, чтобы он мог считывать соответствующий параметр. Примерами таких параметров являются химические, акустические или электромагнитные метки. Также могут использоваться емкостные или индуктивные метки.
В вышеописанном варианте осуществления растр представляет собой ортогональную сетку. Он может также иметь другие формы, типа ромбической сетки, например, с углами наклона 60 градусов, треугольную или гексагональную сетки и т.д.
Может использоваться смещение не только в четырех направлениях, а в большем или меньшем их числе, например, смещение в трех направлениях вдоль гексагонального виртуального растра. В ортогональном растре могут использоваться только два смещения для того, чтобы облегчить воссоздание растра. Однако предпочтительным является смещение в четырех направлениях, а в рамках изобретения также возможны шесть или восемь направлений.
В вышеописанном варианте осуществления не используется самый длинный возможный циклический числовой ряд. В результате получается степень избыточности, которая может использоваться различными способами, например, для того, чтобы выполнять исправление ошибок, заменять пропущенные или скрытые метки и т.д.
Класс G06K1/12 маркировка иным способом, чем перфорирование