Package: robotathome
Robot@Home2 Dataset ToolboxThe Robot-at-Home dataset (Robot@Home, paperhere)
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 toRobot@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, namedrh.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 standardpngformat 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 likeMeshLab.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 EnvironmentLaunched 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 LinuxTo install Anaconda in Linux you must follow these steps.Download the Anaconda installer$cd~/Downloads
$wgethttps://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.shreplace~/Downloadswith the path of your choiceInstall the distribution$bash~/Downloads/Anaconda3-2022.10-Linux-x86_64.shinclude thebashcommand 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$source~/.bashrcFor more detailed/updated installation information, go toAnaconda installation page.Installation on WindowsDue to the graphic abundance of the installation procedure, we refer you to
the specificAnaconda documentation page for installation on Windows.Verifying your installation on LinuxEnter the commandpython. 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 thequit()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 runningconda list$ conda list
# packages in environment at /home/user/anaconda3:
#
# Name                    Version                   Build  Channel
...Verifying in WindowsClick Start, search, or selectAnaconda Promptfrom the menu. After opening
Anaconda Prompt on the terminal enter the commandpython. This command runs
the Python shell. If Anaconda is installed and working, the version
information it displays when it starts up will includeAnaconda. To exit
the Python shell, enter the commandquit().As in Linux you can also display a list of installed packages and their
versions runningconda listMaking a virtual environmentA 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 environmentsWhen 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$condacreate--namerhpython=3.9changerhto a name of your choiceRobot@Home2 runs with python 3.6 or higher. Also, version 3.6 is recommended for
Windowsonce it has been created, it can already be activated$condaactivaterhto deactivate run$condadeactivateLiterate programming with JupyterLiterate 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, theJupyter*Notebookis an open-source web application that
allows you to create and share documents that contain live code, equations,
visualizations and narrative text. AdditionallyJupyterLabis 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$condainstall-cconda-forgejupyterlabremember to previously activate your virtual environment with `conda activate` commandIf you have followed the previous sections you have the right working
environment to openthis notebookwith 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@Home2Installing the toolboxRobot@Home2 Toolbox can be installed through the Python package manager.Confirm you are in the right virtual environment$condaactivaterhEnter this command to installrobotathomewithJupyterto run notebooks.$pipinstallrobotathomepipis a common Python package manager that is included in Anaconda and many other distributionsIf you have not previously installedjupyterlabyou can do it right now adding
theinteractiveoption to thepipcommand as follows:$pipinstallrobotathome[interactive]interactivewill include jupyter and needed libraries.Runpythonand import therobotathomelibrary$ 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.1Congratulations ! therobotathomepackage has been installed successfully.Downloading the datasetRobot@Home resides in Zenodo site where all data versions can be downloaded.
Latest version (v2.0.3) is composed of two
files:Robot@Home2_db.tgzandRobot@Home2_files.tgz. The first one contains the
database, and the second one contains the bunch of RGBD images and 3D scenesYou can choose to download it on your own or through the new brand toolbox.In case you are considering Linux$wgethttps://zenodo.org/record/7811795/files/Robot@Home2_db.tgz
$wgethttps://zenodo.org/record/7811795/files/Robot@Home2_files.tgzcheck the files integrity$md5sumRobot@Home2_db.tgzd34fb44c01f31c87be8ab14e5ecd0767Robot@Home2_db.tgz

$md5sumRobot@Home2_files.tgzc55465536738ec3470c75e1671bab5f2Robot@Home2_files.tgzand to finish unzip files$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/filesor even better, now you can do the same programmatically using the toolboximportrobotathomeasrh# Download filesrh.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 checksumsmd5_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 downloadifmd5_checksum_db=='d34fb44c01f31c87be8ab14e5ecd0767':rh.uncompress('~/Downloads/Robot@Home2_db.tgz','~/WORKSPACE')else:print('Integrity of Robot@Home2_db.tgz is compromised, please download again')ifmd5_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')