version: '3.8' services: ardupilot: image: git.spirirobotics.com/spiri/ardupilot:spiri-master command: > ./Tools/autotest/sim_vehicle.py -v copter --no-rebuild --out=udpin:0.0.0.0:5000 --enable-dds stdin_open: true tty: true mavproxy: image: git.spirirobotics.com/spiri/services-mavproxy:main command: > mavproxy.py --non-interactive --out=tcpin:0.0.0.0:5760 --master=udpout:ardupilot:5000 restart: always ports: - 5760:5760 mavros: #This service bridges our mavlink-based robot-coprosessor into ROS #In this example it connects to a simulated coprocessor. image: git.spirirobotics.com/spiri/services-ros1-mavros:master command: roslaunch mavros px4.launch fcu_url:="udp://:14555@mavproxy:14550" tgt_system:="1" environment: - "ROS_MASTER_URI=http://ros-master:11311" depends_on: ros-master: condition: service_healthy mavproxy: condition: service_started restart: always deploy: resources: limits: # cpus: '0.01' memory: 200M ulimits: nofile: soft: 1024 hard: 524288 ros-master: image: git.spirirobotics.com/spiri/services-ros1-core:main command: stdbuf -o L roscore environment: - "ROS_MASTER_URI=http://localhost:11311" restart: always ports: - "127.0.0.1:11311:11311" deploy: resources: limits: memory: 1G # Madness, setting a low ulimit here fixes memory leaks # https://answers.ros.org/question/336963/rosout-high-memory-usage/ ulimits: nofile: soft: 1024 hard: 524288