I’ve made lots of progress on my worm simulation project. I’ve created a simple program that resembles a petri-dish with micro-organisms, improved my cascade classifier, and glazed the ceramic shells.
The simulation creates some worms and smaller organisms and gives them rules for their behaviour. So far it’s pretty simple. The smaller organisms just move about semi-randomly. The worms also move about semi-randomly, until they get hungry, which just happens after a certain amount of time. To try and make the movement look natural, I made the worms out of segments that each have their own movement variables. These include rules for acceleration, proximity, etc. When they get hungry, they choose a smaller organism close by and move towards it to eat it. When they eat, they gain a new segment, and when they reach 5 segments they die. Upon dying, they turn into a swirling pattern. It is this pattern that the robot-thing will recognise with it’s camera eyes.
I retrained the object detection system by using 1000s of images this time. Preparing the images, and processing them took foreeevveerrr. Computer vision programming definitely tries your patience. As a result, it’s much more accurate now, although there are more false positives than I would like. I greatly reduced the effect of these, though, by making the program only count an object if it is detected for a certain number of contiguous frames. I may retrain it later on with a greater variety of background images, which should make it more accurate.
My ceramics fire ok and didn’t break, although there are a few thin cracks. I’m hoping the glaze (thick application of matte translucent white) will cover these up. I’ve also started work making a metal and plastic box to house the installation within.
I got a solid state relay to trigger the pump. This has the advantage of being silent, compared to regular relays which make a loud clicking sound when they switch. They are less flexible, however, as you have to get specific versions for AC or DC circuits.