Custodia-Meta
This repo in meant as a meta-repos for Custodia project. Custodia is kinda big project involving controlling a Robotino robot using a Raspberry pi (Custodia-rpi) which uses a Webcam (JavaCamServer) and reports to a central server (JavaRepeatServer), written in Java. This central server is also charged with relaying messages from various sensors (Custodia-sensors) and a web interface (Custodia-web) as well as an Engine to do all the heavy lifting (Custodia-Engine).
It is meant to be used in conjunction with meta, a tool for checking out and keeping track of many different git Repositories.
Go on meta's repo and follow the instruction there. Basically, install nodeJs, install npm and run npm i -g meta
Launch your favorite console with node and meta installed, go to the folder where you want the project and run meta git clone https://github.com/APP-RS-OC-Polytech-2020/Custodia-Meta.git
. Follow the prompts and Enjoy !
Open the meta file and do a git clone
of each url under "projects"
. You should get about the same result as doing it with meta.
As this project is still under developpement, some part aren't standalone, at all. Basically, most of the project needs JavaRepeatServer (and thus, a JVM of your choice) to work properly. The rest is more or less optional, although you'll definetly need Custodia-web if you want any kind of human interface.
You'll want to make sure you have something that can compile and run Java apps. We used Eclipse IDE, and you may find some project files for this ide in the repos. You'll need it for the Custodia-rpi project.
Please note that Hardware is important, especially if you want to run Custodia-rpi, as it depends on a Robotino robot and, to a lesser extent, a Raspberry pi (even though due to the nature of java, it'll run fine on a PC with almost any OS). You'll want to make sure you have your robotino properly configured to send and receive info from the API wrapper.
You'll also want to make sure you have something that can run PHP code and show webpages. Like a webserver. Or at least grab and configure a simple PHP server. We only had a PHP 4 server on hand, so you may find some deprecated code in the web repo, but it should run fine on modern PHP. You'll also want to get a MySQL DB running. It's optional, but recommended as some parts of the project (Custodia-web) will not work without it.
You'll also need a bunch of hardware for Custodia-sensors. At least an ESP 8.266 Node MCU to run the code and some familiarity with arduino developement. You might want to get some of the sensors we had (laser, temp, gasses).
Once you have all of this, it gets easier.
We'll go on project by project.
⚠️ NOTE: This doc may not exactly follows the child repos. When in doubt follow the README of the child repos they're usually more up to date than this one.
Grab one of the releases and run in your favorite console. If in doubt run with -help
.
Or go the long way and import the project into your IDE or compile the classes under /src/, runnable class is main.java
.
ℹ️ You'll need this part for all other parts to work as intended. The rest is more or less optional
Move the project files to the root of the web server. Run using index.php
. If you have the pre-requisites, it should go down smoothly.
ℹ️ This part has the only human-facing interface.
Grab one of the releases and run using the jar (if unsure, run with -help
, it'll tell you what it needs). Or you can go the long way and import the project into you IDE or compile the classes under /src/. Runnable classes are main.java
for full console support or WebCamAPICameraStream.java
for simplier support.
ℹ️ You'll need a supported webcam for that. The code is pretty generic and should work with most USB webcam on windows and linux.
⚠️ Some IPs are hardcoded in if you run without console support. You'll want to edit them. They're inWebCamAPICameraStream.java
Import the project into your IDE or compile the classes. Make sure you have the dependencies for robotino-api as well as the java wrapper for it. And a robotino robot. Run using Main.java
.
⚠️ IPs for robotino and server are hardcoded in. You'll have to edit them. They're inMain.java
Grab the project. Change wifi infos to your liking inside the code. Upload to ESP using your favorite method. Switch on ESP.