Skip to content

Commit

Permalink
Fix
Browse files Browse the repository at this point in the history
  • Loading branch information
rafal-gorecki committed Jan 5, 2024
1 parent bf7e295 commit 3e1f00e
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 65 deletions.
3 changes: 3 additions & 0 deletions .github/workflows/build-docker-image-hardware.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ jobs:
matrix:
include:
- ros-distro: noetic
rosbot-fw-release: 0.16.2
platforms: "linux/amd64, linux/arm64"

steps:
Expand Down Expand Up @@ -47,6 +48,7 @@ jobs:
push: true
build-args: |
ROS_DISTRO=${{ matrix.ros-distro }}
ROSBOT_FW_RELEASE=${{ matrix.rosbot-fw-release }}
tags: husarion/rosbot:${{ matrix.ros-distro }}
cache-from: type=registry,ref=husarion/rosbot:${{ matrix.ros-distro }}
cache-to: type=inline
Expand All @@ -61,6 +63,7 @@ jobs:
push: true
build-args: |
ROS_DISTRO=${{ matrix.ros-distro }}
ROSBOT_FW_RELEASE=${{ matrix.rosbot-fw-release }}
tags: husarion/rosbot:${{ matrix.ros-distro }}-${{ github.head_ref || github.ref_name }}
cache-from: type=registry,ref=husarion/rosbot:${{ matrix.ros-distro }}-${{ github.head_ref || github.ref_name }}
cache-to: type=inline
71 changes: 8 additions & 63 deletions Dockerfile.hardware
Original file line number Diff line number Diff line change
@@ -1,66 +1,8 @@
ARG ROS_DISTRO=melodic
ARG ROS_DISTRO=noetic
ARG ROSBOT_FW_RELEASE=0.16.2


## =========================== STM32 firmware===============================
FROM --platform=linux/amd64 ubuntu:20.04 AS stm32_firmware_builder

ARG ROSBOT_FW_RELEASE=0.16.1
ARG ROS_NOETIC_MSGS=0

SHELL ["/bin/bash", "-c"]

# ENV PIO_VERSION="5.1.0"
RUN apt update && apt install -y \
python3 \
python3-pip \
git \
wget \
tree

# https://docs.platformio.org/en/latest/core/installation.html#system-requirements
# RUN pip3 install -U platformio==${PIO_VERSION}
RUN pip3 install -U platformio

RUN git clone https://github.com/husarion/rosbot-stm32-firmware.git --branch ${ROSBOT_FW_RELEASE} && \
mkdir -p ~/.platformio/packages/framework-mbed/features/ && \
cp rosbot-stm32-firmware/.mbedignore ~/.platformio/packages/framework-mbed/features/.mbedignore

WORKDIR /rosbot-stm32-firmware

RUN git submodule update --init --recursive

# RUN wget https://github.com/husarion/rosbot-stm32-firmware/archive/refs/tags/${ROSBOT_FW_RELEASE}.tar.gz && \
# tar -xf *.tar.gz && \
# mv rosbot-stm32-firmware* rosbot-stm32-firmware && \
# mkdir -p ~/.platformio/packages/framework-mbed/features/ && \
# cp rosbot-stm32-firmware/.mbedignore ~/.platformio/packages/framework-mbed/features/.mbedignore

WORKDIR /rosbot-stm32-firmware

RUN export LC_ALL=C.UTF-8 && \
export LANG=C.UTF-8 && \
pio project init -e core2_diff -O \
"build_flags= \
-I\$PROJECTSRC_DIR/TARGET_CORE2 \
-DPIO_FRAMEWORK_MBED_RTOS_PRESENT \
-DPIO_FRAMEWORK_EVENT_QUEUE_PRESENT \
-DMBED_BUILD_PROFILE_RELEASE \
-DJOINT_STATES_ENABLE=1 \
-DROS_NOETIC_MSGS=${ROS_NOETIC_MSGS} \
-DKINEMATIC_TYPE=0" && \
pio project init -e core2_mec -O \
"build_flags= \
-I\$PROJECTSRC_DIR/TARGET_CORE2 \
-DPIO_FRAMEWORK_MBED_RTOS_PRESENT \
-DPIO_FRAMEWORK_EVENT_QUEUE_PRESENT \
-DMBED_BUILD_PROFILE_RELEASE \
-DJOINT_STATES_ENABLE=1 \
-DROS_NOETIC_MSGS=${ROS_NOETIC_MSGS} \
-DKINEMATIC_TYPE=1" && \
pio run

## =========================== ROS package builder ===============================

FROM ros:$ROS_DISTRO-ros-core AS pkg-builder

SHELL ["/bin/bash", "-c"]
Expand Down Expand Up @@ -91,7 +33,7 @@ WORKDIR /ros_ws
# clone robot github repositories
RUN mkdir -p src && \
git clone https://github.com/husarion/rosbot_ros.git --branch=melodic src/rosbot_ros && \
git clone https://github.com/husarion/rosbot_ekf.git --branch=master src/rosbot_ekf
git clone https://github.com/husarion/rosbot_ekf.git --branch=master src/rosbot_ekf

# build ROS workspace
RUN source /opt/ros/$ROS_DISTRO/setup.bash && \
Expand All @@ -101,9 +43,12 @@ RUN source /opt/ros/$ROS_DISTRO/setup.bash && \
## =========================== Final Stage ===============================
FROM ros:$ROS_DISTRO-ros-core

ARG ROSBOT_FW_RELEASE

SHELL ["/bin/bash", "-c"]

RUN apt update && apt install -y \
curl \
python3-pip \
stm32flash \
ros-$ROS_DISTRO-rosserial-python \
Expand All @@ -128,8 +73,8 @@ RUN apt update && apt install -y \
COPY --from=pkg-builder /ros_ws /ros_ws

# copy firmware built in previous stage
COPY --from=stm32_firmware_builder /rosbot-stm32-firmware/.pio/build/core2_diff/firmware.bin /root/firmware_diff.bin
COPY --from=stm32_firmware_builder /rosbot-stm32-firmware/.pio/build/core2_mec/firmware.bin /root/firmware_mecanum.bin
RUN curl -LJO https://github.com/husarion/rosbot-stm32-firmware/releases/download/$ROSBOT_FW_RELEASE/firmware_diff.bin -o /root/firmware_diff.bin && \
curl -LJO https://github.com/husarion/rosbot-stm32-firmware/releases/download/$ROSBOT_FW_RELEASE/firmware_bin.bin -o /root/firmware_mecanum.bin

# copy scripts
COPY ./flash-firmware.py /
Expand Down
4 changes: 2 additions & 2 deletions Dockerfile.simulation
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
ARG ROS_DISTRO=melodic
ARG ROS_DISTRO=noetic

FROM osrf/ros:$ROS_DISTRO-desktop

Expand Down Expand Up @@ -34,4 +34,4 @@ RUN apt-get update && \
# replace entrypoint
ENTRYPOINT ["/ros_ws/ros_entrypoint.sh"]

CMD ["bash"]
CMD ["bash"]

0 comments on commit 3e1f00e

Please sign in to comment.