To be as clear as possible, we first define the following names:
- PlantImager: hardware control of the ROMI 3D plant imager.
- VirtualPlantImager: simulate the plant imager using LPY to generate virtual plants and Blender for rendering. We recommend using it inside a docker container.
The API documentation of the plant-imager library can be found here: https://romi.github.io/plant-imager/
Clone the repository and initialize the submodules (plantdb & romistask).
In a terminal:
# Clone the sources (here get the 'dev_lyon' branch):
git clone https://github.com/romi/plant-imager --branch dev_lyon
# Move to the cloned repository:
cd plant-imager
# Initialize and update the sub-modules:
git submodule init # only do this ONCE if the sub-module have not yet been initialized!
git submodule updateObviously you first have to follow the getting started instructions.
The simplest way to use the docker image is to pull the pre-built roboticsmicrofarms/plantimager docker image as follows:
docker pull roboticsmicrofarms/plantimager:latestIn this repository, you will find a dedicated script, named build.sh, in the docker/plantimager/ directory.
./docker/plantimager/build.shBy default, this build script will create a docker image named roboticsmicrofarms/plantimager:latest.
If you want more build options (specific branches, tags, ...), type ./docker/plantimager/build.sh --help.
In the docker/plantimager/ directory, you will also find a convenience script named run.sh.
To get usage information, from the plant-imager repository root folder:
./docker/plantimager/run.sh -hFor example, to generate a new plant scan dataset, here named my_scan, simply do:
./docker/plantimager/run.sh \
-c "romi_run_task Scan /myapp/db/my_scan --config plant-imager/config/hardware_scan_rx0.toml"For more information have a look at the ROMI documentation.
The simplest way to use the docker image is to pull the pre-built roboticsmicrofarms/virtualplantimager docker image as follows:
docker pull roboticsmicrofarms/virtualplantimager:latestIn this repository, you will find a dedicated script, named build.sh, in the docker/virtualplantimager/ directory.
./docker/virtualplantimager/build.shBy default, this build script will create a docker image named roboticsmicrofarms/virtualplantimager:latest.
If you want more build options (specific branches, tags...), type ./docker/virtualplantimager/build.sh -h.
In the docker/virtualplantimager/ directory, you will also find a convenience script named run.sh.
To get usage information, from the plant-imager repository root folder:
./docker/virtualplantimager/run.sh -hFor example, to generate a new virtual plant scan dataset, named vplant_test, simply do:
./docker/virtualplantimager/run.sh --testFor more information have a look at the ROMI documentation.
To use the VirtualPlantImager, we strongly recommend using the docker image as installing from the sources may get messy!
However, installing from the sources should go smoothly if you plan to use the PlantImager.
First follows the instructions here to clone the sources, if not done yet.
Create a conda environment named plant_imager and install required dependencies:
conda create -n plant_imager python=3.10ℹ️ Accepted Python version ranges from 3.8 to 3.11 (included).
You may now proceed to install the python requirements and packages:
conda activate plant_imager # Don't forget to activate the environment!
# Install `plantdb` from sub-modules:
python -m pip install -e ./plantdb/src/commons/
# Install `romitask` from sub-modules:
python -m pip install -e ./romitask/
# Install `plant-imager`:
python -m pip install -e .ℹ️ The
-eoption install the source in editable mode. Detailed explanations can be found here.
First follows the instructions here to clone the sources, if not done yet.
sudo apt-get install libgl1-mesa-dev libxi6 gccCreate a conda environment named plant_imager and install required dependencies listed in conda/lpy.yaml:
conda create -n plant_imager python=3.10
conda env update -n plant_imager --file conda/lpy.yamlℹ️ Accepted Python version ranges from 3.8 to 3.11 (included).
We use Blender's embedded Python interpreter to run a flask server to communicate (data and config) and generate images of virtual plants.
We thus have to:
- download and install Blender;
- install the
plantimagerlibrary and other packages, likeflask, for Blender's embedded Python interpreter.
ℹ️ For now
2.93.16is the latest version of Blender we tested our tools against.
Download Blender 2.93.16, extract the archive and move its contents to ${BLENDER_PATH}:
BLENDER_PATH="/opt/blender"
BLENDER_URL="https://ftp.halifax.rwth-aachen.de/blender/release/Blender2.93/blender-2.93.16-linux-x64.tar.xz"
wget --progress=bar:force:noscroll $BLENDER_URL
tar -xJf blender-2.93.16-linux-x64.tar.xz --directory ${BLENDER_PATH} --strip-components=1 # sudo might be required here!
rm blender-2.93.16-linux-x64.tar.xzTo be able to install packages for Blender's embedded Python interpreter, we change the owner of the corresponding directory:
# Give 'r+w' rights over Blender's embedded Python directory to the non-root user:
chown -R ${USER} ${BLENDER_PATH}/2.93/python/To be able to call the blender executable, add the ${BLENDER_PATH} path to your $PATH as follows:
echo 'export PATH="${BLENDER_PATH}:${PATH}"' >> ~/.bashrcTo install dependencies for Blender's embedded Python interpreter, from the plant-imager root directory simply do:
# Don't forget to activate the environment!
conda activate plant_imager
# Use `pip` from current conda environment to install dependencies for Blender's embedded Python interpreter:
python -m pip \
--python ${BLENDER_PATH}/2.93/python/bin/python3.9 \
install --no-cache-dir \
--prefix ${BLENDER_PATH}/2.93/python/ \
.[virtual]ℹ️ Here we use
pythonandpipfrom theplant_imagerconda environment to install dependencies for Blender's embedded Python interpreter thanks to the--pythonflag. We also install the packages (plantimagerand the 'virtual' extra dependencies) to${BLENDER_PATH}/2.93/python/with the--prefixflag.
Finally, you can install the sources for plant-imager.
From the plant-imager root directory, using the plant_imager conda environment, it is done as follows:
# Don't forget to activate the environment!
conda activate plant_imager
# Install `plantdb` from sub-modules:
python -m pip install -e ./plantdb/src/commons/
# Install `romitask` from sub-modules:
python -m pip install -e ./romitask/
# Install `plant-imager`:
python -m pip install -e .ℹ️ The
-eoption install the source in editable mode. Detailed explanations can be found here.