I am working on a robotics application that involves moving objects (e.g. books) between several (around 10) stacks. To measure the performance, I'd like to be able to measure which book is located on each of the stacks. The order is not important I just want to know if a book is on one of the stacks.

The stacks are separated by at least one meter and the height of the stacks is less than 30cm (< 8 Books).

If have thought of putting an RFID card in every book and fixing RFID readers above (or below) the stack positions. Several readers could be attached via SPI or I2C to some arduinos or RPis.

What to you think about this approach? Is there a simpler way? Could someone maybe recommend a sensor that could solve this problem?

// Update: I can modify the books (e.g. add a QR-Marker) to some extent, but can't guarantee that the orientation on the stack is fixed.

  • $\begingroup$ Would you be allowed to visually tag the book? $\endgroup$ Commented Feb 5, 2016 at 15:38
  • $\begingroup$ I'm saying this more for fun, but if each book weighs differently, it's very likely that if you look at the weight of the stack, you can uniquely work out what combinations of books were placed on it. (Assuming books don't change weight over time and certain other constraints on the weights) $\endgroup$
    – Shahbaz
    Commented Feb 5, 2016 at 16:32
  • $\begingroup$ This would require a scale that can communicate via network which is probably more expensive than an RFID reader. $\endgroup$
    – FooTheBar
    Commented Feb 5, 2016 at 16:50
  • $\begingroup$ I'm not sure I completely understand the scenario. Is it important that you identify the stack for every book, or just for certain books? The reason I'm asking is, if you only need to test your system using a few of the books, then you might be able to use a color vision system to identify books which you could wrap with certain colors of papers, vs. the majority of books which you could wrap with grey or black covers. $\endgroup$
    – SteveO
    Commented Feb 5, 2016 at 17:34
  • $\begingroup$ I need to know the stack for every book. $\endgroup$
    – FooTheBar
    Commented Feb 5, 2016 at 18:39

1 Answer 1


You might want to look at optical glyph tracking. I'm not sure how many unique glyphs there are and how many books you have, but it would provide a somewhat simple way to accomplish all this with a camera.

I say "simple" because you'd be able to visually debug it by just looking at the augmented reality video to see what glyphs are being detected.

  • $\begingroup$ For that I had to attach markers to every side of the objects and have a camera for each stack position. But that could even be cheaper than the RFID. $\endgroup$
    – FooTheBar
    Commented Feb 5, 2016 at 16:53
  • $\begingroup$ It depends on the camera resolution, and I had imagined that you could group several stacks into the frame. You should be able to determine which stack something is in based on the pixel(s) it occupies in the image. $\endgroup$
    – Ian
    Commented Feb 5, 2016 at 17:03
  • $\begingroup$ The stacks are more than a meter apart so that I'll need a camera per stack. $\endgroup$
    – FooTheBar
    Commented Feb 5, 2016 at 18:41
  • $\begingroup$ I second the overall idea of using a vision based approach (whether glyphs or QR-codes/some other barcode). Even if you have to get a camera per stack, especially since you don't need to process particularly fast, you can probably get a raspberry Pi + Camera + wifi + power setup going for about 750 USD ( 10 x 75 USD (35 + 25 + 10 + 5)).. One note, You may need to experiment with resolution on the individual cameras. $\endgroup$
    – Aerophilic
    Commented Feb 5, 2016 at 21:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.