diff options
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-robotathome.spec | 1023 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 1025 insertions, 0 deletions
@@ -0,0 +1 @@ +/robotathome-1.1.9.tar.gz diff --git a/python-robotathome.spec b/python-robotathome.spec new file mode 100644 index 0000000..438a61d --- /dev/null +++ b/python-robotathome.spec @@ -0,0 +1,1023 @@ +%global _empty_manifest_terminate_build 0 +Name: python-robotathome +Version: 1.1.9 +Release: 1 +Summary: This package provides a Python Toolbox with a set of functions to assist in the management of Robot@Home2 Dataset +License: MIT +URL: https://github.com/goyoambrosio/RobotAtHome2 +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/8a/87/10b8da219b97a0595b7e12888589aa68eef5be9ffb50ab71be9ed1343c1c/robotathome-1.1.9.tar.gz +BuildArch: noarch + +Requires: python3-urllib3 +Requires: python3-requests +Requires: python3-tqdm +Requires: python3-loguru +Requires: python3-pandas +Requires: python3-humanize +Requires: python3-click +Requires: python3-numpy +Requires: python3-opencv-python +Requires: python3-opencv-contrib-python +Requires: python3-matplotlib +Requires: python3-notebook +Requires: python3-ipywidgets +Requires: python3-opencv-python +Requires: python3-opencv-contrib-python +Requires: python3-matplotlib +Requires: python3-notebook +Requires: python3-ipywidgets + +%description +# Robot@Home2 Dataset Toolbox # + +[](https://pypi.org/project/robotathome/ "R@H2 as PyPI package ready to install") +[](https://doi.org/10.5281/zenodo.7811795 "The downloadable R@H2 dataset in Zenodo") +[](https://doi.org/10.5281/zenodo.7812048 "This repository released on Zenodo") +[](https://drive.google.com/drive/folders/1ENnxbKP5MJdlGl2Q93WTbIlofuy6Icxq) + + + +The Robot-at-Home dataset (Robot@Home, paper +[here](http://mapir.uma.es/papersrepo/2017/2017-raul-IJRR-Robot_at_home_dataset.pdf)) +is a collection of raw and processed data from five domestic settings compiled +by a mobile robot equipped with 4 RGB-D cameras and a 2D laser scanner. Its main +purpose is to serve as a testbed for semantic mapping algorithms through the +categorization of objects and/or rooms. + +Nevertheless, the Robot@Home dataset has been updated to **Robot@Home2**. This +update is made up of a relational database file in SQLite format with all the +original data and a size of only 2,2 GB. The image and scene files have been +reorganized and now takes only 25,9 GB. + +The database, named `rh.db`, is a relational sql database accessible with the +SQLite engine that usually accompanies the python environment and is popularly +used in the development of current applications in both fixed (linux and +windows) and mobile environments. (android). + +The data files have been organized into two main groups. On the one hand, the +files with RGBD data (RGB images and depth images) and on the other the 3D +scenes in point cloud files. + +The intensity (RGB) and depth (D) image files have a standard *png* format so +they can be opened directly. In addition, the files are linked to the data in +the database through tables that relate them. Moreover, the database contains +tables that relate the files of the new version with those of the old version. + +In the case of 3D scene files, these are plain text files that store the +coordinates and colors of the points that make up the 3D cloud. These files can +be easily visualized with current software for the visualization of point +clouds like [MeshLab](https://www.meshlab.net/). + +You no longer need to waste time diving the obscure data formats (despite an API +-**dataset.py**- for that is provided). Instead, you can simply surf the dataset +through SQL queries or the new toolbox. + +The toolbox (**toolbox.py**) has been coded for various purposes. The first one +consists of encapsulating frequent queries as functions and integrating the +results with a data analysis library such as Pandas. Pandas library is widely +used in data science and machine learning disciplines in the Python framework. +The second one is the integration of the data set with the GluonCV library to +apply deep learning algorithms in artificial vision. + +## Prerequisites: Installing the Python Development Environment + +Launched in 1991, Python has achieved enormous popularity in the scientific +community in recent years. Python is an interpreted high-level general-purpose +programming language with a many useful features. It's platform independent, +simple, consistent and with a great code readability. Moreover, it has an +extensive set of libraries that help to reduce development time. + +Artificial Intelligence (AI) and Machine Learning (ML) projects differ from +software projects in other areas due to differences in the technology stack and +the skills needed to deal with them. + +Python offers AI and ML programmers many features that help to develop and test +complex algorithms. Even in Computer Vision (CV), there are solid software +libraries that allow developers to focus on their research areas. + +There are several different Python distributions, each one created with a +different approach and for different audiences. + +Robot@Home2 Toolbox is written in Python and works well with Anaconda which is a +distribution of the Python and R programming languages for scientific computing. +Of course, other distributions can be used to run the toolbox. + +### Short installation on Linux + +To install Anaconda in Linux you must follow these steps. + +Download the Anaconda installer + +```shell +$ cd ~/Downloads +$ wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh +``` + +> replace `~/Downloads` with the path of your choice + + +Install the distribution + +```shell +$ bash ~/Downloads/Anaconda3-2022.10-Linux-x86_64.sh +``` + +> include the `bash` command regardless of whether or not you are using Bash shell. + +Review and agree the license agreement. Accept the default install location. + +When the installer prompts *“Do you wish the installer to initialize Anaconda3 by running conda init?”*, we recommend *“yes”*. + +Finally, for the installation to take effect + +```shell +$ source ~/.bashrc +``` + + +For more detailed/updated installation information, go to [Anaconda installation page](https://docs.anaconda.com/anaconda/install/). + +### Installation on Windows + +Due to the graphic abundance of the installation procedure, we refer you to +the specific [Anaconda documentation page for installation on Windows](https://docs.anaconda.com/anaconda/install/windows/). + +### Verifying your installation on Linux + +Enter the command `python`. This command runs the Python shell. If Anaconda is +installed and working, the version information it displays when it starts up +will include `“Anaconda”`. To exit the Python shell, enter the `quit()` command. + + $ python + Python 3.9.16 (main, Jan 11 2023, 16:05:54) + [GCC 11.2.0] :: Anaconda, Inc. on linux + Type "help", "copyright", "credits" or "license" for more information. + >>> quit() + +You can also display a list of installed packages and their versions running `conda list` + + $ conda list + # packages in environment at /home/user/anaconda3: + # + # Name Version Build Channel + ... + +### Verifying in Windows + +Click Start, search, or select **Anaconda Prompt** from the menu. After opening +Anaconda Prompt on the terminal enter the command `python`. This command runs +the Python shell. If Anaconda is installed and working, the version +information it displays when it starts up will include `Anaconda` . To exit +the Python shell, enter the command `quit()`. + +As in Linux you can also display a list of installed packages and their +versions running `conda list` + +### Making a virtual environment + +A virtual environment is a Python environment such that the Python interpreter, +libraries and scripts installed into it are isolated from those installed in +other virtual environments + +When a virtual environment is active, the installations tools install Python +packages into the virtual environment without needing to be told to do so +explicitly and without interfering in other virtual environments. + +That's the reason why it's recommended to work with a virtual environment +specifically for Robot@Home2. To do that with conda + +```shell +$ conda create --name rh python=3.9 +``` + +> change `rh` to a name of your choice + +> Robot@Home2 runs with python 3.6 or higher. Also, version 3.6 is recommended for +> Windows + +once it has been created, it can already be activated + +```shell +$ conda activate rh +``` +to deactivate run + +```shell +$ conda deactivate +``` + +### Literate programming with Jupyter + +Literate programming is a programming paradigm introduced by Donald Knuth in +which a computer program is given an explanation of its logic in a natural +language, such as English, interspersed with snippets of macros and traditional +source code. The approach is typically used in scientific computing and in data +science routinely for reproducible research and open access purposes. + +On the other hand, the **[Jupyter](https://jupyter.org) \*Notebook** is an open-source web application that +allows you to create and share documents that contain live code, equations, +visualizations and narrative text. Additionally **JupyterLab** is a web-based +interactive development environment for Jupyter notebooks, code, and data. + +Jupyter is an application of literate programming and Robot@Home2 includes +Jupyter notebooks for introductions, easy learning, and technical explanations. + +Installing Jupyter in Anaconda distribution is an easy task + +```shell +$ conda install -c conda-forge jupyterlab +``` + +> remember to previously activate your virtual environment with \`conda activate\` command + +If you have followed the previous sections you have the right working +environment to open [this notebook](https://github.com/goyoambrosio/RobotAtHome_API/blob/master/notebooks/10-Download-and-install.ipynb) with Jupyter to download and install both the toolbox and the dataset. + +However, if jupyter notebook is not your choice right now you can try the +following instructions. + + +## Time to install Robot@Home2 + +### Installing the toolbox + +Robot@Home2 Toolbox can be installed through the Python package manager. + +1. Confirm you are in the right virtual environment + + ```shell + $ conda activate rh + ``` + +2. Enter this command to install `robotathome` with [Jupyter](https://jupyter.org) to run notebooks. + + ```shell + $ pip install robotathome + ``` + + > `pip` is a common Python package manager that is included in Anaconda and many other distributions + + If you have not previously installed `jupyterlab` you can do it right now adding + the `interactive` option to the `pip` command as follows: + + ```shell + $ pip install robotathome[interactive] + ``` + > `interactive` will include jupyter and needed libraries. + +3. Run `python` and import the `robotathome` library + + ``` + $ python + Python 3.10.9 (main, Jan 11 2023, 15:21:40) [GCC 11.2.0] on linux + Type "help", "copyright", "credits" or "license" for more information. + >>> import robotathome as rh + >>> print (rh.__version__) + 1.1.1 + ``` + +4. Congratulations ! the `robotathome` package has been installed successfully. + + +### Downloading the dataset + +Robot@Home resides in Zenodo site where all data versions can be downloaded. +Latest version ([v2.0.3](https://zenodo.org/record/7811795)) is composed of two +files: `Robot@Home2_db.tgz` and `Robot@Home2_files.tgz`. The first one contains the +database, and the second one contains the bunch of RGBD images and 3D scenes + +You can choose to download it on your own or through the new brand toolbox. + +In case you are considering Linux + +```shell +$ wget https://zenodo.org/record/7811795/files/Robot@Home2_db.tgz +$ wget https://zenodo.org/record/7811795/files/Robot@Home2_files.tgz +``` + +check the files integrity + +```shell +$ md5sum Robot@Home2_db.tgz +d34fb44c01f31c87be8ab14e5ecd0767 Robot@Home2_db.tgz + +$ md5sum Robot@Home2_files.tgz +c55465536738ec3470c75e1671bab5f2 Robot@Home2_files.tgz +``` + +and to finish unzip files + +```shell +$ pv /home/user/Downloads/Robot@Home2_db.tgz | tar -xzf - -C /home/user/WORKSPACE/ +$ pv /home/user/Downloads/Robot@Home2_files.tgz | tar -xzf - -C /home/user/WORKSPACE/files +``` + +or even better, now you can do the same programmatically using the toolbox + +```python +import robotathome as rh + +# Download files +rh.download('https://zenodo.org/record/7811795/files/Robot@Home2_db.tgz', '~/Downloads') +rh.download('https://zenodo.org/record/7811795/files/Robot@Home2_files.tgz', '~/Downloads') + +# Compute md5 checksums +md5_checksum_db = rh.get_md5('~/Downloads/Robot@Home2_db.tgz') +md5_checksum_files = rh.get_md5('~/Downloads/Robot@Home2_files.tgz') + +# Check the files integrity and download +if md5_checksum_db == 'd34fb44c01f31c87be8ab14e5ecd0767': + rh.uncompress('~/Downloads/Robot@Home2_db.tgz', '~/WORKSPACE') +else: + print('Integrity of Robot@Home2_db.tgz is compromised, please download again') + +if md5_checksum_files == 'c55465536738ec3470c75e1671bab5f2': + rh.uncompress('~/Downloads/Robot@Home2_files.tgz', '~/WORKSPACE/files') +else: + print('Integrity of Robot@Home2_files.tgz is compromised, please download again') +``` + + + + + +%package -n python3-robotathome +Summary: This package provides a Python Toolbox with a set of functions to assist in the management of Robot@Home2 Dataset +Provides: python-robotathome +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-robotathome +# Robot@Home2 Dataset Toolbox # + +[](https://pypi.org/project/robotathome/ "R@H2 as PyPI package ready to install") +[](https://doi.org/10.5281/zenodo.7811795 "The downloadable R@H2 dataset in Zenodo") +[](https://doi.org/10.5281/zenodo.7812048 "This repository released on Zenodo") +[](https://drive.google.com/drive/folders/1ENnxbKP5MJdlGl2Q93WTbIlofuy6Icxq) + + + +The Robot-at-Home dataset (Robot@Home, paper +[here](http://mapir.uma.es/papersrepo/2017/2017-raul-IJRR-Robot_at_home_dataset.pdf)) +is a collection of raw and processed data from five domestic settings compiled +by a mobile robot equipped with 4 RGB-D cameras and a 2D laser scanner. Its main +purpose is to serve as a testbed for semantic mapping algorithms through the +categorization of objects and/or rooms. + +Nevertheless, the Robot@Home dataset has been updated to **Robot@Home2**. This +update is made up of a relational database file in SQLite format with all the +original data and a size of only 2,2 GB. The image and scene files have been +reorganized and now takes only 25,9 GB. + +The database, named `rh.db`, is a relational sql database accessible with the +SQLite engine that usually accompanies the python environment and is popularly +used in the development of current applications in both fixed (linux and +windows) and mobile environments. (android). + +The data files have been organized into two main groups. On the one hand, the +files with RGBD data (RGB images and depth images) and on the other the 3D +scenes in point cloud files. + +The intensity (RGB) and depth (D) image files have a standard *png* format so +they can be opened directly. In addition, the files are linked to the data in +the database through tables that relate them. Moreover, the database contains +tables that relate the files of the new version with those of the old version. + +In the case of 3D scene files, these are plain text files that store the +coordinates and colors of the points that make up the 3D cloud. These files can +be easily visualized with current software for the visualization of point +clouds like [MeshLab](https://www.meshlab.net/). + +You no longer need to waste time diving the obscure data formats (despite an API +-**dataset.py**- for that is provided). Instead, you can simply surf the dataset +through SQL queries or the new toolbox. + +The toolbox (**toolbox.py**) has been coded for various purposes. The first one +consists of encapsulating frequent queries as functions and integrating the +results with a data analysis library such as Pandas. Pandas library is widely +used in data science and machine learning disciplines in the Python framework. +The second one is the integration of the data set with the GluonCV library to +apply deep learning algorithms in artificial vision. + +## Prerequisites: Installing the Python Development Environment + +Launched in 1991, Python has achieved enormous popularity in the scientific +community in recent years. Python is an interpreted high-level general-purpose +programming language with a many useful features. It's platform independent, +simple, consistent and with a great code readability. Moreover, it has an +extensive set of libraries that help to reduce development time. + +Artificial Intelligence (AI) and Machine Learning (ML) projects differ from +software projects in other areas due to differences in the technology stack and +the skills needed to deal with them. + +Python offers AI and ML programmers many features that help to develop and test +complex algorithms. Even in Computer Vision (CV), there are solid software +libraries that allow developers to focus on their research areas. + +There are several different Python distributions, each one created with a +different approach and for different audiences. + +Robot@Home2 Toolbox is written in Python and works well with Anaconda which is a +distribution of the Python and R programming languages for scientific computing. +Of course, other distributions can be used to run the toolbox. + +### Short installation on Linux + +To install Anaconda in Linux you must follow these steps. + +Download the Anaconda installer + +```shell +$ cd ~/Downloads +$ wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh +``` + +> replace `~/Downloads` with the path of your choice + + +Install the distribution + +```shell +$ bash ~/Downloads/Anaconda3-2022.10-Linux-x86_64.sh +``` + +> include the `bash` command regardless of whether or not you are using Bash shell. + +Review and agree the license agreement. Accept the default install location. + +When the installer prompts *“Do you wish the installer to initialize Anaconda3 by running conda init?”*, we recommend *“yes”*. + +Finally, for the installation to take effect + +```shell +$ source ~/.bashrc +``` + + +For more detailed/updated installation information, go to [Anaconda installation page](https://docs.anaconda.com/anaconda/install/). + +### Installation on Windows + +Due to the graphic abundance of the installation procedure, we refer you to +the specific [Anaconda documentation page for installation on Windows](https://docs.anaconda.com/anaconda/install/windows/). + +### Verifying your installation on Linux + +Enter the command `python`. This command runs the Python shell. If Anaconda is +installed and working, the version information it displays when it starts up +will include `“Anaconda”`. To exit the Python shell, enter the `quit()` command. + + $ python + Python 3.9.16 (main, Jan 11 2023, 16:05:54) + [GCC 11.2.0] :: Anaconda, Inc. on linux + Type "help", "copyright", "credits" or "license" for more information. + >>> quit() + +You can also display a list of installed packages and their versions running `conda list` + + $ conda list + # packages in environment at /home/user/anaconda3: + # + # Name Version Build Channel + ... + +### Verifying in Windows + +Click Start, search, or select **Anaconda Prompt** from the menu. After opening +Anaconda Prompt on the terminal enter the command `python`. This command runs +the Python shell. If Anaconda is installed and working, the version +information it displays when it starts up will include `Anaconda` . To exit +the Python shell, enter the command `quit()`. + +As in Linux you can also display a list of installed packages and their +versions running `conda list` + +### Making a virtual environment + +A virtual environment is a Python environment such that the Python interpreter, +libraries and scripts installed into it are isolated from those installed in +other virtual environments + +When a virtual environment is active, the installations tools install Python +packages into the virtual environment without needing to be told to do so +explicitly and without interfering in other virtual environments. + +That's the reason why it's recommended to work with a virtual environment +specifically for Robot@Home2. To do that with conda + +```shell +$ conda create --name rh python=3.9 +``` + +> change `rh` to a name of your choice + +> Robot@Home2 runs with python 3.6 or higher. Also, version 3.6 is recommended for +> Windows + +once it has been created, it can already be activated + +```shell +$ conda activate rh +``` +to deactivate run + +```shell +$ conda deactivate +``` + +### Literate programming with Jupyter + +Literate programming is a programming paradigm introduced by Donald Knuth in +which a computer program is given an explanation of its logic in a natural +language, such as English, interspersed with snippets of macros and traditional +source code. The approach is typically used in scientific computing and in data +science routinely for reproducible research and open access purposes. + +On the other hand, the **[Jupyter](https://jupyter.org) \*Notebook** is an open-source web application that +allows you to create and share documents that contain live code, equations, +visualizations and narrative text. Additionally **JupyterLab** is a web-based +interactive development environment for Jupyter notebooks, code, and data. + +Jupyter is an application of literate programming and Robot@Home2 includes +Jupyter notebooks for introductions, easy learning, and technical explanations. + +Installing Jupyter in Anaconda distribution is an easy task + +```shell +$ conda install -c conda-forge jupyterlab +``` + +> remember to previously activate your virtual environment with \`conda activate\` command + +If you have followed the previous sections you have the right working +environment to open [this notebook](https://github.com/goyoambrosio/RobotAtHome_API/blob/master/notebooks/10-Download-and-install.ipynb) with Jupyter to download and install both the toolbox and the dataset. + +However, if jupyter notebook is not your choice right now you can try the +following instructions. + + +## Time to install Robot@Home2 + +### Installing the toolbox + +Robot@Home2 Toolbox can be installed through the Python package manager. + +1. Confirm you are in the right virtual environment + + ```shell + $ conda activate rh + ``` + +2. Enter this command to install `robotathome` with [Jupyter](https://jupyter.org) to run notebooks. + + ```shell + $ pip install robotathome + ``` + + > `pip` is a common Python package manager that is included in Anaconda and many other distributions + + If you have not previously installed `jupyterlab` you can do it right now adding + the `interactive` option to the `pip` command as follows: + + ```shell + $ pip install robotathome[interactive] + ``` + > `interactive` will include jupyter and needed libraries. + +3. Run `python` and import the `robotathome` library + + ``` + $ python + Python 3.10.9 (main, Jan 11 2023, 15:21:40) [GCC 11.2.0] on linux + Type "help", "copyright", "credits" or "license" for more information. + >>> import robotathome as rh + >>> print (rh.__version__) + 1.1.1 + ``` + +4. Congratulations ! the `robotathome` package has been installed successfully. + + +### Downloading the dataset + +Robot@Home resides in Zenodo site where all data versions can be downloaded. +Latest version ([v2.0.3](https://zenodo.org/record/7811795)) is composed of two +files: `Robot@Home2_db.tgz` and `Robot@Home2_files.tgz`. The first one contains the +database, and the second one contains the bunch of RGBD images and 3D scenes + +You can choose to download it on your own or through the new brand toolbox. + +In case you are considering Linux + +```shell +$ wget https://zenodo.org/record/7811795/files/Robot@Home2_db.tgz +$ wget https://zenodo.org/record/7811795/files/Robot@Home2_files.tgz +``` + +check the files integrity + +```shell +$ md5sum Robot@Home2_db.tgz +d34fb44c01f31c87be8ab14e5ecd0767 Robot@Home2_db.tgz + +$ md5sum Robot@Home2_files.tgz +c55465536738ec3470c75e1671bab5f2 Robot@Home2_files.tgz +``` + +and to finish unzip files + +```shell +$ pv /home/user/Downloads/Robot@Home2_db.tgz | tar -xzf - -C /home/user/WORKSPACE/ +$ pv /home/user/Downloads/Robot@Home2_files.tgz | tar -xzf - -C /home/user/WORKSPACE/files +``` + +or even better, now you can do the same programmatically using the toolbox + +```python +import robotathome as rh + +# Download files +rh.download('https://zenodo.org/record/7811795/files/Robot@Home2_db.tgz', '~/Downloads') +rh.download('https://zenodo.org/record/7811795/files/Robot@Home2_files.tgz', '~/Downloads') + +# Compute md5 checksums +md5_checksum_db = rh.get_md5('~/Downloads/Robot@Home2_db.tgz') +md5_checksum_files = rh.get_md5('~/Downloads/Robot@Home2_files.tgz') + +# Check the files integrity and download +if md5_checksum_db == 'd34fb44c01f31c87be8ab14e5ecd0767': + rh.uncompress('~/Downloads/Robot@Home2_db.tgz', '~/WORKSPACE') +else: + print('Integrity of Robot@Home2_db.tgz is compromised, please download again') + +if md5_checksum_files == 'c55465536738ec3470c75e1671bab5f2': + rh.uncompress('~/Downloads/Robot@Home2_files.tgz', '~/WORKSPACE/files') +else: + print('Integrity of Robot@Home2_files.tgz is compromised, please download again') +``` + + + + + +%package help +Summary: Development documents and examples for robotathome +Provides: python3-robotathome-doc +%description help +# Robot@Home2 Dataset Toolbox # + +[](https://pypi.org/project/robotathome/ "R@H2 as PyPI package ready to install") +[](https://doi.org/10.5281/zenodo.7811795 "The downloadable R@H2 dataset in Zenodo") +[](https://doi.org/10.5281/zenodo.7812048 "This repository released on Zenodo") +[](https://drive.google.com/drive/folders/1ENnxbKP5MJdlGl2Q93WTbIlofuy6Icxq) + + + +The Robot-at-Home dataset (Robot@Home, paper +[here](http://mapir.uma.es/papersrepo/2017/2017-raul-IJRR-Robot_at_home_dataset.pdf)) +is a collection of raw and processed data from five domestic settings compiled +by a mobile robot equipped with 4 RGB-D cameras and a 2D laser scanner. Its main +purpose is to serve as a testbed for semantic mapping algorithms through the +categorization of objects and/or rooms. + +Nevertheless, the Robot@Home dataset has been updated to **Robot@Home2**. This +update is made up of a relational database file in SQLite format with all the +original data and a size of only 2,2 GB. The image and scene files have been +reorganized and now takes only 25,9 GB. + +The database, named `rh.db`, is a relational sql database accessible with the +SQLite engine that usually accompanies the python environment and is popularly +used in the development of current applications in both fixed (linux and +windows) and mobile environments. (android). + +The data files have been organized into two main groups. On the one hand, the +files with RGBD data (RGB images and depth images) and on the other the 3D +scenes in point cloud files. + +The intensity (RGB) and depth (D) image files have a standard *png* format so +they can be opened directly. In addition, the files are linked to the data in +the database through tables that relate them. Moreover, the database contains +tables that relate the files of the new version with those of the old version. + +In the case of 3D scene files, these are plain text files that store the +coordinates and colors of the points that make up the 3D cloud. These files can +be easily visualized with current software for the visualization of point +clouds like [MeshLab](https://www.meshlab.net/). + +You no longer need to waste time diving the obscure data formats (despite an API +-**dataset.py**- for that is provided). Instead, you can simply surf the dataset +through SQL queries or the new toolbox. + +The toolbox (**toolbox.py**) has been coded for various purposes. The first one +consists of encapsulating frequent queries as functions and integrating the +results with a data analysis library such as Pandas. Pandas library is widely +used in data science and machine learning disciplines in the Python framework. +The second one is the integration of the data set with the GluonCV library to +apply deep learning algorithms in artificial vision. + +## Prerequisites: Installing the Python Development Environment + +Launched in 1991, Python has achieved enormous popularity in the scientific +community in recent years. Python is an interpreted high-level general-purpose +programming language with a many useful features. It's platform independent, +simple, consistent and with a great code readability. Moreover, it has an +extensive set of libraries that help to reduce development time. + +Artificial Intelligence (AI) and Machine Learning (ML) projects differ from +software projects in other areas due to differences in the technology stack and +the skills needed to deal with them. + +Python offers AI and ML programmers many features that help to develop and test +complex algorithms. Even in Computer Vision (CV), there are solid software +libraries that allow developers to focus on their research areas. + +There are several different Python distributions, each one created with a +different approach and for different audiences. + +Robot@Home2 Toolbox is written in Python and works well with Anaconda which is a +distribution of the Python and R programming languages for scientific computing. +Of course, other distributions can be used to run the toolbox. + +### Short installation on Linux + +To install Anaconda in Linux you must follow these steps. + +Download the Anaconda installer + +```shell +$ cd ~/Downloads +$ wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh +``` + +> replace `~/Downloads` with the path of your choice + + +Install the distribution + +```shell +$ bash ~/Downloads/Anaconda3-2022.10-Linux-x86_64.sh +``` + +> include the `bash` command regardless of whether or not you are using Bash shell. + +Review and agree the license agreement. Accept the default install location. + +When the installer prompts *“Do you wish the installer to initialize Anaconda3 by running conda init?”*, we recommend *“yes”*. + +Finally, for the installation to take effect + +```shell +$ source ~/.bashrc +``` + + +For more detailed/updated installation information, go to [Anaconda installation page](https://docs.anaconda.com/anaconda/install/). + +### Installation on Windows + +Due to the graphic abundance of the installation procedure, we refer you to +the specific [Anaconda documentation page for installation on Windows](https://docs.anaconda.com/anaconda/install/windows/). + +### Verifying your installation on Linux + +Enter the command `python`. This command runs the Python shell. If Anaconda is +installed and working, the version information it displays when it starts up +will include `“Anaconda”`. To exit the Python shell, enter the `quit()` command. + + $ python + Python 3.9.16 (main, Jan 11 2023, 16:05:54) + [GCC 11.2.0] :: Anaconda, Inc. on linux + Type "help", "copyright", "credits" or "license" for more information. + >>> quit() + +You can also display a list of installed packages and their versions running `conda list` + + $ conda list + # packages in environment at /home/user/anaconda3: + # + # Name Version Build Channel + ... + +### Verifying in Windows + +Click Start, search, or select **Anaconda Prompt** from the menu. After opening +Anaconda Prompt on the terminal enter the command `python`. This command runs +the Python shell. If Anaconda is installed and working, the version +information it displays when it starts up will include `Anaconda` . To exit +the Python shell, enter the command `quit()`. + +As in Linux you can also display a list of installed packages and their +versions running `conda list` + +### Making a virtual environment + +A virtual environment is a Python environment such that the Python interpreter, +libraries and scripts installed into it are isolated from those installed in +other virtual environments + +When a virtual environment is active, the installations tools install Python +packages into the virtual environment without needing to be told to do so +explicitly and without interfering in other virtual environments. + +That's the reason why it's recommended to work with a virtual environment +specifically for Robot@Home2. To do that with conda + +```shell +$ conda create --name rh python=3.9 +``` + +> change `rh` to a name of your choice + +> Robot@Home2 runs with python 3.6 or higher. Also, version 3.6 is recommended for +> Windows + +once it has been created, it can already be activated + +```shell +$ conda activate rh +``` +to deactivate run + +```shell +$ conda deactivate +``` + +### Literate programming with Jupyter + +Literate programming is a programming paradigm introduced by Donald Knuth in +which a computer program is given an explanation of its logic in a natural +language, such as English, interspersed with snippets of macros and traditional +source code. The approach is typically used in scientific computing and in data +science routinely for reproducible research and open access purposes. + +On the other hand, the **[Jupyter](https://jupyter.org) \*Notebook** is an open-source web application that +allows you to create and share documents that contain live code, equations, +visualizations and narrative text. Additionally **JupyterLab** is a web-based +interactive development environment for Jupyter notebooks, code, and data. + +Jupyter is an application of literate programming and Robot@Home2 includes +Jupyter notebooks for introductions, easy learning, and technical explanations. + +Installing Jupyter in Anaconda distribution is an easy task + +```shell +$ conda install -c conda-forge jupyterlab +``` + +> remember to previously activate your virtual environment with \`conda activate\` command + +If you have followed the previous sections you have the right working +environment to open [this notebook](https://github.com/goyoambrosio/RobotAtHome_API/blob/master/notebooks/10-Download-and-install.ipynb) with Jupyter to download and install both the toolbox and the dataset. + +However, if jupyter notebook is not your choice right now you can try the +following instructions. + + +## Time to install Robot@Home2 + +### Installing the toolbox + +Robot@Home2 Toolbox can be installed through the Python package manager. + +1. Confirm you are in the right virtual environment + + ```shell + $ conda activate rh + ``` + +2. Enter this command to install `robotathome` with [Jupyter](https://jupyter.org) to run notebooks. + + ```shell + $ pip install robotathome + ``` + + > `pip` is a common Python package manager that is included in Anaconda and many other distributions + + If you have not previously installed `jupyterlab` you can do it right now adding + the `interactive` option to the `pip` command as follows: + + ```shell + $ pip install robotathome[interactive] + ``` + > `interactive` will include jupyter and needed libraries. + +3. Run `python` and import the `robotathome` library + + ``` + $ python + Python 3.10.9 (main, Jan 11 2023, 15:21:40) [GCC 11.2.0] on linux + Type "help", "copyright", "credits" or "license" for more information. + >>> import robotathome as rh + >>> print (rh.__version__) + 1.1.1 + ``` + +4. Congratulations ! the `robotathome` package has been installed successfully. + + +### Downloading the dataset + +Robot@Home resides in Zenodo site where all data versions can be downloaded. +Latest version ([v2.0.3](https://zenodo.org/record/7811795)) is composed of two +files: `Robot@Home2_db.tgz` and `Robot@Home2_files.tgz`. The first one contains the +database, and the second one contains the bunch of RGBD images and 3D scenes + +You can choose to download it on your own or through the new brand toolbox. + +In case you are considering Linux + +```shell +$ wget https://zenodo.org/record/7811795/files/Robot@Home2_db.tgz +$ wget https://zenodo.org/record/7811795/files/Robot@Home2_files.tgz +``` + +check the files integrity + +```shell +$ md5sum Robot@Home2_db.tgz +d34fb44c01f31c87be8ab14e5ecd0767 Robot@Home2_db.tgz + +$ md5sum Robot@Home2_files.tgz +c55465536738ec3470c75e1671bab5f2 Robot@Home2_files.tgz +``` + +and to finish unzip files + +```shell +$ pv /home/user/Downloads/Robot@Home2_db.tgz | tar -xzf - -C /home/user/WORKSPACE/ +$ pv /home/user/Downloads/Robot@Home2_files.tgz | tar -xzf - -C /home/user/WORKSPACE/files +``` + +or even better, now you can do the same programmatically using the toolbox + +```python +import robotathome as rh + +# Download files +rh.download('https://zenodo.org/record/7811795/files/Robot@Home2_db.tgz', '~/Downloads') +rh.download('https://zenodo.org/record/7811795/files/Robot@Home2_files.tgz', '~/Downloads') + +# Compute md5 checksums +md5_checksum_db = rh.get_md5('~/Downloads/Robot@Home2_db.tgz') +md5_checksum_files = rh.get_md5('~/Downloads/Robot@Home2_files.tgz') + +# Check the files integrity and download +if md5_checksum_db == 'd34fb44c01f31c87be8ab14e5ecd0767': + rh.uncompress('~/Downloads/Robot@Home2_db.tgz', '~/WORKSPACE') +else: + print('Integrity of Robot@Home2_db.tgz is compromised, please download again') + +if md5_checksum_files == 'c55465536738ec3470c75e1671bab5f2': + rh.uncompress('~/Downloads/Robot@Home2_files.tgz', '~/WORKSPACE/files') +else: + print('Integrity of Robot@Home2_files.tgz is compromised, please download again') +``` + + + + + +%prep +%autosetup -n robotathome-1.1.9 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-robotathome -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 10 2023 Python_Bot <Python_Bot@openeuler.org> - 1.1.9-1 +- Package Spec generated @@ -0,0 +1 @@ +6f4f363d26a96202e1445e340c55fe3d robotathome-1.1.9.tar.gz |