Skip to content

Commit

Permalink
Merge pull request #30 from ethz-asl/multi-machine-setup
Browse files Browse the repository at this point in the history
Multi machine setup
  • Loading branch information
kekeblom authored Jan 10, 2020
2 parents 7050a7d + 032cb4c commit 165cb1e
Show file tree
Hide file tree
Showing 6 changed files with 94 additions and 20 deletions.
42 changes: 42 additions & 0 deletions moma_demos/fetch_demo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

# Fetch Demo

## Launching the demo on the multi-machine setup

### As a single launch file

On the machine used for the user interface, run the following command to distribute the nodes.

```bash
roslaunch fetch_demo single_command.launch
```

### Via SSH

There is one launch file for each machine in the setup. They can all be launch from the user interface laptop via SSH as follows.

Navigation nodes on ridgeback machine:

```bash
ssh asl-admin@asl-ridgeback "source /home/asl-admin/catkin_ws/devel/setup.zsh && roslaunch fetch_demo navigation.launch"
```

Manipulation nodes on YuMi machine:

```bash
ssh asl-admin@asl-yumi "source /home/asl-admin/catkin_ws/devel/setup.zsh && roslaunch fetch_demo manipulation.launch"
```

Perception nodes on moma-laptop:

```bash
ssh asl-admin@moma-laptop "source /home/asl-admin/catkin_ws/devel/setup.zsh && roslaunch fetch_demo perception.launch"
```

On local user interface machine:

```bash
roslaunch fetch_demo user_interface.launch
```

Each of these commands is blocking, they should be run in separate terminals.
Original file line number Diff line number Diff line change
@@ -1,14 +1,6 @@
<?xml version="1.0" ?>
<launch>
<arg name="launch_rviz" default="true" />
<arg name="map_file" default="TODO"/>

<!-- Rigeback navigation -->
<node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)" />
<include file="$(find ridgeback_navigation)/launch/include/amcl.launch" />
<include file="$(find ridgeback_navigation)/launch/include/move_base.launch" />

<!-- Read waypoints for approach action -->
<!-- Read waypoints for search action -->
<rosparam command="load" file="$(find fetch_demo)/config/search_waypoints.yaml" />

<!-- Load map onto map server -->
Expand All @@ -30,15 +22,4 @@
<node pkg="fetch_demo" type="search_node.py" name="search_action_node" output="screen"/>
<node pkg="fetch_demo" type="approach_node.py" name="approach_action_node" output="screen"/>
<node pkg="fetch_demo" type="drop_move_node.py" name="drop_action_node" output="screen"/>

<!-- Launch support nodes -->
<node pkg="fetch_demo" type="navigation_node.py" name="navigation_action_node" output="screen"/>
<node pkg="fetch_demo" type="object_detection_node.py" name="object_detection_node" output="screen"/>

<!-- Launch the execution system -->
<node pkg="fetch_demo" type="run_sequentially.py" name="commander_node" output="screen"/>

<!-- Launch RViz -->
<node if="$(arg launch_rviz)" type="rviz" name="rviz" pkg="rviz" args="-d $(find grasp_demo)/config/rviz.rviz"/>

</launch>
14 changes: 14 additions & 0 deletions moma_demos/fetch_demo/launch/navigation.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" ?>
<launch>
<arg name="map_file" default="TODO"/>

<!-- Rigeback navigation -->
<node name="map_server" pkg="map_server" type="map_server" args="$(arg map_file)" />

<include file="$(find ridgeback_navigation)/launch/include/amcl.launch" />
<!-- TODO: AMCL is a localization system. Check if we still need this when using Maplab. -->

<include file="$(find ridgeback_navigation)/launch/include/move_base.launch" />
<!-- TODO The parameters loaded in these launch files do not necessarily fit our map and setup in general.
Might need to define our own parameter files. -->
</launch>
7 changes: 7 additions & 0 deletions moma_demos/fetch_demo/launch/perception.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?xml version="1.0" ?>
<launch>
<!-- Object detection -->
<node pkg="fetch_demo" type="object_detection_node.py" name="object_detection_node" output="screen"/>

<!-- TODO: launch Voxblox++ here -->
</launch>
20 changes: 20 additions & 0 deletions moma_demos/fetch_demo/launch/single_command.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?xml version="1.0" ?>
<launch>

<include file="$(find fetch_demo)/launch/user_interface.launch"/>

<group>
<machine name="maniplation_machine" address="asl-yumi" default="true"/>
<include file="$(find fetch_demo)/launch/manipulation.launch"/>
</group>

<group>
<machine name="perception_machine" address="moma-laptop" default="true"/>
<include file="$(find fetch_demo)/launch/perception.launch"/>
</group>

<group>
<machine name="navigation_machine" address="asl-ridgeback" default="true"/>
<include file="$(find fetch_demo)/launch/navigation.launch"/>
</group>
</launch>
10 changes: 10 additions & 0 deletions moma_demos/fetch_demo/launch/user_interface.launch
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?xml version="1.0" ?>
<launch>
<arg name="launch_rviz" default="true" />

<!-- Launch the execution system -->
<node pkg="fetch_demo" type="run_sequentially.py" name="commander_node" output="screen"/>

<!-- Launch RViz -->
<node if="$(arg launch_rviz)" type="rviz" name="rviz" pkg="rviz" args="-d $(find grasp_demo)/config/rviz.rviz"/>
</launch>

0 comments on commit 165cb1e

Please sign in to comment.