Skip to content

Commit

Permalink
[Re-write] Free fleet adapter using easy-full-control fleet adapter a…
Browse files Browse the repository at this point in the history
…nd zenoh bridges (#145)

* Clean up

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Turtlebot3 world map

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Basic example of navigate_to_pose

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* test tf

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Basic tests and README updated, started with fleet adapter template

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Tweaking results and got cancellation

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Using tf_transformations, flesh out more implementation

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Basic launch done

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Basic working with patrol tasks

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Update configs

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Battery state, update readme

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* readme

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Update README, reorganized and renamed configs, testing unique tb3 sim

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Setup tested

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Updated README

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Style workflow on push and PR, lint

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Linter syntax

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Testing and CI (#146)

* Pytest setup

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Add workflow

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* On push for testing

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Remove branch override

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use workflow directory

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Basic testing ci without RMF

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use containers

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

---------

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* update script with latest zenoh api (#149)

* rebase with latest change

Signed-off-by: thomasung <thomas.ung@pal-robotics.com>

* add missing \ in readme

Signed-off-by: thomasung <thomas.ung@pal-robotics.com>

* update readme informations about zenoh version

Signed-off-by: thomasung <thomas.ung@pal-robotics.com>

clean dangling code

* fix linting issues and test example test files

Signed-off-by: thomasung <thomas.ung@pal-robotics.com>

---------

Signed-off-by: thomasung <thomas.ung@pal-robotics.com>

* Update README and lint

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fix enum comparison value, add replanning, update docs

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fix default args

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* fix Crash node if easy_fleet creation fails (#159)

* fix Crash node if easy_fleet creation fails

Upon creation of the EasyFullControl object the node may keep running even tho the returned pointer is null

Signed-off-by: thomasung <thomas.ung@pal-robotics.com>

lint

Signed-off-by: thomasung <thomas.ung@pal-robotics.com>

* rephrase comments

Signed-off-by: thomasung <thomas.ung@pal-robotics.com>

follow pycodestyle

Signed-off-by: Thomas Ung <tomkimsour@hotmail.fr>

---------

Signed-off-by: thomasung <thomas.ung@pal-robotics.com>
Signed-off-by: Thomas Ung <tomkimsour@hotmail.fr>

* Efc/integration testing (#157)

* Adding dockerfiles for building tests

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Initial docker compose nightly workflow

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Using new docker compose command

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fix zenoh bridge image branch

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use curl for repo tar

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use docker compose command for down too

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Setup integration testing with flag, test with workflow

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Install docker-compose in ros container

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Ommit setup-ros step and fix linting

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Revert setup ros step, use cmake -args

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use 1.0.1 API

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Using client and router method

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Remove command in docker compose

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Working locally, commented out zenohd

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Spinning up minimal-zenoh too

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Moving docker files, trying with client mode

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use official zenoh docker image and compose example, rename client zenoh config, update README, test build docker images

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Re-usable workflow actions, split integration testing

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Missing docker-compose installation

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fix broken action, rename test job

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fix shell selection, use composite

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Set nightly schedule, fix steps in unit-tests

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Remove minimal zenoh router dockerfile, add checkout to unit-tests

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Isolating tf listner components for testing

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use correct robot name, lint

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Clean up imports and fix namespacing

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Refactor to TfHandler, added testing

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Simplifying API

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Moved integration testing to free fleet adapter, added abstract RobotAdapter

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Abstract out robot adapter, slight refactor

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Robot existense test, with a planned failure to verify that it is running

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* setup rclpy node for testing too

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Add coverage and fix lint

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use unit test test cases

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Move tests

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fix launch files

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Rename functions

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Not to check execution, comment out stop command test

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use helper function for stop

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Using all statuses

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Badges

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Switch to easy-full-control branch before merging

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Update readme

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

---------

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Lint

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Add ignore to codecov

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Coverage (#160)

* Add ignore to codecov

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Test ignore

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

---------

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fix navigate_to_pose script default frame

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Address comments, fix battery_state and navigate_to_pose result parsing, add additional check as temporary fix for race condition

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Update readme

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Clean up configs

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Move member variables directly used by fleet adapter into RobotAdapter, add get_map_name abstract method

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Move config files into config directory per standard package structure

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Removed abstracted RobotAdapter, to be added only after Nav1RobotAdapter is implemented

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Efc/ros1 (#161)

* Basic testing on docker image for tf works

Signed-off-by: Aaron Chong <aaronchong@google.com>

* Renaming types and starting conversions

Signed-off-by: Aaron Chong <aaronchong@google.com>

* Renaming and verifying regression tests

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* minimal-zenoh-bridge-ros1 to build bridge from source

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Clone bridge recursively for rosrust

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* nav1 tf integration tests

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fix nav1 robot testing namespace, lint

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fix imports, lint, new cmake and action argument to split nav1 or nav2 integration tests

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fix ros master race condition, basic conversion

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* TransformStamped ros1 type

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Build with updated images

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Reduce size of minimal zenoh bridge ros1 image, lint

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Setup for more testing scripts

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* move base handler

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* lint

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* free_fleet testing

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* move_base_handler integration testing

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Basic testing on the level of nav1 robot adapter

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Basic nav1 fleet adapter setup done

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* New image builds and new tests

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Refactor out the part of starting fleet adapters for future testing

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Turn off nightly on-push build

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Update documentation with nav1 simulation example

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* nav1 sim architecture

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Update CI branch, todos on readme

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

---------

Signed-off-by: Aaron Chong <aaronchong@google.com>
Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Badges

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Efc cleanup (#163)

* Bump major versions

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Added nav1 and nav2 to names to make it clearer

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Revert schedule and free fleet branch

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

---------

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Change maintainer emails, fix versions, minor cleanup

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Addresses review comments (#164)

* Use nav2 tag for nav1 map image, rebuild images, remove typename, use more encompassing check for namespace

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Remove update handle check, and just check individually

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Use conditional in launch instead of group conditional

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fixed namespacify logic, reverted to nightly build

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fixed tests that catch runtime errors, check for replan counts instead

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Opens issue ticket when navigation fails

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Fix launch file, remove spam of nav1 message in log

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

---------

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

* Replace polling transform and pose tests with a 2 second wait for initialization before checks

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>

---------

Signed-off-by: Aaron Chong <aaronchongth@gmail.com>
Signed-off-by: thomasung <thomas.ung@pal-robotics.com>
Signed-off-by: Thomas Ung <tomkimsour@hotmail.fr>
Signed-off-by: Aaron Chong <aaronchong@google.com>
Co-authored-by: Thomas Ung <tomkimsour@hotmail.fr>
  • Loading branch information
aaronchongth and tomkimsour authored Jan 9, 2025
1 parent c3b3fc9 commit d7c082c
Show file tree
Hide file tree
Showing 189 changed files with 4,989 additions and 24,926 deletions.
50 changes: 50 additions & 0 deletions .github/actions/build-and-test/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: build-and-test

inputs:
ros-distribution:
description: string, ROS distribution to setup
required: true
zenoh-version:
description: string, version of eclipse-zenoh to install from pip
required: true
nav1-integration-testing:
description: string, supports ON or OFF only
required: false
default: "OFF"
nav2-integration-testing:
description: string, supports ON or OFF only
required: false
default: "OFF"

runs:
using: composite
steps:
- name: install dependencies
run: |
sudo apt update && sudo apt install python3-pip -y
pip3 install eclipse-zenoh==${{ inputs.zenoh-version }} pycdr2 rosbags --break-system-packages
shell: bash

- uses: ros-tooling/setup-ros@v0.7
with:
required-ros-distributions: ${{ inputs.ros-distribution }}

- name: build and test
uses: ros-tooling/action-ros-ci@v0.3
with:
package-name: free_fleet free_fleet_adapter free_fleet_examples
target-ros2-distro: ${{ inputs.ros-distribution }}
colcon-defaults: |
{
"build": {
"cmake-args": [
"-DNAV1_INTEGRATION_TESTING=${{ inputs.nav1-integration-testing }}",
"-DNAV2_INTEGRATION_TESTING=${{ inputs.nav2-integration-testing }}"
],
"mixin": ["coverage-pytest"]
},
"test": {
"mixin": ["coverage-pytest"]
}
}
colcon-mixin-repository: https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml
31 changes: 31 additions & 0 deletions .github/docker/integration-tests/nav1-docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
services:
minimal-ros1-sim:
image: ghcr.io/open-rmf/free_fleet/minimal-ros1-sim:noetic-latest
stop_signal: SIGINT
network_mode: host
privileged: true
stdin_open: true
tty: true

minimal-nav1-bringup:
image: ghcr.io/open-rmf/free_fleet/minimal-nav1-bringup:noetic-latest
stop_signal: SIGINT
network_mode: host
privileged: true
stdin_open: true
tty: true

minimal-zenoh-bridge-ros1:
image: ghcr.io/open-rmf/free_fleet/minimal-zenoh-bridge-ros1:noetic-latest
network_mode: host
stdin_open: true
tty: true

minimal-zenoh-router:
image: eclipse/zenoh
restart: unless-stopped
network_mode: host
stdin_open: true
tty: true
environment:
- RUST_LOG=debug
27 changes: 27 additions & 0 deletions .github/docker/integration-tests/nav2-docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
services:
minimal-nav2-bringup:
image: ghcr.io/open-rmf/free_fleet/minimal-nav2-bringup:jazzy-latest
stop_signal: SIGINT
network_mode: host
privileged: true
stdin_open: true
tty: true
environment:
- ROS_DOMAIN_ID=42

minimal-zenoh-bridge-ros2dds:
image: ghcr.io/open-rmf/free_fleet/minimal-zenoh-bridge-ros2dds:jazzy-latest
network_mode: host
stdin_open: true
tty: true
environment:
- ROS_DOMAIN_ID=42

minimal-zenoh-router:
image: eclipse/zenoh
restart: unless-stopped
network_mode: host
stdin_open: true
tty: true
environment:
- RUST_LOG=debug
21 changes: 21 additions & 0 deletions .github/docker/minimal-nav1-bringup/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
ARG ROS_DISTRO=noetic
FROM docker.io/ros:$ROS_DISTRO-ros-base

RUN apt update && apt install -y curl ros-$ROS_DISTRO-turtlebot3-navigation ros-$ROS_DISTRO-dwa-local-planner

RUN mkdir -p /tb3 && cd /tb3 \
&& curl -sL https://github.com/ros-navigation/navigation2/archive/refs/tags/1.3.4.tar.gz -o navigation2.tar.gz \
&& mkdir -p /tb3/navigation2 && tar zxf navigation2.tar.gz -C /tb3/navigation2 --strip-components=1 && rm navigation2.tar.gz

ENV TURTLEBOT3_MODEL=burger

# Modify existing launch file to add initial pose
RUN cd /tb3 \
&& curl --output turtlebot3_navigation.launch "https://raw.githubusercontent.com/ROBOTIS-GIT/turtlebot3/refs/heads/noetic-devel/turtlebot3_navigation/launch/turtlebot3_navigation.launch" \
&& sed -z 's|amcl.launch"/>|amcl.launch"><arg name="initial_pose_x" value="-2.0"/><arg name="initial_pose_y" value="-0.5"/></include>|' turtlebot3_navigation.launch > turtlebot3_navigation_edited.launch

RUN rm -rf \
/var/lib/apt/lists \
/dist

ENTRYPOINT ["bash", "-c", ". /opt/ros/$ROS_DISTRO/setup.bash && roslaunch --wait /tb3/turtlebot3_navigation_edited.launch map_file:=/tb3/navigation2/nav2_bringup/maps/tb3_sandbox.yaml open_rviz:=false"]
22 changes: 22 additions & 0 deletions .github/docker/minimal-nav2-bringup/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
ARG ROS_DISTRO=jazzy
FROM docker.io/ros:$ROS_DISTRO-ros-base

RUN apt update && apt install -y curl ros-$ROS_DISTRO-nav2-bringup ros-$ROS_DISTRO-rmw-cyclonedds-cpp

RUN mkdir -p /tb3 && cd /tb3 \
&& curl -sL https://github.com/ROBOTIS-GIT/turtlebot3_simulations/archive/refs/heads/master.tar.gz -o turtlebot3_simulations.tar.gz \
&& mkdir -p /tb3/turtlebot3_simulations && tar zxf turtlebot3_simulations.tar.gz -C /tb3/turtlebot3_simulations --strip-components=1 && rm turtlebot3_simulations.tar.gz

ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
ENV GAZEBO_MODEL_PATH="$GAZEBO_MODEL_PATH:/tb3/turtlebot3_simulations/turtlebot3_gazebo/models"

RUN rm -rf \
/var/lib/apt/lists \
/dist

# Modify existing params file to add initial pose
RUN mkdir -p /params && cd /params \
&& cp /opt/ros/$ROS_DISTRO/share/nav2_bringup/params/nav2_params.yaml . \
&& sed -z 's|amcl:\n ros__parameters:\n|amcl:\n ros__parameters:\n set_initial_pose: true\n initial_pose: {x: -2.0, y: -0.5, z: 0.0, yaw: 0.0}\n|' nav2_params.yaml > nav2_params_edited.yaml

ENTRYPOINT ["bash", "-c", ". /opt/ros/$ROS_DISTRO/setup.bash && ros2 launch nav2_bringup tb3_simulation_launch.py params_file:=/params/nav2_params_edited.yaml use_rviz:=False"]
12 changes: 12 additions & 0 deletions .github/docker/minimal-ros1-sim/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
ARG ROS_DISTRO=noetic
FROM docker.io/ros:$ROS_DISTRO-ros-base

RUN apt update && apt install -y ros-$ROS_DISTRO-turtlebot3-gazebo ros-$ROS_DISTRO-gazebo-ros-pkgs

ENV TURTLEBOT3_MODEL=burger

RUN rm -rf \
/var/lib/apt/lists \
/dist

ENTRYPOINT ["bash", "-c", ". /opt/ros/$ROS_DISTRO/setup.bash && roslaunch turtlebot3_gazebo turtlebot3_world.launch gui:=false"]
36 changes: 36 additions & 0 deletions .github/docker/minimal-zenoh-bridge-ros1/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
### Build bridge

ARG ROS_DISTRO=noetic
FROM docker.io/ros:$ROS_DISTRO-ros-base
ARG ZENOH_BRIDGE_REPO=eclipse-zenoh/zenoh-plugin-ros1
ARG ZENOH_BRIDGE_TAG=main
ARG FREE_FLEET_BRANCH=main

RUN apt update && apt install -y build-essential curl git unzip wget

# Get Rust
RUN curl https://sh.rustup.rs -sSf | bash -s -- -y

ENV PATH="/root/.cargo/bin:${PATH}"

RUN mkdir -p /zenoh-bridge && cd /zenoh-bridge \
&& git clone --recursive https://github.com/$ZENOH_BRIDGE_REPO -b $ZENOH_BRIDGE_TAG zenoh-plugin-ros1 \
&& cd /zenoh-bridge/zenoh-plugin-ros1 \
&& cargo build --package zenoh-bridge-ros1 --bin zenoh-bridge-ros1 --release

RUN cd /zenoh-bridge \
&& wget -O nav1_tb3_zenoh_bridge_ros1_client_config.json5 https://raw.githubusercontent.com/open-rmf/free_fleet/refs/heads/$FREE_FLEET_BRANCH/free_fleet_examples/config/zenoh/nav1_tb3_zenoh_bridge_ros1_client_config.json5

RUN rm -rf \
/var/lib/apt/lists \
/dist

### Set up bare minimum zenoh-bridge-ros1 image

FROM docker.io/ros:$ROS_DISTRO-ros-base

COPY --from=0 /zenoh-bridge/nav1_tb3_zenoh_bridge_ros1_client_config.json5 /zenoh-bridge/nav1_tb3_zenoh_bridge_ros1_client_config.json5

COPY --from=0 /zenoh-bridge/zenoh-plugin-ros1/target/release/zenoh-bridge-ros1 /zenoh-bridge/zenoh-bridge-ros1

ENTRYPOINT ["bash", "-c", ". /opt/ros/$ROS_DISTRO/setup.bash && /zenoh-bridge/zenoh-bridge-ros1 -c /zenoh-bridge/nav1_tb3_zenoh_bridge_ros1_client_config.json5"]
22 changes: 22 additions & 0 deletions .github/docker/minimal-zenoh-bridge-ros2dds/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
ARG ROS_DISTRO=jazzy
FROM docker.io/ros:$ROS_DISTRO-ros-base
ARG ZENOH_VERSION=1.1.0
ARG FREE_FLEET_BRANCH=main

RUN apt update && apt install -y wget unzip ros-$ROS_DISTRO-rmw-cyclonedds-cpp

RUN mkdir -p /zenoh-bridge && cd /zenoh-bridge \
&& wget -O zenoh-plugin-ros2dds.zip https://github.com/eclipse-zenoh/zenoh-plugin-ros2dds/releases/download/$ZENOH_VERSION/zenoh-plugin-ros2dds-$ZENOH_VERSION-x86_64-unknown-linux-gnu-standalone.zip \
&& unzip zenoh-plugin-ros2dds.zip \
&& rm zenoh-plugin-ros2dds.zip

RUN cd /zenoh-bridge \
&& wget -O nav2_tb3_zenoh_bridge_ros2dds_client_config.json5 https://raw.githubusercontent.com/open-rmf/free_fleet/refs/heads/$FREE_FLEET_BRANCH/free_fleet_examples/config/zenoh/nav2_tb3_zenoh_bridge_ros2dds_client_config.json5

ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp

RUN rm -rf \
/var/lib/apt/lists \
/dist

ENTRYPOINT ["bash", "-c", ". /opt/ros/$ROS_DISTRO/setup.bash && /zenoh-bridge/zenoh-bridge-ros2dds -c /zenoh-bridge/nav2_tb3_zenoh_bridge_ros2dds_client_config.json5"]
39 changes: 0 additions & 39 deletions .github/workflows/build.yaml

This file was deleted.

45 changes: 45 additions & 0 deletions .github/workflows/nav1-integration-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: nav1-integration-tests

on: push

jobs:
integration-tests:
timeout-minutes: 10
runs-on: ubuntu-latest
container:
image: osrf/ros:${{ matrix.ros_distribution }}-desktop-noble
strategy:
matrix:
ros_distribution:
- jazzy

steps:
- name: Checkout
uses: actions/checkout@v1

- name: Install docker-compose
run: |
sudo apt update && sudo apt install docker-compose -y
- name: Start test fixture containers
run: docker-compose -f ".github/docker/integration-tests/nav1-docker-compose.yaml" up -d --build

- name: build-and-test
uses: ./.github/actions/build-and-test
with:
ros-distribution: ${{ matrix.ros_distribution }}
zenoh-version: 1.1.0
nav1-integration-testing: ON

- name: Stop test fixture containers
if: always()
run: docker-compose -f ".github/docker/integration-tests/nav1-docker-compose.yaml" down

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: ros_ws/coveragepy/.coverage
flags: tests
fail_ci_if_error: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
45 changes: 45 additions & 0 deletions .github/workflows/nav2-integration-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: nav2-integration-tests

on: push

jobs:
integration-tests:
timeout-minutes: 10
runs-on: ubuntu-latest
container:
image: osrf/ros:${{ matrix.ros_distribution }}-desktop-noble
strategy:
matrix:
ros_distribution:
- jazzy

steps:
- name: Checkout
uses: actions/checkout@v1

- name: Install docker-compose
run: |
sudo apt update && sudo apt install docker-compose -y
- name: Start test fixture containers
run: docker-compose -f ".github/docker/integration-tests/nav2-docker-compose.yaml" up -d --build

- name: build-and-test
uses: ./.github/actions/build-and-test
with:
ros-distribution: ${{ matrix.ros_distribution }}
zenoh-version: 1.1.0
nav2-integration-testing: ON

- name: Stop test fixture containers
if: always()
run: docker-compose -f ".github/docker/integration-tests/nav2-docker-compose.yaml" down

- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
files: ros_ws/coveragepy/.coverage
flags: tests
fail_ci_if_error: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
Loading

0 comments on commit d7c082c

Please sign in to comment.