Visual Computing

University of Konstanz
Robotics

Robotic Writing of Arbitrary Unicode Characters Using Paintbrushes

D. S. Zingrebe, J. M. Gülzow, O. Deussen
Teaser of Robotic Writing of Arbitrary Unicode Characters Using Paintbrushes

Improvement due to the application of our stroke model. (a) Original text 'e-David 2022' rendered in the Liberation Sans typeface. (b) 'e-David 2022' written with a Da Vinci College 4 brush in the Liberation Sans typeface without brush model and constant 2 mm brush pressure. (c) Trajectories generated by our model for 'e-David 2022' in the Liberation Sans typeface. Axes given in millimetres. (d) Full brush model. Stroke approach slope 0.5

Material

Paper (.pdf, 5.5MB)

Abstract

Human handwriting is an everyday task performed regularly by most people. In the domain of robotic painting, multiple calligraphy machines exist which were built to replicate some aspects of human artistic writing; however, most projects are limited to a specific style of handwriting, often Chinese calligraphy. We propose a two-stage pipeline that allows industrial robots to write text in arbitrary typefaces and scripts using paintbrushes. In the first stage, we extract a set of strokes from character glyphs which are similar to how humans choose strokes during writing. In the second stage, we generate corresponding brush trajectories by applying a brush model to the extracted strokes. Our brush model computes the required brush pressure to achieve the given stroke width while also accounting for brush lag. We also present a method to automatically measure the parameters needed to predict brush lag by painting and recording calibration patterns. Our method generates trajectories for text in any given typeface, which, when executed by a robotic arm, results in legible written text. We can render most writing systems, excluding emoji and ligatures, in which arbitrary texts can be specified to write.

BibTeX

@article{Zingrebe2023RoboticWriting,
  author    = {D. S. Zingrebe, J. M. Gülzow, O. Deussen},
  doi       = {10.3390/robotics12030072},
  issn      = {2218-6581},
  journal   = {Robotics},
  month     = {May},
  number    = {3},
  pages     = {72},
  publisher = {MDPI AG},
  title     = {Robotic Writing of Arbitrary Unicode Characters Using Paintbrushes},
  volume    = {12},
  year      = {2023}
}