|
Hi,
I implemented a ZStage, but I was wondering that in comparison to the XYStage, a few API callback functions seem to be missing. For instance, there are no callbacks for: Home() Stop() * Why are these callback functions missing ? As there is no Home(), I implemented my stage calibration code in SetOrigin(). Thus, whenever SetOrigin() is called, the ZStage will calibrate itself and set the zero position to the absolute middle position of the stage. Once calibration is complete, the Stage knowns its absolute position and absolute positioning functions like SetPositionUm() can be used. * Since there is no Stop(), it seems to me that there is no way to cancel the calibration routine, right ? However, at the moment I'm still unable to call SetOrigin() as in the micro-manager GUI there seems to be no button for that. The SetOrigin() button in the "XY List" seems to be for the XYStage only. * So how can I call SetOrigin() on a ZStage from the micro-manager GUI ? regards, Stefan ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ micro-manager-general mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/micro-manager-general |
|
Hi Stefan,
> I implemented a ZStage, but I was wondering that in comparison to the > XYStage, a few API callback functions seem to be missing. > > For instance, there are no callbacks for: > > Home() > Stop() > > * Why are these callback functions missing ? No good reason other than that the need for these functions has never come up. > As there is no Home(), I implemented my stage calibration code in > SetOrigin(). > Thus, whenever SetOrigin() is called, the ZStage will calibrate itself > and set the zero position to the absolute middle position of the stage. > Once calibration is complete, the Stage knowns its absolute position and > absolute positioning functions like SetPositionUm() can be used. > > * Since there is no Stop(), it seems to me that there is no way to > cancel the calibration routine, right ? Correct. > However, at the moment I'm still unable to call SetOrigin() as in the > micro-manager GUI there seems to be no button for that. > The SetOrigin() button in the "XY List" seems to be for the XYStage only. > > * So how can I call SetOrigin() on a ZStage from the micro-manager GUI ? Even worse, it seems that there is no API call in the Core that calls the ZStage SetOrigin function. I just added that function. It should appear in the next nightly build. Once that is in, you can type the following in the Script Editor: mmc.setOrigin("ZStage"); (replace "ZStage" with the name of your ZStage), and your adapter's SetOrigin function should be called. You can have this happen on Startup by saving a file containing your BeanShell code named "MMStartup.bsh" in the Micro-Manager directory. Best, Nico ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ micro-manager-general mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/micro-manager-general |
|
Hi,
On 11/08/2011 06:14 AM, Nico Stuurman wrote: >> * Since there is no Stop(), it seems to me that there is no way to >> cancel the calibration routine, right ? > > Correct. > >> However, at the moment I'm still unable to call SetOrigin() as in the >> micro-manager GUI there seems to be no button for that. >> The SetOrigin() button in the "XY List" seems to be for the XYStage only. >> >> * So how can I call SetOrigin() on a ZStage from the micro-manager GUI ? > > Even worse, it seems that there is no API call in the Core that calls the ZStage SetOrigin function. > I just added that function. It should appear in the next nightly > > mmc.setOrigin("ZStage"); > > (replace "ZStage" with the name of your ZStage), and your adapter's SetOrigin function should be called. > You can have this happen on Startup by saving a file containing your BeanShell code named "MMStartup.bsh" in the Micro-Manager directory. thank you. Maybe it would be an option to support XYZ coordinates in the "XY List" dialog ? This way not only the position of the sample could be stored, but also the focus position. Likewise the calibration support for XY stages would be available for Z stages as well. Of course there needs to be an option to allow disabling of that functionality, considering that the possible Z positions change with each lens. It also makes me think if my understanding of how ZStages work in micro-manager is correct. Assuming that there are physical focusing stages that do not report their absolute position after powering up, absolute positioning is in general only possible after the stage was calibrated. Otherwise the stage would simply not know its absolute position. This would however also mean that at the moment in micro-manager only relative stage positioning is possible for Z stages that can not report their absolute position without prior calibration, right ? So in the best case the stage would consider its power-up position as origin. In the worst case the stage reports an arbitrary (uninitialized) position value and any non-relative positioning command could cause the stage to travel until it reaches an end of the axis. If the lens hits the sample during that process, it could potentially lead to damage. IMHO only using relative positioning would work as well, but considering the high price of a lens, I would like to be able to use movement limits. This way one could define absolute focusing limits (i.e. through the device properties). For instance if one would like micro-manager to take a number of pictures automatically, one could initially define lens limits (e.g. by positioning the lens very close to the sample and defining this position as limit). Then, during automatic imaging, autofocus could only move as close to the sample as defined by the limit. This way it would be ensured that the lens can never touch the sample. Is a functionality like this currently supported by micro-manager ? IMHO setting limits is also possible with relative positioning, but the limit would have to be set each time after power-up. regards, Stefan ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ micro-manager-general mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/micro-manager-general |
|
Administrator
|
On Nov 8, 2011, at 2:41 AM, Stefan Schönleitner wrote: > Maybe it would be an option to support XYZ coordinates in the "XY List" dialog ? The dialog already supports recording Z-stages. You can even select which stages should be recorded. > It also makes me think if my understanding of how ZStages work in > micro-manager is correct. > Assuming that there are physical focusing stages that do not report > their absolute position after powering up, absolute positioning is in > general only possible after the stage was calibrated. > Otherwise the stage would simply not know its absolute position. > > This would however also mean that at the moment in micro-manager only > relative stage positioning is possible for Z stages that can not report > their absolute position without prior calibration, right ? No, every stage supports absolute positioning. Whether or not the absolute position is the same after rebooting the device will depend on the device. > So in the best case the stage would consider its power-up position as > origin. In the worst case the stage reports an arbitrary (uninitialized) > position value and any non-relative positioning command could cause the > stage to travel until it reaches an end of the axis. If the lens hits the sample during that process, it could potentially lead to damage. All these issue arise only when the users tries to use the same set of absolute positions after power cycling the device. If you have an encoded Z-stage you can do so, if you do not have and encoded stage you should not rely on this. > For instance if one would like micro-manager to take a number of > pictures automatically, one could initially define lens limits (e.g. by > positioning the lens very close to the sample and defining this position > as limit). > Then, during automatic imaging, autofocus could only move as close to > the sample as defined by the limit. > This way it would be ensured that the lens can never touch the sample. > > Is a functionality like this currently supported by micro-manager ? No, there is no general mechanism for stage limits. The procedure you describe could be implemented in the GUI code (although it would be nicer to do this at a lower level). Best, Nico ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ micro-manager-general mailing list [hidden email] https://lists.sourceforge.net/lists/listinfo/micro-manager-general |
| Powered by Nabble | See how NAML generates this page |
