Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v3
uses: actions/checkout@v6

- name: Run build script - ${{ matrix.script }}
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/pr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ jobs:
name: Space ROS Commit Message Standards
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: space-ros/check-commit-message-action@main
2 changes: 1 addition & 1 deletion canadarm2/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM osrf/space-ros:jazzy-2025.10.0
FROM osrf/space-ros:jazzy-2026.01.0

ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
ENV ROS_DISTRO=jazzy
Expand Down
2 changes: 1 addition & 1 deletion curiosity_rover/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM osrf/space-ros:jazzy-2025.10.0
FROM osrf/space-ros:jazzy-2026.01.0

ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
ENV ROS_DISTRO=jazzy
Expand Down
87 changes: 45 additions & 42 deletions lunar_terrain/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
# VCS_REF - The git revision of the Space ROS source code (no default value).
# VERSION - The version of Space ROS (default: "preview")

FROM osrf/space-ros:humble-2024.10.0
FROM osrf/space-ros:jazzy-2025.10.0

# Define arguments used in the metadata definition
ARG VCS_REF
Expand All @@ -36,15 +36,14 @@ LABEL org.label-schema.vcs-url="https://github.com/space-ros/docker"
LABEL org.label-schema.vcs-ref=${VCS_REF}

# Clone all space-ros sources
RUN mkdir ${SPACEROS_DIR}/src \
&& vcs import ${SPACEROS_DIR}/src < ${SPACEROS_DIR}/exact.repos
RUN sudo vcs import ${SPACEROS_DIR}/src < ${SPACEROS_DIR}/scripts/spaceros.repos

# Define a few key variables
ENV DEMO_DIR=${HOME_DIR}/demos_ws
ENV GZ_VERSION=garden
ENV DEMO_DIR=${HOME}/demos_ws
ENV GZ_VERSION=harmonic
ENV GZ_PARTITION=spaceros
ENV GZ_SIM_RESOURCE_PATH=/home/spaceros-user/demos_ws/src/simulation/models/lunar_terrain/models
ENV ROS_DISTRO=humble
ENV GZ_SIM_RESOURCE_PATH=$DEMO_DIR/src/simulation/models/lunar_terrain/models
ENV ROS_DISTRO=jazzy

# Disable prompting during package installation
ARG DEBIAN_FRONTEND=noninteractive
Expand All @@ -57,11 +56,9 @@ ADD --chmod=644 https://raw.githubusercontent.com/ros/rosdistro/master/ros.key /
# the cache won't make it into the built image but will be maintained between steps.
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
sudo apt-get update
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
sudo apt-get dist-upgrade -y
RUN rosdep update
sudo apt-get update \
&& sudo apt-get dist-upgrade -y
RUN sudo rosdep init && rosdep update

# Install the various build and test tools
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
Expand All @@ -71,39 +68,41 @@ RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
clang-format \
cmake \
git \
git-lfs \
libbullet-dev \
python3-colcon-common-extensions \
python3-flake8 \
python3-pip \
python3-pytest-cov \
python3-rosinstall-generator \
python3-rosdep \
python3-setuptools \
python3-vcstool \
wget

# Install git-lfs for big files in simulation repo
RUN git lfs install

RUN sudo add-apt-repository ppa:kisak/kisak-mesa

RUN sudo apt install xterm -y

# Get rosinstall_generator
# Using Docker BuildKit cache mounts for /var/cache/apt and /var/lib/apt ensures that
# the cache won't make it into the built image but will be maintained between steps.
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
sudo apt-get update -y && sudo apt-get install -y python3-rosinstall-generator
# Install Gazebo Harmonic, GZ ROS packages and rviz2 from offical binaries
RUN sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null

# Install Gazebo Garden
# Using Docker BuildKit cache mounts for /var/cache/apt and /var/lib/apt ensures that
# the cache won't make it into the built image but will be maintained between steps.
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
sudo wget https://packages.osrfoundation.org/gazebo.gpg -O /usr/share/keyrings/pkgs-osrf-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/pkgs-osrf-archive-keyring.gpg] http://packages.osrfoundation.org/gazebo/ubuntu-stable $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/gazebo-stable.list > /dev/null \
&& sudo apt-get update -y && sudo apt-get install -y gz-garden && sudo apt-get install -y git-lfs && git lfs install
sudo apt-get update -y \
&& sudo apt-get install -y gz-$GZ_VERSION \
&& sudo apt-get install -y ros-${ROS_DISTRO}-ros-gz \
&& sudo apt-get install -y ros-${ROS_DISTRO}-rviz2

ENV SPACEROS_USER spaceros-user

