Giter VIP home page Giter VIP logo

pardus's Introduction

PARDUS

Remote (network) control robotics and vision automation standard

PARDUS Title


โš ๏ธ NOTE: The PARDUS project is NOT accepting pull requests at this stage of development. Any pull requests will be either blocked, ignored and/or deleted. I welcome bug reports, feature requests and issues / queries.


This project is released under the following licenses:

For source code (including CAD files) and compiled code: the GNU GENERAL PUBLIC LICENSE Version 3

For documentation: the GNU Free Documentation License, Version 1.3


PARDUS was published in abstract form in the Journal of Pathology, 2020. Citation is: Tadrous, P. J. (2020, March). Pardus: An Affordable Open Source Hardware and Software Robotic Platform for Standard Microscopes. In JOURNAL OF PATHOLOGY (Vol. 250, pp. 15-15). 111 RIVER ST, HOBOKEN 07030-5774, NJ USA: WILEY.

You can get free open access to the article through the following links:


Introduction

The [P]rogrammable, [A]ffordable, [R]emote-controlled [D]rive [U]tility [S]tandard is an open source hardware and software combination I developed for general control of motorised robotic equipment with camera feedback control (as well as limit switches - both real and virtual). I developed the original working system back in mid 2019 using a motorised microscope as the example use-case (see poster PDF link above) but it is designed for general robotics and vision control over a network.

This software part of the standard is composed of three cooperating and communicating programs:

  1. The PARD Server: This computer runs a frame grabber connected to a video device and controls multiple stepper motors with inputs from limit switches. It receives instructions from the user as to how to move the motors and when and how to acquire images from the camera and where to send those images. The user can give many instructions via a GUI running on the server but the real power comes from the fact that the user can instead log in remotely and give instructions from a remote computer over the internet or intranet using the client program discussed below.
  2. The PARD Client program runs on a remote computer (multiple OS are supported including MS Windows). The client may also be run on the server machine. Via the PARD client the user can give instructions to the remote motor/camera system either as single manual commands or through a script for automatic execution of a series of commands such as whole slide XY scanning or Z scanning (or both) and many other procedures that may involve image capture at each stage. The images captured are sent via the network to be saved and / or processed on the client computer.
  3. The PARD Daemon. What has been described so far with the client/server system is the ability to remotely move a series of motors and automatically acquire images which is fine if all you want to do is acquire image datasets with a robot (for example to create a whole slide image for archiving or 3D deconvolution or digital pathology using a robotic microscope). So far, that has all been done before with previous systems. However, the PARDUS system goes one step further and allows you to perform custom image processes on acquired images on the client side via a third program called the PARD Daemon which runs in the background on the client computer to execute custom commands. These commands may use completely different software to the PARDUS but the results are made available to the PARD Client. This allows information derived from the custom processing of captured images to be fed back into and guide the progress of the remote image and robotic procedures on the server according to some custom algorithm designed by the user. This also divides processing labour with image processing taking place on the client while robotic and image capture functions take place on the server with the results of image processing being fed back to guiide the actions of the robot on the server as part of a single custom automation algorithm.

State of Development

A full working demo system was built and tested mid 2019 using a Raspberry Pi as server connected to 3 Nema 17 motors and limit switches with a custom PCB and also to a USB camera. These were fitted to a Zeiss Standard microscope (shown in the above title picture) to effect automated slide scanning for AAFB detection (detection of tuberculosis bacilli in biopsies) using an MS Windows-based remote client. My Pathological Society Poster PDF will give you more details of the system and some results.

Unfortunately the COVID Pandemic got in the way of me preparing the code for release back then and after that I was in the middle of making the PUMA Microscope system which took precedence. Only now have I returned to the PARDUS system because it fits in well with the stage of development of the PUMA project - being ready to explore image acquisition and more advanced techniques. So I have begun the long job of putting the PARDUS code into a state that would allow useful publication.

I have decided to re-work the PARDUS standard to make the PARD Server run on any Linux computer (with suffient resources) so that it is no longer restricted to a Raspberry Pi. This is because, although the RPi system worked well for the low powered applications I was doing for the demo system in 2019, it is not very scaleable and limits the potential of the project. Likewise I want to avoid reliance on a custom PCB in favour of already existing open source interface hardware. Therefore both the source code and the hardware standard defined in the original PARDUS need extensive revision and I will do what I can but this project is unfunded and done in my own time so progress may be quite slow as I have many other commitments.

For now I have extracted the basic image acquisition aspects of the PARD Server and put them into a fully functioning 'Stand Alone' program called PARD Capture which is available here in this repository. This has some extended features that were not available in the original PARD Server but it also lacks others (there is no server loop, no motor/limit switch control interface and no PARDUS Command Script (PCS) interpreter). However, it's a start. PARD Capture is a Linux-based image capture program for microscopy, astronomy and other scientific imaging applications. See the ReadMe.md file in the PARD_Capture folder of this repository for more details.

PJT

First Written: 11.11.2022

Last Edit: 14.11.2022

pardus's People

Contributors

tadpath avatar

Stargazers

 avatar  avatar Erik Repo avatar Hasan Tahir Abbas avatar Francesco avatar Stemfie3D avatar  avatar Laurent Thomas avatar

Watchers

Kostas Georgiou avatar  avatar  avatar Erik Repo avatar

pardus's Issues

Bug (fixed): PARD Capture: User's flat-field choice ignored

In PARD Capture if the user ticks the box to apply flat field correction, the correction was not applied.
Reason: Following a code overhaul the 'dark field' correction check box status was being read instead of the 'flat field' correction check box status when it came to deciding whether to apply the flat field correction. Hence, unless the 'dark field' correction happened also be be ticked, the flat field choice was ignored and correction not applied
Status: This bug has now been fixed as of upload pardcap.c 20.11.22

Known bug in version 1.1.0.22.05.23 - read settings file syntax error

Known bug:
In version 1.1.0.22.05.23:

Behaviour:
When attempting to load a saved settings file you can be prevented from doing this with an error message "Syntax error. Too many arguments for windex_dpm"

Workaround:
Open the settings file in a text editor and locate the line (it will be near the end of the file) that says:
windex_dpm No or NA

then just delete the 'or NA' from that line and save it. The file will load without problem.

Solution:
The source code line 12642 states:
12642 change "No to NA"

this must be changed to:
12642 change "No"

This will be done for the next update but users can make this change now in their v. 1.1.0.22.05.23 source code and re-compile to mitigate the problem from occurring in the mean time.

PJT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.