This package is an implementation of RMF Lift Adapter1 and Door Adapter2 for LCI.
LCI is the cloud-based service provided by Octa Robotics, Inc3 .
It supports,
- Multiple vendors of elevators (lifts) including Mitsubishi, Hitachi, Toshiba, Fujitec, OTIS and more
- Multiple vendors of doors and turnstiles including Nabco, Teraoka, Kumahira and more
The base protocol of LCI is RFA4 on MQTT.
This package bridges ROS2 (RMF Lift and Door Adapter) to LCI.
- ROS2 Humble
- Python packages
- paho-mqtt < 2.0.0
- ruamel.yaml
The more detail is exemplified in Dockerfile.
Message Types | ROS2 Topic | Description |
---|---|---|
rmf_lift_msgs/LiftState | /lift_states |
State of the lift published by the lift node |
rmf_lift_msgs/LiftRequest | /adapter_lift_requests |
Requests to be sent to the lift supervisor to request operation of lifts |
rmf_door_msgs/DoorState | /door_states |
State of the door published by the door node |
rmf_door_msgs/DoorRequest | /adapter_door_requests |
Requests to be sent to the door supervisor to request operation of doors |
LiftRequest
shall be published when starting to use the lift at the origination floor and after the robot entered the car of the lift (twice in total).- When the robot is at the origination floor,
LiftRequest.destination_floor
shall be"<origination>"
. - After the robot entered the car,
LiftRequest.destination_floor
shall be"<destination>"
. - For both of
LiftRequest
,LiftRequest.destination_floor
can be set with the format of"<origination>:<destination>"
. This format is required especially when the backend lift API of LCI requires both"<origination>"
and"<destination>"
at the first request. - The suffix
_r
is used for the floor name to specify the rear door. This rule applies<origination>
,<destination>
,LiftRequest.destination_floor
andLiftRequest.current_floor
.
For example, if the robot wants to use the lift from B1
of the front door to 8F
of the rear door,
LiftRequest.destination_floor
shall beB1:8F_r
.- The arrival at the final destination can be detected by checking if
LiftRequest.current_floor
andLiftRequest.door_state
are8F_r
andLiftState.DOOR_OPEN
respectively.
To configure lci_rmf_adapter, the following files are needed.
server_config.yaml
: Config file to specify what elevators and doors are robot-ready.- Cert files: ClientID, client certificate and private key of an LCI Robot Account.
All of them will be provided by Octa Robotics.
server_config_simulator.yaml is the config file for the simulator provided by Octa Robotics.
Please contact [email protected] to obtain the LCI Robot Account for development, which is only allowed to access the simulator.
To use lci_rmf_adapter quickly, it is recommended to use Docker.
container_manager.sh provides an utility for Docker.
- Edit
LCI_SERVER_CONFIG_YAML
andLCI_CERT_DIR
in start.sh to fit your environment. sudo ./container_manager.sh start
- It will build and start the container.
sudo ./container_manager.sh login
- It will login you in the container environment.
./start.sh
- It will start the Node of lci_rmf_adapter.
ROS2 Node example is found in the test code for lift.
Its entry point is test_client_lift.sh
Please edit LIFT_NAME
, ORIGINATION
and DESTINATION
in test_client_lift.sh for trial.
LIFT_NAME
is of the format /lci/<bldg_id>/<bank_id>/<elevator_id>
.
ROS2 Node example is found in the test code for door.
Its entry point is test_client_door.sh
Please edit DOOR_NAME
in test_client_door.sh for trial
DOOR_NAME
is of the format /lci/<bldg_id>/<floor_id>/<door_id>
.
LCI does not only support the elevators (lifts) and the doors but also,
- signals from alarm systems
- automatic setting and releasing of security systems
- the exclusive control of resoruces among multiple robot systems (LCI Sem)
- the messaging service between robots and humans (LCI Bell)
To use full functionaly of LCI, please use MQTT.
lci_client.py is an implementation of LCI client without ROS2.
Footnotes
-
https://osrf.github.io/ros2multirobotbook/integration_lifts.html ↩
-
https://osrf.github.io/ros2multirobotbook/integration_doors.html ↩
-
RFA is the acronym of the Robot Friendly Asset Promotion Association of Japan. RFA publishes the standards for the interfaces between robots and elevators/doors. RFA standards are available for purchase from their homepage. English version is also available. ↩