# Copyright (C) 2022, Raffaello Bonghi # All rights reserved # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # 3. Neither the name of the copyright holder nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND # CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS # FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, # PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; # OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, # WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, # EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. version: "3.9" services: core: # https://nanosaur.ai image: nanosaur/nanosaur:${DOCKER_TAG:-latest} network_mode: ${DOCKER_NETWORK:-host} restart: always devices: - "/dev/i2c-0" # display right [ID:3C] - "/dev/i2c-1" # I2C motors [ID:60] display left [ID:3C] - "/dev/input" # Joystick robot environment: - ROS_DOMAIN_ID=${ROS_DOMAIN_ID:-0} - NANOSAUR_COVER_TYPE=${NANOSAUR_COVER_TYPE:-fisheye} - RMW_IMPLEMENTATION=${RMW_IMPLEMENTATION:-rmw_cyclonedds_cpp} labels: - "com.centurylinklabs.watchtower.scope=nanosaur" volumes: - "/run/jtop.sock:/run/jtop.sock" # jtop socket - "/run/ros2sm.sock:/run/ros2sm.sock" # ros2_system_manager # if you want change the nanosaur configuration # Read https://github.com/rnanosaur/nanosaur/wiki/configuration - "/opt/nanosaur/param:/opt/ros_ws/install/share/nanosaur_bringup/param" # Extra configuration folder perception: image: nanosaur/perception:${PERCEPTION_DOCKER_TAG:-latest} network_mode: ${DOCKER_NETWORK:-host} restart: always privileged: true depends_on: - "core" environment: - ROS_DOMAIN_ID=${ROS_DOMAIN_ID:-0} - NANOSAUR_COVER_TYPE=${NANOSAUR_COVER_TYPE:-fisheye} - RMW_IMPLEMENTATION=${NANOSAUR_RMW:-rmw_cyclonedds_cpp} labels: - "com.centurylinklabs.watchtower.scope=nanosaur" volumes: - "/tmp/argus_socket:/tmp/argus_socket" # CSI camera # if you want change the nanosaur configuration # Read https://github.com/rnanosaur/nanosaur/wiki/configuration - "/opt/nanosaur/param:/opt/ros_ws/install/share/nanosaur_perception/param" # Extra configuration folder webgui: # Webgui for nanosaur. Open a web interface on: https://.local:8888 image: nanosaur/webgui:main network_mode: ${DOCKER_NETWORK:-host} restart: always environment: - ROS_DOMAIN_ID=${ROS_DOMAIN_ID:-0} labels: - "com.centurylinklabs.watchtower.scope=nanosaur" watchtower: image: containrrr/watchtower network_mode: ${DOCKER_NETWORK:-host} restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock command: --scope nanosaur --interval 18000 # 5 hours labels: - "com.centurylinklabs.watchtower.scope=nanosaur"