Skip to content
No description, website, or topics provided.
Python Shell CMake Dockerfile
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
docker
simple_goal
.gitignore
Dockerfile
README.md

README.md

Docker branch

Подготовка

Работаем в Ubuntu 16.04

Установить в свою систему

sudo apt install python-wstool python-catkin-tools -y


$FASTSENSE_WORKSPACE_DIR - папка, в которую будут ставиться всякие модули, библиотеки и тд. Эта папка будет прокинута в докер
catkin_dir=$FASTSENSE_WORKSPACE_DIR/catkin_ws - каталог, в который будут ставиться пакеты для ROS
ros_packets_dir=$catkin_dir/src - смирись и прими, что у тебя должна быть папка src, иначе ничего не соберётся

# create Firmware dir 
mkdir $FASTSENSE_WORKSPACE_DIR/Firmware

# create catkin workspace
mkdir -p $ros_packets_dir
cd $catkin_dir
git clone git@github.com:FastSense/px4_ros_gazebo.git $ros_packets_src_dir

## Initialise wstool
wstool init $ros_packets_dir # создаёт скрытые файлы для workspace

Сборка образа

В папке $FASTSENSE_WORKSPACE_DIR/catkin_ws/src есть файл Dockerfile с инструкциями по сборке docker образа

  • собирает образ со всеми нужными системными пакетами
  • копирует скрипты из docker/ (локальная папка) в /src/scripts/ (внутри докера)
docker build . -t x_kinetic_img

Запуск контейнера

docker/docker_x.sh

запускает контейнер, прокидывает папки 

            catkin_ws   <-> /home/user/catkin_ws        rw      код FastSense, работа с git в нем ведется локально (не в докере)
            Firmware    <-> /home/user/firmware         rw      код PX4 Firmware, локально надо только создать папку, далее работа через контейнер
            ~/.gazebo   <-> /home/user/.gazebo          rw      нужно для сохранения файлов миров чтобы долго не ждать 
            ~/.ssh      <-> /home/user/.ssh             rw      нужно для доступа к  github по ключу
./docker/docker_x.sh arg1 arg2

arg1 - имя образа (x_kinetic_img) arg2 - код команды для запуска

arg2 = {make_firmware, bash}

Порядок вызовов:

  • make_firmware
  • bash

make_firmware - собрать px4 Firmware внутри контейнера bash - установить переменные среды для ROS и запустить bash терминал

Примеры запуска контейнера:

cd $FASTSENSE_WORKSPACE_DIR/catkin_ws/src
./docker/docker_x.sh x_kinetic_img make_firmware
./docker/docker_x.sh x_kinetic_img bash

внутри терминала bash, запущенного в контейнере:

cd /src/catkin_ws/
catkin build 								- собрать workspace
catkin clean								- почистить workspace 
roslaunch simple_goal simple_goal.launch 	- запустить тест
You can’t perform that action at this time.