diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index fcd3836..38a0150 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -5,18 +5,13 @@ version: '3' # Define services services: - # Python Development Container - python-dev: - # Use Dockerfile in current folder - build: . + # Particle filter Container + particle-filter: + # Use Dockerfile in particle-filter folder + build: ./particle-filter # Mount folders on host to app folder in container volumes: - - ../src/control:/app/control - ../src/dataset:/app/dataset - - ../src/localization:/app/localization - - ../src/planning:/app/planning - - ../src/semantic:/app/semantic - - ../src/visualization:/app/visualization - ../src/polex:/app/polex # Set DISPLAY variable and network mode for GUIs environment: @@ -24,3 +19,62 @@ services: network_mode: "host" # Set working directory in container to app folder working_dir: /app + + # Planning Container + planning: + # Use Dockerfile in planning folder + build: ./planning + # Mount folders on host to app folder in container + volumes: + - ../src/dataset:/app/dataset + - ../src/planning:/app/planning + # Set DISPLAY variable and network mode for GUIs + environment: + - DISPLAY=${IP_ADDRESS}:0.0 + network_mode: "host" + # Set working directory in container to app folder + working_dir: /app + + # Semantic Container + semantic: + # Use Dockerfile in semantic folder + build: ./semantic + # Mount folders on host to app folder in container + volumes: + - ../src/semantic:/app/semantic + # Set DISPLAY variable and network mode for GUIs + environment: + - DISPLAY=${IP_ADDRESS}:0.0 + network_mode: "host" + # Set working directory in container to app folder + working_dir: /app + + # Visualization Container + visualization: + # Use Dockerfile in visualization folder + build: ./visualization + # Mount folders on host to app folder in container + volumes: + - ../src/dataset:/app/dataset + - ../src/visualization:/app/visualization + # Set DISPLAY variable and network mode for GUIs + environment: + - DISPLAY=${IP_ADDRESS}:0.0 + network_mode: "host" + # Set working directory in container to app folder + working_dir: /app + + # Velocity Control Container + velocity-control: + # Use Dockerfile in velocity-control folder + build: ./velocity-control + # Mount folders on host to app folder in container + volumes: + - ../src/control:/app/control + - ../src/dataset:/app/dataset + # Set DISPLAY variable and network mode for GUIs + environment: + - DISPLAY=${IP_ADDRESS}:0.0 + network_mode: "host" + # Set working directory in container to app folder + working_dir: /app \ No newline at end of file diff --git a/docker/Dockerfile b/docker/particle-filter/Dockerfile similarity index 100% rename from docker/Dockerfile rename to docker/particle-filter/Dockerfile diff --git a/docker/planning/Dockerfile b/docker/planning/Dockerfile new file mode 100644 index 0000000..b09d219 --- /dev/null +++ b/docker/planning/Dockerfile @@ -0,0 +1,15 @@ +FROM python:3.6.9 + +RUN apt-get update && \ + apt-get install -y \ + build-essential \ + python3-dev \ + python3-pip + +RUN pip3 install --upgrade pip && \ + pip3 install \ + numpy \ + matplotlib \ + scipy + +CMD ["/bin/bash"] diff --git a/src/semantic/Dockerfile b/docker/semantic/Dockerfile similarity index 96% rename from src/semantic/Dockerfile rename to docker/semantic/Dockerfile index f129342..f35ef56 100644 --- a/src/semantic/Dockerfile +++ b/docker/semantic/Dockerfile @@ -23,6 +23,5 @@ RUN pip install -U pip && \ keras RUN python -m spacy download en_core_web_sm - pickle-mixin CMD ["/bin/bash"] diff --git a/docker/velocity-control/Dockerfile b/docker/velocity-control/Dockerfile new file mode 100644 index 0000000..1c19808 --- /dev/null +++ b/docker/velocity-control/Dockerfile @@ -0,0 +1,16 @@ +FROM python:3.6.9 + +RUN apt-get update && \ + apt-get install -y \ + build-essential \ + python3-dev \ + python3-pip + +RUN pip3 install --upgrade pip && \ + pip3 install \ + numpy \ + matplotlib \ + scipy \ + cvxpy + +CMD ["/bin/bash"] diff --git a/docker/visualization/Dockerfile b/docker/visualization/Dockerfile new file mode 100644 index 0000000..bcddfbb --- /dev/null +++ b/docker/visualization/Dockerfile @@ -0,0 +1,18 @@ +FROM python:3 + +RUN apt-get update && \ + apt-get install -y \ + build-essential \ + python-opencv \ + libpcl-dev + +RUN pip install -U pip && \ + pip install -U \ + cython \ + numpy \ + scipy \ + matplotlib \ + nltk \ + setuptools + +CMD ["/bin/bash"] \ No newline at end of file diff --git a/src/control/mpc_along_trajectory.py b/src/control/mpc_along_trajectory.py index 887f27e..2c306f2 100644 --- a/src/control/mpc_along_trajectory.py +++ b/src/control/mpc_along_trajectory.py @@ -1,7 +1,7 @@ from mpc_func import * from Astar import * -poses = load_poses('pose_gt.csv') +poses = load_poses('/app/dataset/data/pose_gt.csv') sparseness = 100 # print(poses.shape[0]/sparseness) # plot_position(poses[1::sparseness]) diff --git a/src/control/one_round_demo.py b/src/control/one_round_demo.py index acea9ac..7ecc2bc 100644 --- a/src/control/one_round_demo.py +++ b/src/control/one_round_demo.py @@ -1,6 +1,6 @@ from mpc_func import * -poses = load_poses('pose_gt.csv') +poses = load_poses('/app/dataset/data/pose_gt.csv') sparseness = 100 sparse_poses = poses[1::sparseness, 1:3] diff --git a/src/localization/localization.py b/src/localization/localization.py deleted file mode 100644 index 6f19cb4..0000000 --- a/src/localization/localization.py +++ /dev/null @@ -1,16 +0,0 @@ -# localization.py - -import numpy as np -import matplotlib.pyplot as plt -import csv -import os -from PoseList import PoseList -from scipy.spatial import distance - - -def main(): - pass - - -if __name__ == '__main__': - main() diff --git a/src/localization/read_vel_hits.py b/src/localization/read_vel_hits.py index de1e6e1..f93a22b 100644 --- a/src/localization/read_vel_hits.py +++ b/src/localization/read_vel_hits.py @@ -35,7 +35,7 @@ def verify_magic(s): def main(args): if len(sys.argv) < 2: - print "Please specifiy input bin file" + print("Please specify input bin file") return 1 f_bin = open(sys.argv[1], "r") @@ -51,14 +51,14 @@ def main(args): break if not verify_magic(magic): - print "Could not verify magic" + print("Could not verify magic") num_hits = struct.unpack('