This commit is contained in:
Björn Ellensohn 2023-12-24 11:59:29 +01:00
parent a34849f92a
commit e3aaae124c
30 changed files with 851 additions and 5 deletions

View File

@ -0,0 +1,136 @@
FROM scratch
# new image
# instruction set group 1
ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=22.04
ADD file:63d5ab3ef0aab308c0e71cb67292c5467f60deafa9b0418cbb220affcd078444 /
CMD ["/bin/bash"]
# instruction set group 2
RUN echo 'Etc/UTC' > /etc/timezone && \
ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
apt-get update && \
apt-get install -q -y --no-install-recommends tzdata && \
rm -rf /var/lib/apt/lists/*
RUN apt-get update && \
apt-get install -q -y --no-install-recommends dirmngr gnupg2 && \
rm -rf /var/lib/apt/lists/*
RUN echo "deb http://packages.ros.org/ros2/ubuntu jammy main" > /etc/apt/sources.list.d/ros2-latest.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
ENV ROS_DISTRO=humble
RUN apt-get update && \
apt-get install -y --no-install-recommends ros-humble-ros-core=0.10.0-1* && \
rm -rf /var/lib/apt/lists/*
COPY file:ec5b16a0e777d7d7d041a72ffc817bf5f7b375662afa0c404f3ca36fad1afb90 /
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]
RUN apt-get update && \
apt-get install --no-install-recommends -y build-essential git python3-colcon-common-extensions python3-colcon-mixin python3-rosdep python3-vcstool && \
rm -rf /var/lib/apt/lists/*
RUN rosdep init && \
rosdep update --rosdistro $ROS_DISTRO
RUN colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml && \
colcon mixin update && \
colcon metadata add default https://raw.githubusercontent.com/colcon/colcon-metadata-repository/master/index.yaml && \
colcon metadata update
RUN apt-get update && \
apt-get install -y --no-install-recommends ros-humble-ros-base=0.10.0-1* && \
rm -rf /var/lib/apt/lists/*
# instruction set group 3
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV ROS_DISTRO=humble
# buildkit.dockerfile.v0 (a buildkit instruction)
SHELL [/bin/bash -c]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update base 26.09.2023 - test"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","mkdir","-p","/rmp_ws/src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /rmp_ws/src
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY dependencies.arm64.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY dependencies.amd64.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","Hardware platform is: $(uname -m)"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","uname","-a"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update base 29.08.2023"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","if","[","$(uname -m)","=","x86_64","];","then","echo","Copying files for linux/amd64;","mv","dependencies.amd64.repos","dependencies.repos;","else","echo","Copying files for linux/arm64;","mv","dependencies.arm64.repos","dependencies.repos;","fi"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","import","<","dependencies.repos"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /rmp_ws
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/opt/ros/${ROS_DISTRO}/setup.bash","&&","apt-get","update","-y","&&","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-foxglove-bridge","&&","rosdep","install","--from-paths","src","--ignore-src","--rosdistro","${ROS_DISTRO}","-y"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/opt/ros/${ROS_DISTRO}/setup.bash","&&","colcon","build","--symlink-install"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-rmw-cyclonedds-cpp","ros-${ROS_DISTRO}-xacro","&&","rm","-rf","/var/lib/apt/lists/*"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV UNDERLAY_WS=
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY ./docker/entrypoint.sh /
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","chmod","+x","/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update overlay 26.09.2023-take-2"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","mkdir","-p","/overlay_ws/src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /overlay_ws/src
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY overlay.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","import","<","overlay.repos"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /overlay_ws
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV DEBIAN_FRONTEND=noninteractive
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","apt-get","update","&&","DEBIAN_FRONTEND=noninteractive","apt-get","install","nano","ros-humble-robot-localization","ros-humble-joint-state-publisher","ros-humble-laser-filters","-y","&&","rosdep","install","--from-paths","src","--ignore-src","--rosdistro","${ROS_DISTRO}","-y","&&","rm","-rf","/var/lib/apt/lists/*"]
# instruction set group 4
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","colcon","build","--symlink-install"]
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY ./docker/entrypoint.sh /
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","chmod","+x","/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","apt-get","update","&&","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-rviz2","&&","rm","-rf","/var/lib/apt/lists/*"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
LABEL org.opencontainers.image.source=https://github.com/bjoernellens1/ros2_rmp
# end of image: ghcr.io/bjoernellens1/ros2_rmp/rmp:guis (id: tags: ghcr.io/bjoernellens1/ros2_rmp/rmp:guis)

View File

@ -0,0 +1,136 @@
FROM scratch
# new image
# instruction set group 1
ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=22.04
ADD file:63d5ab3ef0aab308c0e71cb67292c5467f60deafa9b0418cbb220affcd078444 /
CMD ["/bin/bash"]
# instruction set group 2
RUN echo 'Etc/UTC' > /etc/timezone && \
ln -s /usr/share/zoneinfo/Etc/UTC /etc/localtime && \
apt-get update && \
apt-get install -q -y --no-install-recommends tzdata && \
rm -rf /var/lib/apt/lists/*
RUN apt-get update && \
apt-get install -q -y --no-install-recommends dirmngr gnupg2 && \
rm -rf /var/lib/apt/lists/*
RUN echo "deb http://packages.ros.org/ros2/ubuntu jammy main" > /etc/apt/sources.list.d/ros2-latest.list
RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
ENV LANG=C.UTF-8
ENV LC_ALL=C.UTF-8
ENV ROS_DISTRO=humble
RUN apt-get update && \
apt-get install -y --no-install-recommends ros-humble-ros-core=0.10.0-1* && \
rm -rf /var/lib/apt/lists/*
COPY file:ec5b16a0e777d7d7d041a72ffc817bf5f7b375662afa0c404f3ca36fad1afb90 /
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]
RUN apt-get update && \
apt-get install --no-install-recommends -y build-essential git python3-colcon-common-extensions python3-colcon-mixin python3-rosdep python3-vcstool && \
rm -rf /var/lib/apt/lists/*
RUN rosdep init && \
rosdep update --rosdistro $ROS_DISTRO
RUN colcon mixin add default https://raw.githubusercontent.com/colcon/colcon-mixin-repository/master/index.yaml && \
colcon mixin update && \
colcon metadata add default https://raw.githubusercontent.com/colcon/colcon-metadata-repository/master/index.yaml && \
colcon metadata update
RUN apt-get update && \
apt-get install -y --no-install-recommends ros-humble-ros-base=0.10.0-1* && \
rm -rf /var/lib/apt/lists/*
# instruction set group 3
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV ROS_DISTRO=humble
# buildkit.dockerfile.v0 (a buildkit instruction)
SHELL [/bin/bash -c]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update base 26.09.2023 - test"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","mkdir","-p","/rmp_ws/src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /rmp_ws/src
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY dependencies.arm64.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY dependencies.amd64.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","Hardware platform is: $(uname -m)"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","uname","-a"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update base 29.08.2023"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","if","[","$(uname -m)","=","x86_64","];","then","echo","Copying files for linux/amd64;","mv","dependencies.amd64.repos","dependencies.repos;","else","echo","Copying files for linux/arm64;","mv","dependencies.arm64.repos","dependencies.repos;","fi"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","import","<","dependencies.repos"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /rmp_ws
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/opt/ros/${ROS_DISTRO}/setup.bash","&&","apt-get","update","-y","&&","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-foxglove-bridge","&&","rosdep","install","--from-paths","src","--ignore-src","--rosdistro","${ROS_DISTRO}","-y"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/opt/ros/${ROS_DISTRO}/setup.bash","&&","colcon","build","--symlink-install"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-rmw-cyclonedds-cpp","ros-${ROS_DISTRO}-xacro","&&","rm","-rf","/var/lib/apt/lists/*"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV RMW_IMPLEMENTATION=rmw_cyclonedds_cpp
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV UNDERLAY_WS=
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY ./docker/entrypoint.sh /
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","chmod","+x","/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","echo","update overlay 26.09.2023-take-2"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","mkdir","-p","/overlay_ws/src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /overlay_ws/src
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY overlay.repos .
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","import","<","overlay.repos"]
# buildkit.dockerfile.v0 (a buildkit instruction)
WORKDIR /overlay_ws
# buildkit.dockerfile.v0 (a buildkit instruction)
ENV DEBIAN_FRONTEND=noninteractive
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","apt-get","update","&&","DEBIAN_FRONTEND=noninteractive","apt-get","install","nano","ros-humble-robot-localization","ros-humble-joint-state-publisher","ros-humble-laser-filters","-y","&&","rosdep","install","--from-paths","src","--ignore-src","--rosdistro","${ROS_DISTRO}","-y","&&","rm","-rf","/var/lib/apt/lists/*"]
# instruction set group 4
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","colcon","build","--symlink-install"]
# buildkit.dockerfile.v0 (a buildkit instruction)
COPY ./docker/entrypoint.sh /
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","chmod","+x","/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","source","/rmp_ws/install/setup.bash","&&","apt-get","update","&&","apt-get","install","-y","--no-install-recommends","ros-${ROS_DISTRO}-rviz2","&&","rm","-rf","/var/lib/apt/lists/*"]
# buildkit.dockerfile.v0 (a buildkit instruction)
RUN ["/bin/bash","-c","vcs","pull","src"]
# buildkit.dockerfile.v0 (a buildkit instruction)
ENTRYPOINT ["/entrypoint.sh"]
# buildkit.dockerfile.v0 (a buildkit instruction)
LABEL org.opencontainers.image.source=https://github.com/bjoernellens1/ros2_rmp
# end of image: ghcr.io/bjoernellens1/ros2_rmp/rmp:guis (id: tags: ghcr.io/bjoernellens1/ros2_rmp/rmp:guis)

View File

@ -0,0 +1,13 @@
FROM scratch
# new image
# instruction set group 1
ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=22.04
ADD file:36d444e2cede3abe58191dcf28890b874c0908f5259bf7e8855338555701c4c5 /
CMD ["/bin/bash"]
# end of image: ubuntu:latest (id: tags: ubuntu:latest)

View File

@ -0,0 +1,13 @@
FROM scratch
# new image
# instruction set group 1
ARG RELEASE
ARG LAUNCHPAD_BUILD_ARCH
LABEL org.opencontainers.image.ref.name=ubuntu
LABEL org.opencontainers.image.version=22.04
ADD file:36d444e2cede3abe58191dcf28890b874c0908f5259bf7e8855338555701c4c5 /
CMD ["/bin/bash"]
# end of image: ubuntu:latest (id: tags: ubuntu:latest)

29
cert.pem Normal file
View File

@ -0,0 +1,29 @@
-----BEGIN CERTIFICATE-----
MIIFCTCCAvGgAwIBAgIUSToN1sKvyyEHUX43N0x2pJ2tozYwDQYJKoZIhvcNAQEL
BQAwFDESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTIzMDgyMzE0NDgwMFoXDTI0MDgy
MjE0NDgwMFowFDESMBAGA1UEAwwJbG9jYWxob3N0MIICIjANBgkqhkiG9w0BAQEF
AAOCAg8AMIICCgKCAgEAuz16ToP/oe0GlHELnOxXVMbQ4ygDhAoJRDW+h3AN01QP
GD8hKByM5QKUd1bnUa40jKeENerJLVpwvYW+wksIw8OEoU+XKLQav59LkumMx94Y
92vhfYPEdjJGfBSemf4GALw0GmeizeglGKQAomBN2fV0Wege77T6aE3GSafzmgWk
WKIXLzYd0C+fzMUnf7TtbpacG71D1VAryedq2/srR6ZnrP92SyWB6vJt9kdFxhie
V0zdrmiLhKbj4QBHn2ZfBzBe33eLHEJc7DlQ7fkQr58PVnF35h0lIYC2YdZjGSIe
1r12HGCvjDlDX3ygznsnMIIOGPd78vzpiVUlIk1MLqS4FeAMqyTFuljZ7UjG2+Yf
p+9gJ/3vfbCiWmtwJOuZvCeXvCwUGlvJH7aFan9UKG0OCuIOBY+8ZqkbgKQ8lCNv
hk5HD8z49pa2u9Tzau68KMLOIhJ000sPW17RrWTrQK0izLeNmxlUvNFtg65pCpE7
yUinlKVfBjPraK1htuZL/E0MZ1sq9YV/VbjFQnrhad1bZ+DvLRuX2Ehd8gsUt6UL
hQW3vq7GmXo0u+xT1XIkCEYdNUGo4xXKr925MmcRVa6gR5dsAuAoQ5cN/5z4wnJt
eNonakERtPomAC/ACTsbr3RjpG6h0jPHXta5XC+PKydV9riuk/LAIRIF0dKGfHUC
AwEAAaNTMFEwHQYDVR0OBBYEFKL/qoyl0fc1f6VBhW5GJDpae5a7MB8GA1UdIwQY
MBaAFKL/qoyl0fc1f6VBhW5GJDpae5a7MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZI
hvcNAQELBQADggIBADoEzbUqOiTbTOppCRP3q+l8Z3mlymtZgz/BcyGms+8B2LMC
xSJ88+lkg23XG8KQ+oIOHDaLBsVUePeSLLt3MAtDMbBEDUsUf2nWK+l3IbNlMxTn
1beb/FM1QRwLfbqGvVi7afpZvLH7wJc2SCv+996eW/Hau5yDxntqupjAd1G7pDrJ
PQMJhmWg1VQHxBC1MyMVdz8r4nqBSIKN5XMxdrZitXOa6c2b2/SvolGN6UEUD1at
LAbS1nXloBNVuOrmTCxRxCKxec8+2qs4QOc/Ux7jF9Q65TkW1IkucnDaOluDcufY
n4GQXaRFyQJInoGpWlOM3hJ2ZlhlQj+tjuvTyu7uWCINC4r0bYqpIpY4mWzXKRFT
e5M4nVy8YukjsM82zZRvXdD8Mlfuxb8xkpQBdqVClO24TSjZOCAw4qsizpV/N7S9
NmQ5+2CI4l3KvhH1gAjtXvNOOicn7laXDtz5wc1fZxmUptQQp5JXFtSguLpJpGli
r7s8wRPnVJW3HhjNIzYIzOm3J4dtl1+ZqHGfeFes+8ty2HAJK1AmnRvt8UQK3VjR
YrlzbM6+cjzmJQ3S3LTXOi0Zssf6SQspCaAMP8hUXhZyi8y7PMNHpp/LuUEFox03
/L8X5DB9SXofdFp+1jVh6WZCV8wt39Fxo+l+5afpeIc138XOkgvsrBFNzTi9
-----END CERTIFICATE-----

View File

@ -5,13 +5,10 @@
<Interfaces> <Interfaces>
<NetworkInterface name="tailscale0"/> <NetworkInterface name="tailscale0"/>
</Interfaces> </Interfaces>
<AllowMulticast>false</AllowMulticast> <AllowMulticast>true</AllowMulticast>
</General> </General>
<Discovery> <Discovery>
<Peers> <Peers>
<Peer address="100.122.167.177"/>
<Peer address="100.73.99.155"/>
<Peer address="10.241.125.101"/>
</Peers> </Peers>
<ParticipantIndex>auto</ParticipantIndex> <ParticipantIndex>auto</ParticipantIndex>
<MaxAutoParticipantIndex>40</MaxAutoParticipantIndex> <MaxAutoParticipantIndex>40</MaxAutoParticipantIndex>
@ -21,4 +18,4 @@
<OutputFile>stdout</OutputFile> <OutputFile>stdout</OutputFile>
</Tracing> </Tracing>
</Domain> </Domain>
</CycloneDDS> </CycloneDDS>

View File

@ -101,6 +101,8 @@ services:
- linux/amd64 - linux/amd64
command: > command: >
/bin/bash /bin/bash
devices:
- /dev/dri:/dev/dri
# Robot State Publisher # Robot State Publisher
rsp: rsp:

62
husarnet.yaml Normal file
View File

@ -0,0 +1,62 @@
services:
### Husarnet VPN Container for remote access
husarnet:
image: husarnet/husarnet
restart: unless-stopped
volumes:
- /var/lib/husarnet # This will persist your Husarnet Client keys, thus IP of the container will be stable/the same between (re)boots
sysctls:
- net.ipv6.conf.all.disable_ipv6=0 # Husarnet is using IPv6 for the internal connections
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun
env_file:
- ./husarnet/.env # create .env file in the same folder as Dockerfile and specify HOSTNAME and JOINCODE there
color_controller:
build:
dockerfile: husarnet/Dockerfile
volumes:
- ./husarnet/cyclonedds.xml:/cyclonedds.xml
command:
- bash
- -c
- |
export CYCLONEDDS_URI=file:///cyclonedds.xml
ros2 run my_demo_pkg color_controller
network_mode: service:husarnet
move_controller:
build:
dockerfile: husarnet/Dockerfile
volumes:
- ./husarnet/cyclonedds.xml:/cyclonedds.xml
command:
- bash
- -c
- |
export CYCLONEDDS_URI=file:///cyclonedds.xml
ros2 run my_demo_pkg move_controller
network_mode: service:husarnet
turtle_sim:
image: osrf/ros:galactic-desktop
privileged: true
environment:
# Allows graphical programs in the container.
- DISPLAY=${DISPLAY}
- QT_X11_NO_MITSHM=1
- NVIDIA_DRIVER_CAPABILITIES=all
volumes:
# Allows graphical programs in the container.
- /tmp/.X11-unix:/tmp/.X11-unix:rw
- ${XAUTHORITY:-$HOME/.Xauthority}:/root/.Xauthority
- ./husarnet/cyclonedds.xml:/cyclonedds.xml
command:
- bash
- -c
- |
export CYCLONEDDS_URI=file:///cyclonedds.xml
ros2 run turtlesim turtlesim_node
network_mode: service:husarnet # This is the most important line in this setup. This will put the Husarnet Client in the same network namespace as your app (in this example: turtle_sim)

2
husarnet/.env Normal file
View File

@ -0,0 +1,2 @@
JOINCODE=fc94:b01d:1803:8dd8:b293:5c7d:7639:932a/6fYqR5qmsrn3DjvK5KcQQL
HOSTNAME=zenbook-test-1

17
husarnet/Dockerfile Normal file
View File

@ -0,0 +1,17 @@
FROM osrf/ros:galactic-desktop
SHELL ["/bin/bash", "-c"]
WORKDIR /app
# build custom ROS 2 nodes
COPY ./husarnet/ros2_ws ros2_ws/
RUN cd ros2_ws && \
source /opt/ros/galactic/setup.bash && \
colcon build
COPY ./husarnet/ros_entrypoint.sh /
RUN chmod +x /ros_entrypoint.sh
ENTRYPOINT ["/ros_entrypoint.sh"]
CMD ["bash"]

27
husarnet/cyclonedds.xml Normal file
View File

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<CycloneDDS xmlns="https://cdds.io/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://cdds.io/config https://raw.githubusercontent.com/eclipse-cyclonedds/cyclonedds/master/etc/cyclonedds.xsd">
<Domain id="any">
<General>
<NetworkInterfaceAddress>hnet0</NetworkInterfaceAddress>
<AllowMulticast>false</AllowMulticast>
<MaxMessageSize>65500B</MaxMessageSize>
<FragmentSize>4000B</FragmentSize>
<Transport>udp6</Transport>
</General>
<Discovery>
<Peers>
<Peer address="turtlesim"/>
</Peers>
<ParticipantIndex>auto</ParticipantIndex>
</Discovery>
<Internal>
<Watermarks>
<WhcHigh>500kB</WhcHigh>
</Watermarks>
</Internal>
<Tracing>
<Verbosity>severe</Verbosity>
<OutputFile>stdout</OutputFile>
</Tracing>
</Domain>
</CycloneDDS>

View File

@ -0,0 +1,53 @@
#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
from functools import partial
from turtlesim.srv import SetPen
import random
class ColorControllerNode(Node):
def __init__(self):
super().__init__("color_controller")
self.r_ = 100
self.g_ = 100
self.b_ = 100
self.control_loop_timer_ = self.create_timer(1.0, self.control_loop)
def control_loop(self):
self.r_ = random.randint(0, 255)
self.g_ = random.randint(0, 255)
self.b_ = random.randint(0, 255)
self.call_set_pen_server(self.r_, self.g_, self.b_)
def call_set_pen_server(self, r, g, b):
client = self.create_client(SetPen, "/turtle1/set_pen")
while not client.wait_for_service(1.0):
self.get_logger().warn("Waiting for server Set Pen....")
request = SetPen.Request()
request.r = r
request.g = g
request.b = b
request.width = 10
future = client.call_async(request)
future.add_done_callback(partial(self.callback_set_pen, r=r, g=g, b=b))
def callback_set_pen(self, future, r, g, b):
try:
response = future.result()
self.get_logger().info("[" +str(r) + ", " + str(g) + ", " + str(b) + "] SetPen srv response: " + str(response))
except Exception as e:
self.get_logger().error("Service call failed %r" % (e,))
def main(args=None):
rclpy.init(args=args)
node = ColorControllerNode()
rclpy.spin(node)
rclpy.shutdonw()
if __name__ == "__main__":
main()

View File

@ -0,0 +1,32 @@
#!/usr/bin/env python3
import rclpy
from rclpy.node import Node
from geometry_msgs.msg import Twist
import math
class MoveControllerNode(Node):
def __init__(self):
super().__init__("move_controller")
self.cmd_vel_publisher_ = self.create_publisher(
Twist, "turtle1/cmd_vel", 10)
self.control_loop_timer_ = self.create_timer(0.01, self.control_loop)
def control_loop(self):
msg = Twist()
msg.linear.x = 2.0
msg.angular.z =0.3*math.pi
# self.get_logger().info("publishing to turtle1/cmd_vel")
self.cmd_vel_publisher_.publish(msg)
def main(args=None):
rclpy.init(args=args)
node = MoveControllerNode()
rclpy.spin(node)
rclpy.shutdonw()
if __name__ == "__main__":
main()

View File

@ -0,0 +1,22 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>my_demo_pkg</name>
<version>0.0.0</version>
<description>TODO: Package description</description>
<maintainer email="dominik.nwk@gmail.com">dominik</maintainer>
<license>TODO: License declaration</license>
<depend>rclpy</depend>
<depend>geometry_msgs</depend>
<depend>turtlesim</depend>
<test_depend>ament_copyright</test_depend>
<test_depend>ament_flake8</test_depend>
<test_depend>ament_pep257</test_depend>
<test_depend>python3-pytest</test_depend>
<export>
<build_type>ament_python</build_type>
</export>
</package>

View File

@ -0,0 +1,4 @@
[develop]
script-dir=$base/lib/my_demo_pkg
[install]
install-scripts=$base/lib/my_demo_pkg

View File

@ -0,0 +1,27 @@
from setuptools import setup
package_name = 'my_demo_pkg'
setup(
name=package_name,
version='0.0.0',
packages=[package_name],
data_files=[
('share/ament_index/resource_index/packages',
['resource/' + package_name]),
('share/' + package_name, ['package.xml']),
],
install_requires=['setuptools'],
zip_safe=True,
maintainer='dominik',
maintainer_email='dominik.nwk@gmail.com',
description='TODO: Package description',
license='TODO: License declaration',
tests_require=['pytest'],
entry_points={
'console_scripts': [
"move_controller = my_demo_pkg.move_controller:main",
"color_controller = my_demo_pkg.color_controller:main",
],
},
)

View File

@ -0,0 +1,23 @@
# Copyright 2015 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from ament_copyright.main import main
import pytest
@pytest.mark.copyright
@pytest.mark.linter
def test_copyright():
rc = main(argv=['.', 'test'])
assert rc == 0, 'Found errors'

View File

@ -0,0 +1,25 @@
# Copyright 2017 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from ament_flake8.main import main_with_errors
import pytest
@pytest.mark.flake8
@pytest.mark.linter
def test_flake8():
rc, errors = main_with_errors(argv=[])
assert rc == 0, \
'Found %d code style errors / warnings:\n' % len(errors) + \
'\n'.join(errors)

View File

@ -0,0 +1,23 @@
# Copyright 2015 Open Source Robotics Foundation, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
from ament_pep257.main import main
import pytest
@pytest.mark.linter
@pytest.mark.pep257
def test_pep257():
rc = main(argv=['.', 'test'])
assert rc == 0, 'Found code style errors / warnings'

View File

@ -0,0 +1,21 @@
cmake_minimum_required(VERSION 3.5)
project(my_turtle_bringup)
# Default to C++14
if(NOT CMAKE_CXX_STANDARD)
set(CMAKE_CXX_STANDARD 14)
endif()
if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wall -Wextra -Wpedantic)
endif()
# find dependencies
find_package(ament_cmake REQUIRED)
install(DIRECTORY
launch
DESTINATION share/${PROJECT_NAME}
)
ament_package()

View File

@ -0,0 +1,19 @@
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
ld = LaunchDescription()
move_controller_node = Node(
package="my_demo_pkg",
executable="move_controller"
)
color_controller_node = Node(
package="my_demo_pkg",
executable="color_controller"
)
ld.add_action(move_controller_node)
ld.add_action(color_controller_node)
return ld

View File

@ -0,0 +1,25 @@
from launch import LaunchDescription
from launch_ros.actions import Node
def generate_launch_description():
ld = LaunchDescription()
turtlesim_node = Node(
package="turtlesim",
executable="turtlesim_node"
)
move_controller_node = Node(
package="my_demo_pkg",
executable="move_controller"
)
color_controller_node = Node(
package="my_demo_pkg",
executable="color_controller"
)
ld.add_action(turtlesim_node)
ld.add_action(move_controller_node)
ld.add_action(color_controller_node)
return ld

View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
<package format="3">
<name>my_turtle_bringup</name>
<version>0.0.0</version>
<description>TODO: Package description</description>
<maintainer email="dominik.nwk@gmail.com">dominik</maintainer>
<license>TODO: License declaration</license>
<buildtool_depend>ament_cmake</buildtool_depend>
<exec_depend>my_demo_pkg</exec_depend>
<test_depend>ament_lint_auto</test_depend>
<test_depend>ament_lint_common</test_depend>
<export>
<build_type>ament_cmake</build_type>
</export>
</package>

View File

@ -0,0 +1,7 @@
#!/bin/bash
set -e
source /opt/ros/galactic/setup.bash
source /app/ros2_ws/install/setup.bash
exec "$@"

52
key.pem Normal file
View File

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
O61K2Igm/AywqweBe9cWRgB7lOXwIA==
-----END PRIVATE KEY-----

View File

@ -0,0 +1,7 @@
image: map_floor_mainb_save_retouched.pgm
mode: trinary
resolution: 0.05
origin: [-20.9, -7.03, 0]
negate: 0
occupied_thresh: 0.65
free_thresh: 0.25

File diff suppressed because one or more lines are too long

47
slim.report.json Normal file
View File

@ -0,0 +1,47 @@
{
"version": "1.1",
"engine": "linux|Transformer|1.40.6|1.40.6|latest",
"containerized": false,
"host_distro": {
"name": "NixOS",
"version": "23.11",
"display_name": "NixOS 23.11 (Tapir)"
},
"type": "build",
"state": "error",
"target_reference": "ubuntu",
"system": {
"type": "",
"release": "",
"distro": {
"name": "",
"version": "",
"display_name": ""
}
},
"source_image": {
"identity": {
"id": ""
},
"size": 0,
"size_human": "",
"create_time": "",
"docker_version": "",
"architecture": "",
"container_entry": {
"exe_path": ""
}
},
"minified_image_size": 0,
"minified_image_size_human": "",
"minified_image": "",
"minified_image_has_data": false,
"minified_by": 0,
"artifact_location": "",
"container_report_name": "",
"seccomp_profile_name": "",
"apparmor_profile_name": "",
"image_stack": null,
"image_created": false,
"image_build_engine": ""
}