VMware上のUbuntu 22.04にROS2を入れてOpen-RMFデモを動かしてみた(Open-RMF導入編)

# 前回の記事
前回はROS2導入までの準備をしました。  
[VMware上のUbuntu 22.04にROS2を入れてOpen-RMFデモを動かしてみた(ROS2導入編)](https://qiita.com/SeagullShingo/items/6e296a6f64c2bf9a56ea)

今回はOpen-RMFを導入したいと思います。

# 手順
1. ホストOS(Windows11)準備  
2. ゲストOS(Ubuntu 22.04(LTS))準備   
3. ROS2導入 
4. Open-RMF導入　**←今回はここの内容**
5. デモ操作

思いのほか長くなりそうだったので、いくつかの記事に分割しています。

[VMware上のUbuntu 22.04にROS2を入れてOpen-RMFデモを動かしてみた(準備編)](https://qiita.com/SeagullShingo/items/2f3029b30d747da00afa)
[VMware上のUbuntu 22.04にROS2を入れてOpen-RMFデモを動かしてみた(ROS2導入編)](https://qiita.com/SeagullShingo/items/6e296a6f64c2bf9a56ea)
[VMware上のUbuntu 22.04にROS2を入れてOpen-RMFデモを動かしてみた(Open-RMF導入編)](https://qiita.com/SeagullShingo/items/59914f1a99acb0935f8a)
[VMware上のUbuntu 22.04にROS2を入れてOpen-RMFデモを動かしてみた(デモ操作①)](https://qiita.com/SeagullShingo/items/221d068ee872d0cd584a)


## 4.Open-RMF導入

公式を参考にOpen-RMFを導入していきます。  
https://github.com/open-rmf/rmf

今回は「Binary installation」の方法でOpen-RMFを導入していきます。  
(この方法が推奨されていたので、方法的に一番固いやり方と思っています。)

### セットアップ

Open-RMFを導入する前のセットアップを行います。
今回はデモを動かしたいので、「flask-socketio,fastapi,uvicorn」は導入します。
```
sudo apt update && sudo apt install \
  python3-pip \
  curl \
  python3-colcon-mixin \
  ros-dev-tools \
  -y

sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
wget https://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

# These pip packages are only used by rmf_demos which are not released as binaries
python3 -m pip install flask-socketio fastapi uvicorn
```

rosdepを初期化しておきます。
```
sudo rosdep init # run if first time using rosdep.
rosdep update
```

colcon mixinを未導入の場合は実施下記実施しておきます。
```
colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
colcon mixin update default
```

### Open-RMFの導入
導入の方法は色々紹介されていますが、「Building from source」ではなく、「Binary installation」でインストールしていくこととします。


下記コマンドでインストールします。distroは「humble」とします。
```
sudo apt update && sudo apt install ros-humble-rmf-dev
```

ワークスペースを作成し、ビルドします。
```
mkdir ~/rmf_ws/src -p
cd ~/rmf_ws/src
git clone https://github.com/open-rmf/rmf_demos.git -b 2.0.3
cd ~/rmf_ws
colcon build
```

ビルドの最後に微妙にwarningが出たりしました。
問題あるかどうかはこの後、デモ動かしながら確認していこうと思います。

<!-- open属性あり -->
<details><summary>ログ(一部抜粋)</summary>

```rb
・
・
・
---
Finished <<< rmf_demos_maps [29.4s]
Starting >>> rmf_demos
Finished <<< rmf_demos [1.59s]                    
Starting >>> rmf_demos_gz
Starting >>> rmf_demos_gz_classic
Finished <<< rmf_demos_gz [1.38s]                                                               
Finished <<< rmf_demos_gz_classic [1.44s]

Summary: 10 packages finished [33.1s]
  1 package had stderr output: rmf_demos_maps

ubuntu@ubuntu2204:~/rmf_ws$ 
```
</details>

ちなみに、同じ設定の環境で「Building from source」も試しましたが、これより多くのwarningが出たため、「Binary installation」の方が方法としては固いと思っています。

<!-- open属性あり -->
<details><summary>ログ(一部抜粋)</summary>

```rb
2 warnings generated.

---

Finished <<< rmf_fleet_adapter_python [1min 59s]
Starting >>> rmf_demos_fleet_adapter
Finished <<< rmf_demos_fleet_adapter [1.66s]                     
Starting >>> rmf_demos
Finished <<< rmf_demos [2.01s]                             
Starting >>> rmf_demos_gz
Starting >>> rmf_demos_gz_classic
Finished <<< rmf_demos_gz [2.16s]                                                               
Finished <<< rmf_demos_gz_classic [2.21s]                             

Summary: 59 packages finished [2h 7min 52s]

  21 packages had stderr output: ament_cmake_catch2 menge_vendor nlohmann_json_schema_validator_vendor rmf_api_msgs rmf_building_sim_common rmf_building_sim_gz_plugins rmf_demos_dashboard_resources rmf_demos_maps rmf_fleet_adapter rmf_fleet_adapter_python rmf_robot_sim_gz_plugins rmf_task rmf_task_ros2 rmf_task_sequence rmf_traffic rmf_traffic_editor rmf_traffic_editor_test_maps rmf_traffic_ros2 rmf_visualization_rviz2_plugins rmf_visualization_schedule rmf_websocket

ubuntu@ubuntu2204:~/rmf_ws$ 
```
</details>


次の章で実際にデモを動かしてみようと思います。


←←[VMware上のUbuntu 22.04にROS2を入れてOpen-RMFデモを動かしてみた(ROS2導入編)](https://qiita.com/SeagullShingo/items/6e296a6f64c2bf9a56ea)

→→[VMware上のUbuntu 22.04にROS2を入れてOpen-RMFデモを動かしてみた(デモ操作①)](https://qiita.com/SeagullShingo/items/221d068ee872d0cd584a)