Sensory technology
Robot House is equipped with the current state-of-the art sensory technology to enhance the Robot House robots’ perception capabilities. Currently, there are more than 60 smart home sensors, two omnidirectional ceiling cameras and some portable RGB(-D) cameras. On these pages, you can find information on how to employ them into your experiment, and how to troubleshoot in cases of known problems.
Ambient Sensors
Fig. 1 shows an overview of the ambient sensors that are distributed over Robot House:
Brightness, movement, and temperature sensors in every room
Power consumption and plug status using switchable power plugs at almost every appliance, computer, standard lamp, and robot charger
Lamp status and switchable lights in the living room
Status sensor at every door, drawer, wardrobe, cupboard, and toilet seat lid
Pressure mats on the sofas and in the bed
Temperature and water flow sensors in the kitchen taps
Some of the sensors have a power switch that you need to enable if you want to use them:
Sofa pressure mats: At the top left of the sofa.
Kitchen cabinet and drawer sensors: In the lower corner cabinet to the left of the sink.
Living room cabinet and drawer sensors: Between the small and large cupboard.
Bedroom wardrobe door sensors: On top of the wardrobe.
Bedroom desk door sensors: On the left side of the desk.
Note
Wait one or two minutes for the sensors to connect. Sensors will be picked up by the sensor component.
The sensors will automatically publish state changes via ROS at /robothouse/sensors
and can be actuated via /robothouse/actuators
in the common
Robot environment where the Sensor Components are active by default.
You can also address the sensors using sensors.py
in the Robot House ROS interface.
Note
Please refer to Troubleshoot in case the sensors are not working as expected or to Advanced usage if you need a non-default setup.
Cameras
There are two omnidirectional cameras in the living room that cover the main experimentation area including the living room, corridor and parts of the kitchen. We also have a couple of RGB-D cameras that have a standard location but can be moved on a per-experiment basis. These usually cover the kitchen and two living room areas from a high angle shot.
Note
As the cameras are mobile equipment please ensure that they are plugged into the (correct) computers, see Network overview.
All cameras will publish state changes on demand via ROS at various topics depending on their standard location, for example, /omni_livingroom
or /rgbd_kitchen
. Please refer to Sensor Components for details.
Note
Please refer to Troubleshoot in case the cameras are not working as expected or if you need a non-default setup.
Sensor Components
There is a main bringup
component within the Robot House ROS software that is permanently active on the host shakuras, running as the user demo. Besides providing other services, this component enables the use of both Ambient Sensors and Cameras on all computers in Robot House in the Robot environment common
. When the bringup
component is active, the following topics are active:
Component |
Topic |
Type |
Data |
Driver |
---|---|---|---|---|
Sensor interface |
|
Pub |
|
|
Actuator interface |
|
Sub |
|
|
RGB-D living room |
|
Pub |
|
|
RGB-D kitchen |
|
Pub |
|
|
RGB-D sofa area |
|
Pub |
|
|
Omnicam living room |
|
Pub |
|
|
Omnicam corridor |
|
Pub |
|
The following parts describe how to start and stop the bringup
component, how to check whether the different sensors are functional, and how to configure more advanced use cases, such as only starting individual sensor components or running them in a different Robot environment.
Starting up
Usually, the all components that makes the sensors available in ROS should already be running in the background at all times wrapped in a bringup
component.
A possible exception from this default is, for example, when a custom setup is active and the component has been stopped.
To restart the default components in such cases, follow these instructions:
Warning
If you started any of the components in bringup
manually, the according processes will be terminated.
Log into shakuras as the demo user:
$ ssh demo@shakuras
Start a
screen
session to allow the components to run detached in the background:$ screen
Start the
bringup
component:$ roslaunch uh_core bringup.launch --screen
Press Ctrl + A,D to detach the screen session and let the component run in the background.
Shutting down
If you want to use a more advanced setup, for example, if some of the bringup
components interfere with your setup or if you need to have them active in another Robot environment, you need to first stop the bringup
component that is running by default.
Follow these instructions to do so:
At first, log into shakuras as the demo user where the components are usually active:
$ ssh demo@shakuras
Attach the
screen
session where the components should be running:$ screen -r
Press Ctrl + C to abort the process and wait for its termination.
Note
After you are finished with your work, please restart the default component following the instructions in Starting up.
Troubleshoot
You can check whether the sensor component is running in the default configuration using the following instructions:
Set the Robot environment to
common
:$ robot_env common
Note
Specify any other environment if you want to see whether the components are running there, for example when you manually started the component in a custom configuration.
Check whether the necessary components are already active.
If you need the Ambient Sensors, check if they are up:
$ rostopic list | grep robothouse /robothouse/actuators /robothouse/sensors
Likewise, you can check whether the Cameras are already active:
$ rostopic list | grep cam /omni_livingroom/camera_info /omni_stairway/camera_info /rgbd_kitchen/depth/camera_info ... /rgbd_livingroom/depth/camera_info ...
In the above examples, the sensors and cameras are already active in the common
environment and you do not need start them if you want to continue to use this environment.
Note
If the output is either empty or contains ERROR: Unable to communicate with master!
the sensory components are not active and you may need to start them.
Advanced usage
If the main bringup
component is interfering with your setup or if you want to use the sensors in a specific Robot environment, you need to start them individually. You can follow these steps on any computer in the Robot House network.
Warning
Make sure that the components are not already running as some processes may get killed. Please stop the defaults if necessary.
Configure the Robot environment to your needs:
$ robot_env <robot>
Start one of the following components:
Use the core
bringup
component to initialize all services including Ambient Sensors and Cameras:$ roslaunch uh_core bringup.launchOnly ambient sensors without cameras
$ roslaunch uh_core sensors.launchOnly cameras without ambient sensors
$ roslaunch uh_core cameras.launchNote
If the
roslaunch
command fails withERROR: unable to contact ROS master at [http://<host>:11311]
, make sure that aroscore
is running on the host that that you configure with the$ROS_MASTER_URI
variable. This might happen, for example, if you use the Robot environmentcommon
on a different computer than shakuras as the command setsROS_MASTER_URI=http://shakuras:11311
.