# Generate repos file for demo dependencies, excluding packages from Space ROS core.
COPY --chown=${USERNAME}:${USERNAME} demo-pkgs.txt /tmp/
COPY --chown=${USERNAME}:${USERNAME} excluded-pkgs.txt /tmp/
COPY --chown=${SPACEROS_USER}:${SPACEROS_USER} demo-pkgs.txt /tmp/
COPY --chown=${SPACEROS_USER}:${SPACEROS_USER} excluded-pkgs.txt /tmp/
RUN rosinstall_generator \
--rosdistro ${ROS_DISTRO} \
--deps \
Expand All @@ -112,44 +111,48 @@ RUN rosinstall_generator \
-- $(cat /tmp/demo-pkgs.txt) \
> /tmp/demo_generated_pkgs.repos

# Create workspace for lunar_terrain demo
RUN mkdir -p ${DEMO_DIR}/src
WORKDIR ${DEMO_DIR}
RUN vcs import src < /tmp/demo_generated_pkgs.repos

# Install system dependencies
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
/bin/bash -c 'source ${SPACEROS_DIR}/install/setup.bash' \
&& rosdep install --from-paths ${SPACEROS_DIR}/src src --ignore-src --rosdistro ${ROS_DISTRO} -r -y --skip-keys "console_bridge generate_parameter_library fastcdr fastrtps rti-connext-dds-5.3.1 urdfdom_headers rmw_connextdds ros_testing rmw_connextdds rmw_fastrtps_cpp rmw_fastrtps_dynamic_cpp composition demo_nodes_py lifecycle rosidl_typesupport_fastrtps_cpp rosidl_typesupport_fastrtps_c ikos diagnostic_aggregator diagnostic_updater joy qt_gui rqt_gui rqt_gui_py"

# Get the source for the dependencies
# RUN vcs import src < /tmp/demo_generated_pkgs.repos
COPY --chown=${USERNAME}:${USERNAME} demo_manual_pkgs.repos /tmp/
RUN vcs import src < /tmp/demo_manual_pkgs.repos && /bin/bash -c 'source "${SPACEROS_DIR}/install/setup.bash"'
COPY --chown=${SPACEROS_USER}:${SPACEROS_USER} demo_manual_pkgs.repos /tmp/
RUN vcs import src < /tmp/demo_manual_pkgs.repos

RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/var/lib/apt,sharing=locked \
sudo apt-get update -y \
&& /bin/bash -c 'source "${SPACEROS_DIR}/install/setup.bash"' \
&& rosdep install --from-paths src --ignore-src -r -y --rosdistro ${ROS_DISTRO}
&& /bin/bash -c 'source /opt/ros/${ROS_DISTRO}/setup.bash \
&& source "${SPACEROS_DIR}/setup.bash" \
&& rosdep install \
--simulate \
--from-paths src \
--ignore-src \
-r -y \
--rosdistro ${ROS_DISTRO} > /tmp/rosdep-commands.sh \
&& chmod +x /tmp/rosdep-commands.sh \
&& /tmp/rosdep-commands.sh'

# Copy the demo source code
COPY --chown=${USERNAME}:${USERNAME} lunar_sun_gz_plugin src/lunar_sun_gz_plugin
COPY --chown=${USERNAME}:${USERNAME} lunar_terrain_gz_bringup src/lunar_terrain_gz_bringup
COPY --chown=${USERNAME}:${USERNAME} lunar_terrain_gz_worlds src/lunar_terrain_gz_worlds
COPY --chown=${SPACEROS_USER}:${SPACEROS_USER} lunar_sun_gz_plugin src/lunar_sun_gz_plugin
COPY --chown=${SPACEROS_USER}:${SPACEROS_USER} lunar_terrain_gz_bringup src/lunar_terrain_gz_bringup
COPY --chown=${SPACEROS_USER}:${SPACEROS_USER} lunar_terrain_gz_worlds src/lunar_terrain_gz_worlds

# Build the demo
RUN /bin/bash -c 'source ${SPACEROS_DIR}/install/setup.bash \
RUN /bin/bash -c 'source /opt/ros/${ROS_DISTRO}/setup.bash \
&& source ${SPACEROS_DIR}/setup.bash \
&& colcon build --cmake-args -DCMAKE_BUILD_TYPE=Release'

# Create the render group if it doesn't exist
RUN sudo groupadd -f render

# Add the user to the render group so that the user can access /dev/dri/renderD128
RUN sudo usermod -aG render $USERNAME
RUN sudo usermod -aG render ${SPACEROS_USER}

