# All Haru Demos [toc] ![](https://i.imgur.com/GoXqamy.gif) ## Status Report | Demo Name | HRI | UPO | Fix needed | Feature needed | | ---------- | ------------------ | ------------------ | ---------------------------------------------------------------------------------- | ---------------------------------------------- | | Overall | :bangbang: | :bangbang: | Update routine on the robot, run lip sync separately if needed | | | Chatty | :heavy_check_mark: | :heavy_check_mark: | update routine id 1024 | | | IST | :heavy_check_mark: | :heavy_check_mark: | | | | Haru Games | :heavy_check_mark: | :heavy_check_mark: | | updates dialog and banner | | Telemoji | :heavy_check_mark: | :heavy_check_mark: | voice notes not work on some pc | | ## Setup the external PC To work with the real robot, - update the `.bashrc` ``` ### Use Real Haru export ROS_MASTER_HOSTNAME="haru-47" export ROS_MASTER_URI=http://$ROS_MASTER_HOSTNAME:11311/ export MY_IP=$(ip route get 8.8.8.8 | awk -F"src " 'NR==1{split($2,a," ");print a[1]}') export ROS_IP=$MY_IP export ROS_HOSTNAME=$ROS_IP ``` - Add the robot-ip and robot-id`/etc/hosts` (example given) ``` 192.8.8.8 haru-47 ``` ## Telemoji (Telegram bot) :::spoiler haru_japan 6137143631:AAHLv1Ceq3ACpm4rHqKgGZ5htWoYS9CPHxw ::: ### Setup * Git clone this repos in a new workspace (for example telegram_ws) on external-pc and on catkin_ws workspace on robot 1. strawberry-ros-msgs/ 1. idmind-tabletop-ros-msgs/ 1. idmind-tabletop-ros-pkg/ 1. idmind-tabletop-lip-sync/ 1. idmind-tabletop-telegram-bot/ 1. haru-nlp-ros/ ![](https://i.imgur.com/EjsoDq4.png) * Run `bash postint` inside `haru-nlp-ros` directory * Run `catkin_make` inside `telegram_ws` directory ### Run ``` source ~/telegram_ws/devel/setup.sh rosrun idmind_tabletop_telegram_bot run_demo.sh ``` ### Run (fallback) If the above command fails, then run all the launch separately * Run each command on new terminal after sourcing the `telegram_ws` * `source ~/telegram_ws/devel/setup.sh` * Run the following commands in the Robot if using Real robot otherwise run it on the external PC ```= roslaunch idmind_tabletop_telegram_bot telegram_haru.launch ``` * Run the following commands in external PC ```= roslaunch idmind_tabletop_lip_sync lip_sync.launch roslaunch idmind_tabletop_telegram_bot telegram_haru_testbed.launch roslaunch idmind_tabletop_telegram_bot telegram_haru_behaviour_tree.launch ``` ## IST ### Setup * Install dependencies ```bash= cd ~/ist_ws/src/haru_ist bash ./scripts/install_dependencies.sh ``` * change all the repos to develop branch in the workspace * Comment out [this lines](https://github.com/haru-project/haru_ist/blob/develop/scripts/start_backbone.sh#L9-L18) * Build ``` catkin_make ``` ### Run * Turn on the robot or the simulator * Then run the below command that launches everything needed for the demo ```= rosrun haru_ist run_ist.sh ``` ### Run (fallback) If the above command fails, then run all the launch separately * Run each command on new terminal after sourcing the `ist_ws` ```source ~/ist_ws/devel/setup.sh``` * Run * :::spoiler If you are not running tts through testbed then run it with the following 2 commands ```= roslaunch idmind_tabletop idmind_tabletop_audio_controller.launch roslaunch idmind_tabletop idmind_tabletop_tts.launch ``` ::: * Always run the following ```= cd ~/ist_ws/src/haru_ist/haru_ist_model bash start_model.sh ``` ```= roslaunch haru_ist launchMyBT.launch ``` ## Chatty ### Setup ```= cd ~/chatty_sdk sudo chmod a+x ~/chatty_sdk/demos/conversation_follower/follower.py python3 -m pipenv install --deploy ``` ### Run * Turn on the robot or the simulator * Run each command on new terminal after sourcing the `chatty_ws` * `source ~/chatty_ws/devel/setup.sh` ```= roslaunch idmind_tabletop idmind_tabletop_audio_controller.launch roslaunch idmind_tabletop idmind_tabletop_tts.launch roslaunch idmind_tabletop_lip_sync lip_sync.launch rosrun behavior-tts temp.py roslaunch idmind_tabletop_marker_sync idmind_tabletop_marker_sync.launch ``` ```= cd ~/chatty_sdk python3 -m pipenv run demos/conversation_follower/follower.py -H -d demos/conversation_follower/dialogues/harufest.xml ``` ## Haru Games ### Setup Here's how to set it up: 1. delete the ~/games_ws folder 1. run mkdir -p ~/haru_games_ws/src 1. go into that folder and run git clone https://github.com/haru-project/haru-games-demo.git 1. run cp -r ~/ist_ws/src/idmind-tabletop-ros-pkg ~/haru_games_ws/src/ 1. run cd ~/haru_games_ws/src/haru-games-demo/ 1. run bash scripts/install_dependencies.sh 1. run bash scripts/post_clone.sh This demo requires additional resources so please unpack them into ~/haru_games_ws/src/idmind-tabletop-ros-pkg/resources . it should create a folder called images in the resources folder and a folder called haruscope in the projector folder. ### Run * Turn on the robot or the simulator * Then run the below command that launches everything needed for the demo ```= source ~/haru_games_ws/devel/setup.sh rosrun haru_games_demo run_games.sh ``` ### Run (fallback) If the above command fails, then run all the launch separately * Run each command on new terminal after sourcing the `haru_games_ws` ```source ~/haru_games_ws/devel/setup.sh``` ```= roslaunch haru_games_demo backbone-advanced-noisefix-external-mics.launch roslaunch strawberry_ros_dialog strawberry_ros_dialog.launch ``` * wait until this says it's ready, if you're not sure you can run `rostopic echo /strawberry/dialog_ready` and wait until it publishes ```= roslaunch haru_games_demo haru_games_bt.launch ``` ## Appendix 1. [Download haru_unity_app](https://www.dropbox.com/s/dhquzubiawzoaw1/test_encouraging_messages.zip?dl=0) 2. Controll all the repostories in a workspace using 1 command - Append the following in your `.bashrc` ```bash= all-git-branch() { local base_path="${1:-.}" find $base_path -type d -name '.git' -exec echo {} \; -exec git -C {} branch \; } all-git-pull() { local base_path="${1:-.}" find $base_path \ -maxdepth 2 -type d \ -name ".git" \ -execdir python -c 'import os; print(os.path.abspath("."))' \; \ -execdir git branch \; \ -execdir git pull \; } ``` - Usage - To get the branch name all the repositories in [PATH-TO-PULL], default is current directory path ``` all-git-branch [PATH-TO-PULL] ``` - To pull all the repositories name in [PATH-TO-PULL] ``` all-git-pull [PATH-TO-PULL] ``` 3. <!-- {%hackmd theme-dark %} -->