Sunday, December 08, 2024

 

FPath: Graphical Stigmergy

One of the major problems with the Feynman Path approach is minimizing and correcting the unavoidable errors as large tools make smaller tools. One way forward is to simply accept that the machinery will be imprecise and use a closed loop feedback system to help eliminate those errors. Developing such a control system is the reason why most of the work on the FPath Project has so far been software. 

In Experiment 004 the Walnut software was used to demonstrate a path following and error correction behavior using real time object recognition. A rather crude XY stage was used to move a 5mm red circle along a green path. The green path is entirely virtual and is overlaid on the video stream by software. 

The video documentation for Experiment 004 can be found at the link: https://youtu.be/bCb2k8tKX6k 

If you watch the video you will see that cheap DC motors glued to LEGO bricks are used to move the tool head. Why do this? Surely something of higher quality would be better? Well, yes and no. Yes, the quality of the movement could be improved and it certainly would not be hard to find better alternatives to the gear motors currently in use.  But no, I actually want the poor quality movement. The goal here is not to have accuracy handed to me on a plate but rather to get experience taking inaccurate tools and making the resulting output accurate. This is a simulation of what needs to happen when larger machines make smaller machines and there is no realistic way to improve the accuracy of the parent. Errors must be corrected and it is much easier to get some practice at this while still at the macro scale.

Stigmergy is the use of the environment to coordinate actions. If you watch the video you will get a sense of how Graphical Stigmergy could be a useful part of an error correction system.


Comments:
I've been thinking that later I might try flexures driven directly by PWM'd coils. Obviously a few additional considerations needed, and steppers are a damn sight more controllable during prototyping. But would FPath be able to react fast enough to that kind of real-time movement? Even camera refresh rate might prove problematic, unless there's enough deliberate damping/ramping of the coil motion.
 
I would say that he camera refresh rate will be the limiting factor controlling the reaction time. The Walnut software can handle a 30 FPS rate as long as the frame size is something small like 640x480. At a larger sizes like 1920x1080 it will still make decisions but it will start to discard frames. The communication between the Walnut Server on the PC and the Walnut Client on the Beaglebone Black is Ethernet fast.

You might want to stay with steppers though as a first pass. The stepper driver code in Walnut is quite advanced. It runs in the PRU on the BBB which is essentially a 100MHz realtime CPU within a CPU. Steppers can be turned on and off and their step rate changed all without any gaps or long/short pulses on the other motors.
 
Post a Comment

<< Home

This page is powered by Blogger. Isn't yours?

Subscribe to
Posts [Atom]

View mobile version