home_school_festival_2023

branch for docker env, without arm pkg(12.05時点)

以下、Dockerが導入されていることを前提とします。 Dockerを使用しない場合は、productionブランチを利用してください。

0. docker-compose.yamlを書き換える

ローカル上で、マップデータが存在するディレクトリの絶対パスを予め取得します。
docker-compose.yamlの以下の行の該当箇所を絶対パスに書き換え、コメントを外します。

volumes:
#   - {ここに絶対パス}:/root/map

完成例:

volumes:
    - /home/usr/map:/root/map

$DISPLAYやpulseサーバのディレクトリなど、各自の環境に応じて適宜変更してください。
ただし、Linux環境であれば、多くの場合初期値のままでいけると思います。

1. Dockerコンテナを起動する

docker-compose.yamlが存在するディレクトリに移動します。
以下のコマンドを実行します。

docker compose up -d
# すでに作成済みのコンテナがある場合は、
docker compose start -d

これでDockerコンテナが起動します。
初回実行の場合は、Dockerイメージが先に作成されます。
イメージ作成には10~20分程度かかりますので、時間に余裕を持って実行してください。

起動を確認したい場合は、

docker container list

を実行してください。

2. catkin_wsの準備をする

以下のコマンドを実行してください。

cd /root/catkin_ws && \
catkin_make && \
source devel/setup.bash

3. env.pyを書き換える

MODEL_NAMEで、使用したいVOSKモデルを指定できます。(任意)
VOSKモデルを使用することで高精度の音声認識が可能になる一方、約1GBのディスク容量と最大16GBのメモリを必要とします。
VOSKモデルの一覧は、こちらを参照:VOSK Models

また、目標地点への座標を指定します。[X, Y, Z]となるように数値を入力してください。

4. 音声ファイルを生成する

以下のコマンドを実行してください。

cd /root/catkin_ws/home_school_festival_2023/scripts && \
./generate_audio.py

5. test.launchを書き換える

test.launchファイル中の以下の記述を確認します。

<include file="$(find nav_lecture)/launch/navigation.launch" >
    <arg name="map_file" value="/root/map/{マップのファイル名}.yaml" >
</include>

value=の後に、使用するマップデータのファイル名を指定してください。
この際、パス(/root/map/)は変更しないように注意してください。

6. launchファイルを実行する

launchファイルの起動には、次のコマンドを実行してください。

roslaunch home_school_festival_2023 test.launch

launchファイルは次のlaunchファイルをインクルードします:

  • minimal.launch
  • rplidar.launch
  • navigation.launch

launchファイルは次のノードを起動します:

  • main_node
  • stt_node
  • tts_node
  • finger_node
  • send_goal_node

7. Dockerコンテナを終了・破棄する

終了したい場合は、

docker compose stop

破棄したい場合は、

docker compose down

を実行してください。

破棄した場合、再度実行する際にはenv.pytest.launchを書き換える必要があります。
また、Dockerコンテナは破棄されますがDockerイメージは破棄されません。