Образ для самостоятельного запуска решений участниками ADO-2024
Для удобства запуска можно использовать следующий docker-compose файл:
# разместите в пустой директории, поместите в файл docker-compose.yaml
services:
app:
image: dvivanov/aido-student-image:2024
stdin_open: true
tty: true
command: /bin/bash
volumes:
- .:/home/appuser/student
docker compose up -ddocker compose exec -it app bash
volumes в docker-compose.yaml) все ваши файлы из директории, в которой вы выполнили команду запуска, доступны в /home/appuser/student - это пригодится для отладки вашего решения и получения файлов из контейнераДля реализации решения задачи необходимо использовать следующий шаблон (разместите его в файле main.py в директории /home/appuser/student):
from gym_duckietown.tasks.task_solution import TaskSolution
class DefaultTaskSolution(TaskSolution):
def __init__(self, generated_task):
super().__init__(generated_task)
def solve(self):
env = self.generated_task["env"]
# здесь необходимо разместить код решения
if __name__ == "__main__":
# код ниже требуется для возможности запуска вашего решения в описываемом образе, при отправки решения в систему проверки данный код не требуется
from gym_duckietown.tasks.default.task_generator import DefaultTaskGenerator
task_generator = DefaultTaskGenerator()
task_generator.generate_task()
solution = DefaultTaskSolution(task_generator.generated_task)
solution.solve()
../start_xvfb.sh "python3 main.py" из директории /home/appuser/student
../start_xvfb.sh необходим для использования виртуального дисплея, поскольку симуляция предполагает видео-данныеrecord.mp4 (будьте внимательны - файл будет перезаписываться в случае повторных запусков)При необходимости карта, используемая в задаче образа по умолчанию, может изменена.
Карты, предоставляемые вместе с образом, расположены в каталоге ~/aido-auto/gym-duckietown/gym_duckietown/maps/ - именно в нём проверяющая система ищет необходимую карту при подготовке симуляции.
Для использования другой карты в задаче DefaultTask необходимо:
vim ~/aido-auto/gym-duckietown/gym_duckietown/tasks/default/task_generator.pymap_name="loop_one_duckie", и установить вместо loop_one_duckie название нужной карты (без расширения .yaml)При необходимости в каталоге карт может быть размещена пользовательская карта, которую так же можно использовать в задаче.
Для изменения стартовой позиции, на которой появляется дакибот, необходимо в ранее упомянутом файле ~/aido-auto/gym-duckietown/gym_duckietown/tasks/default/task_generator.py изменить параметр user_tile_start (строка №18), представляющий из себя двумерную координату (позицию ячейки.)
Content type
Image
Digest
sha256:18627407d…
Size
1.5 GB
Last updated
over 1 year ago
docker pull dvivanov/aido-student-image:course