Bläddra i källkod

Include the orchestration package instructions in the README.md file

Signed-off-by: alek-kam-robotec-ai <[email protected]>
alek-kam-robotec-ai 2 år sedan
förälder
incheckning
ac673f61aa
1 ändrade filer med 38 tillägg och 16 borttagningar
  1. 38 16
      kraken_nav/README.md

+ 38 - 16
kraken_nav/README.md

@@ -1,6 +1,18 @@
-# Apple kraken navigation #
+# Apple kraken stack #
 
-This package provides navigation capabilities for the apple Kraken vehicle.
+This repository contains two ROS2 packages:
+ - o3de_kraken_nav
+ - o3de_kraken_orchestration
+
+## Packages Description
+
+### O3DE Kraken Navigation
+
+Provides navigation capabilities for the Apple Kraken vehicle.
+
+### O3DE Kraken Orchestration
+
+Allows the Apple Kraken vehicle to operate autonomously.
 
 ## ROS2 prerequisites
 
@@ -52,6 +64,16 @@ In addition to the required packages for the ROS2 gem, you will also need some a
     sudo apt install python3-colcon-common-extensions
     ```
 
+### Libraries
+
+The o3de_kraken_orchestration package uses the [python-statemachine](https://pypi.org/project/python-statemachine/) library.\
+You can install it by running the following command
+```bash
+pip install python-statemachine
+```
+
+**Note:** Make sure you have the pip Python package manager installed.
+
 ## Installation ##
 
 - Use the [roscon_2022](https://github.com/aws-lumberyard-dev/o3de/tree/roscon_2022) branch of the `O3DE`.
@@ -83,42 +105,42 @@ colcon build --symlink-install
 1. [Build](https://github.com/aws-lumberyard/ROSConDemo#download-and-install) and run the `ROSConDemo`
 2. Load level `Main`
 
-## Running nav stack for multiple vehicles
+## Running the kraken stack for multiple vehicles
 
 > Note: Slam is turned off by default since we have ground truth information about the robot's position from the simulator. However, it is possible to enable `slam_toolbox` forcefully. You can allow slam by adding `use_slam:=True` to the navigation launch command.
 
-1. For our scenario, spawn the following robots:
-
-```bash
-ros2 service call /spawn_entity gazebo_msgs/srv/SpawnEntity '{name: 'apple_kraken_rusty', xml: 'line1'}' &&
-ros2 service call /spawn_entity gazebo_msgs/srv/SpawnEntity '{name: 'apple_kraken_shiny', xml: 'line2'}' &&
-ros2 service call /spawn_entity gazebo_msgs/srv/SpawnEntity '{name: 'apple_kraken_rusty', xml: 'line3'}' &&
-ros2 service call /spawn_entity gazebo_msgs/srv/SpawnEntity '{name: 'apple_kraken_shiny', xml: 'line4'}'
-```
-
-2. Source the workspace
+1. Source the workspace
 
 ```bash
 cd ~/o3de_kraken_ws
 source ./install/setup.bash
 ```
 
-3. Set up `CycloneDDS` rmw:
+2. Set up `CycloneDDS` rmw:
 
 ```bash
 export RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
 ```
 
-4. Run the first stack with `Rviz` param set to `True`:
+4. Run the first navigation stack with `Rviz` param set to `True`:
 
 ```bash
 ros2 launch o3de_kraken_nav navigation_multi.launch.py namespace:=apple_kraken_rusty_1 rviz:=True
 ```
 
-5. Run the stack for rest of the robots (in different terminals, remember about points `1-3`):
+5. Run the navigation stack for rest of the robots (in different terminals, remember about points `1-3`):
 
 ```bash
 ros2 launch o3de_kraken_nav navigation_multi.launch.py namespace:=apple_kraken_shiny_2 rviz:=False
 ros2 launch o3de_kraken_nav navigation_multi.launch.py namespace:=apple_kraken_rusty_3 rviz:=False
 ros2 launch o3de_kraken_nav navigation_multi.launch.py namespace:=apple_kraken_shiny_4 rviz:=False
 ```
+
+6. Run the orchestration nodes for all the robots (in speparate terminals):
+
+```bash
+ros2 run o3de_kraken_orchestration kraken_orchestration_node --ros-args -p robot_name:=apple_kraken_rusty_1 -p spawn_line:=line1
+ros2 run o3de_kraken_orchestration kraken_orchestration_node --ros-args -p robot_name:=apple_kraken_shiny_2 -p spawn_line:=line2
+ros2 run o3de_kraken_orchestration kraken_orchestration_node --ros-args -p robot_name:=apple_kraken_rusty_3 -p spawn_line:=line3
+ros2 run o3de_kraken_orchestration kraken_orchestration_node --ros-args -p robot_name:=apple_kraken_shiny_4 -p spawn_line:=line4
+```