diff --git a/.env b/.env index c633cafdd..81f84dfdb 100644 --- a/.env +++ b/.env @@ -1,7 +1,7 @@ # This top-level .env file under AirStack/ defines variables that are propagated through docker-compose.yaml PROJECT_NAME="airstack" # auto-generated from git commit hash -DOCKER_IMAGE_TAG="008839f" +DOCKER_IMAGE_TAG="501d90f" # can replace with your docker hub username PROJECT_DOCKER_REGISTRY="airlab-storage.andrew.cmu.edu:5001/shared" DEFAULT_ISAAC_SCENE="omniverse://airlab-storage.andrew.cmu.edu:8443/Projects/AirStack/AFCA/fire_academy_faro_with_sky.scene.usd" diff --git a/docs/real_world/HITL/index.md b/docs/real_world/HITL/index.md new file mode 100644 index 000000000..bf6057c70 --- /dev/null +++ b/docs/real_world/HITL/index.md @@ -0,0 +1,25 @@ +# Hardware-In-The-Loop Simulation +We configure a multi-machine HITL simulation, where a powerful desktop computer runs Isaac Simulator and rendering, and one/multiple jetson compute boards run robot-specific programs (planning, mapping, etc.). +## Requirement +A desktop computer configured according to [here](/docs/getting_started). One/multiple ORIN AGX/NX configured according to [here](/docs/real_world/installation/). + +## Communication +All machines should connect to the same network. In our test, all machines are connected to the same router with ethernet cables. Ensure that all machines are able to `ping` others' IP addresses. + +### Run +On the desktop computer, under your Airstack folder, run +``` +docker compose up isaac-sim-hitl +``` +You should see the isaac simulator being launched. +On the Jetson computer, run +``` +docker compose up robot_l4t +``` +Once the scene is played in the Isaac simulator, the rviz GUI on the Jetson should start displaying sensor data, which means the connection is successful. + +Screen record of desktop computer: + + +Screen record of Jetson computer: + \ No newline at end of file diff --git a/docs/real_world/installation/index.md b/docs/real_world/installation/index.md index f6491851a..aa2a01c7c 100644 --- a/docs/real_world/installation/index.md +++ b/docs/real_world/installation/index.md @@ -1 +1,29 @@ -# Installation on Hardware \ No newline at end of file +# Installation on ORIN AGX/NX + +We have tested installation and running robot container on Jetson ORIN AGX/NX and Ubuntu 22.04. + +## Setup +Ensure you have docker installed. +### Clone + +``` +git clone --recursive -j8 git@github.com:castacks/AirStack.git +``` +Checkout to the correct branch: +``` +git checkout jkeller/jetson_36.4 +``` +## Configure + +Run `./configure.sh` and follow the instructions in the prompts to do an initial configuration of the repo. + +Pull the correct image: +``` +docker compose pull robot_l4t +``` + +## Run +``` +docker compose up robot_l4t +``` +You should be able to see the rviz GUI being launched. \ No newline at end of file diff --git a/mkdocs.yml b/mkdocs.yml index c742b6bb0..af94fbb04 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -123,6 +123,8 @@ nav: - docs/real_world/data_offloading/index.md - Installation on Hardware: - docs/real_world/installation/index.md + - HITL Test: + - docs/real_world/HITL/index.md - About: docs/about.md plugins: - search diff --git a/robot/ros_ws/src/autonomy/2_perception/macvo2 b/robot/ros_ws/src/autonomy/2_perception/macvo2 index 973afc338..d25f1406e 160000 --- a/robot/ros_ws/src/autonomy/2_perception/macvo2 +++ b/robot/ros_ws/src/autonomy/2_perception/macvo2 @@ -1 +1 @@ -Subproject commit 973afc3384cf5680b14566aea7565824b74ad158 +Subproject commit d25f1406e092d66c5938788821706db27506c853 diff --git a/simulation/isaac-sim/docker/docker-compose.yaml b/simulation/isaac-sim/docker/docker-compose.yaml index b926c2565..874da2c8a 100644 --- a/simulation/isaac-sim/docker/docker-compose.yaml +++ b/simulation/isaac-sim/docker/docker-compose.yaml @@ -1,5 +1,8 @@ services: isaac-sim: + profiles: + - "" + - sitl image: &image_tag ${PROJECT_DOCKER_REGISTRY}/${PROJECT_NAME}:v${DOCKER_IMAGE_TAG}_isaac-sim build: context: ../ @@ -64,3 +67,13 @@ services: - ../sitl_integration:/sitl_integration:rw - ../sitl_integration/inputrc:/etc/inputrc - ../sitl_integration/config:/root/.nvidia-omniverse/config:rw + + # =================================================================================================================== + # for running over ethernet for hitl to stream to the NVIDIA jetson device + isaac-sim-hitl: + extends: + service: isaac-sim + network_mode: host + networks: !reset null + profiles: + - hitl \ No newline at end of file