# Setup the entrypoint
COPY --chown=${USERNAME}:${USERNAME} ./entrypoint.sh /
COPY --chown=${SPACEROS_USER}:${SPACEROS_USER} ./entrypoint.sh /
# RUN chown appuser:appuser /entrypoint.sh && chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
CMD ["bash"]
3 changes: 1 addition & 2 deletions lunar_terrain/demo-pkgs.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
leo_gz_plugins
rviz2
xacro
teleop_twist_keyboard
teleop_twist_keyboard
21 changes: 2 additions & 19 deletions lunar_terrain/demo_manual_pkgs.repos
Original file line number Diff line number Diff line change
@@ -1,26 +1,9 @@
repositories:
actuator_msgs:
type: git
url: https://github.com/rudislabs/actuator_msgs.git
version: main
ros_gz:
type: git
url: https://github.com/gazebosim/ros_gz.git
version: humble
vision_msgs:
type: git
url: https://github.com/ros-perception/vision_msgs.git
version: humble
gps_msgs:
type: git
url: https://github.com/swri-robotics/gps_umd.git
path: gps_msgs
version: 113782d
leo_common-ros2:
type: git
url: https://github.com/LeoRover/leo_common-ros2.git
version: humble
version: jazzy
simulation:
type: git
url: https://github.com/space-ros/simulation.git
version: main
version: main
16 changes: 16 additions & 0 deletions lunar_terrain/excluded-pkgs.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,22 @@ fastcdr
fastrtps
fastrtps_cmake_module
generate_parameter_library
gz_cmake_vendor
gz_common_vendor
gz_dartsim_vendor
gz_fuel_tools_vendor
gz_gui_vendor
gz_math_vendor
gz_msgs_vendor
gz_ogre_next_vendor
gz_physics_vendor
gz_plugin_vendor
gz_rendering_vendor
gz_sensors_vendor
gz_sim_vendor
gz_tools_vendor
gz_transport_vendor
gz_utils_vendor
rmw_connextdds
rmw_fastrtps_cpp
rmw_fastrtps_dynamic_cpp
Expand Down
37 changes: 11 additions & 26 deletions lunar_terrain/lunar_sun_gz_plugin/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,32 +10,17 @@ find_package(ament_cmake REQUIRED)
add_library(lunar_sun_gz_plugin SHARED
src/lunar_sun.cpp)

if(DEFINED ENV{GZ_VERSION} AND "$ENV{GZ_VERSION}" STREQUAL "garden")
find_package(gz-plugin2 REQUIRED COMPONENTS register)
set(GZ_PLUGIN_VER ${gz-plugin2_VERSION_MAJOR})

find_package(gz-sim7 REQUIRED)
set(GZ_SIM_VER ${gz-sim7_VERSION_MAJOR})

target_link_libraries(lunar_sun_gz_plugin
gz-sim${GZ_SIM_VER}::gz-sim${GZ_SIM_VER}
gz-plugin${GZ_PLUGIN_VER}::gz-plugin${GZ_PLUGIN_VER}
)
else()
#If GZ_VERSION is not set default to Fortress
find_package(ignition-plugin1 REQUIRED COMPONENTS register)
set(IGN_PLUGIN_VER ${ignition-plugin1_VERSION_MAJOR})

find_package(ignition-gazebo6 REQUIRED)
set(IGN_GAZEBO_VER ${ignition-gazebo6_VERSION_MAJOR})

add_definitions(-DUSE_IGNITION)

target_link_libraries(lunar_sun_gz_plugin
ignition-gazebo${IGN_GAZEBO_VER}::ignition-gazebo${IGN_GAZEBO_VER}
ignition-plugin${IGN_PLUGIN_VER}::ignition-plugin${IGN_PLUGIN_VER}
)
endif()
find_package(gz_sim_vendor REQUIRED)
find_package(gz-sim REQUIRED)
set(GZ_SIM_VER ${gz-sim_VERSION_MAJOR})

find_package(gz-plugin2 REQUIRED COMPONENTS register)
set(GZ_PLUGIN_VER ${gz-plugin2_VERSION_MAJOR})

target_link_libraries(lunar_sun_gz_plugin
gz-sim${GZ_SIM_VER}::gz-sim${GZ_SIM_VER}
gz-plugin${GZ_PLUGIN_VER}::gz-plugin${GZ_PLUGIN_VER}
)

set_property(TARGET lunar_sun_gz_plugin PROPERTY CXX_STANDARD 17)

Expand Down
12 changes: 3 additions & 9 deletions lunar_terrain/lunar_sun_gz_plugin/package.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,8 @@
<license>Apache License 2.0</license>

<buildtool_depend>ament_cmake</buildtool_depend>
<!-- Garden -->
<depend condition="$GZ_VERSION == garden or $IGNITION_VERSION == garden">gz-plugin2</depend>
<depend condition="$GZ_VERSION == garden or $IGNITION_VERSION == garden">gz-sim7</depend>
<!-- Fortress (default) -->
<depend condition="$GZ_VERSION == fortress or $IGNITION_VERSION == fortress">gz-plugin</depend>
<depend condition="$GZ_VERSION == fortress or $IGNITION_VERSION == fortress">gz-sim6</depend>
<depend condition="$GZ_VERSION == '' and $IGNITION_VERSION == ''">gz-plugin</depend>
<depend condition="$GZ_VERSION == '' and $IGNITION_VERSION == ''">gz-sim6</depend>
<depend>gz_plugin_vendor</depend>
<depend>gz_sim_vendor</depend>

<test_depend>ament_lint_auto</test_depend>
<test_depend>ament_cmake_copyright</test_depend>
Expand All @@ -28,4 +22,4 @@
<export>
<build_type>ament_cmake</build_type>
</export>
</package>
</package>
Loading
Loading