Witness: an API callable webcam

Since my last post, I’ve been hard at work building a more complex example of using bazel to build containers for use with balena. I wrote a blog post on the subject, but in summary:

I work a lot in robotics. Sometimes testing robots outside of simulators can result in hardware damaging incidents. Debugging these incidents is a combination of digging through log files and relying on witness accounts. Witnesses are imperfect, as they can be biased or perhaps they see the whole incident.

Typically, witness cameras are used to combat this problem. It becomes part of the operational practice to always start a camera recording when you start a test. The problem with recording every test, is if it’s not automated, eventually you’ll forget to do it. This led me to develop the concept of an unbiased robotic witness. The idea is to have an API callable webcam that is scalable to however many witnesses I want to have.

I’ve created the witness project: https://github.com/curtismuntz/witness.

Witness is capable of running a camera via the witness API in the following modes:

  • Photo capture
  • Video capture
  • Timelapse
  • Security monitor

I use balena to manage a fleet of witnesses and it’s helped my robotics development work. Huge kudos to the balena team for enabling me with this seamless scalability!

1 Like

@murtis great stuff! Thanks for sharing :heart_eyes: