Giter VIP home page Giter VIP logo

armbot's Introduction

Armbot - инструкция

1. Настройка окружения

Установить Docker с официального сайта или запустить docker-сервер командой dockerd.

Перейти в папку проекта Armbot. Armbot - название корневой папки проекта. Все пути в инструкции ниже, начинающиеся от Armbot, считаем от начала проекта.

1.1. Документация:

1.1.1. Перейти в папку с документацией: cd docs

1.1.2. Собрать документацию: ./gradlew copyClientResources :back:shadowJar build (нужен доступ к интернету)

1.1.3. Перейти в папку: cd back/build/libs (директория создается автоматически при сборке)

1.1.4. Запустить документацию из текущей папки: java -jar back-0.1-all.jar (можно скопировать в любую другую папку и запустить оттуда)

Важно! По умолчанию в проекте задана Java 11. Поменять версию можно в файле Armbot/docs/back/build.gradle:

java {
  sourceCompatibility = JavaVersion.toVersion("11")
  targetCompatibility = JavaVersion.toVersion("11")
}

Для Java 8 укажите 1.8 вместо 11:

java {
  sourceCompatibility = JavaVersion.toVersion("1.8")
  targetCompatibility = JavaVersion.toVersion("1.8")
}

1.1.5. Открыть в браузере localhost:9080

1.2. Робот:

1.2.1. Перейти в корневую папку проекта Armbot

1.2.2. Собрать окружение для робота в docker-контейнер: sudo docker build -t armbot-img . --network=host --build-arg from=ubuntu:18.04

1.2.3. Сохранить docker-образ: sudo docker save armbot-img > armbot-img.tar

1.2.4. Заархивировать docker-образ: tar -zcvf armbot-img.tar.gz armbot-img.tar

1.3. Перенести на целевую машину

1.3.1. Скачать архив armbot-img.tar.gz на флешку. Скопировать на целевую машину

1.3.2. Разархивировать armbot-img.tar.gz: tar -xvf armbot-img.tar.gz

1.3.3. Загрузить docker-образ робота: sudo docker load < armbot-img.tar


2. Установить переменные среды

Нужно прописать путь до проекта.

Добавьте переменную среды в файл .bashrc (каталог /home): export ARMBOT_PATH='/home/e/ROS/Armbot' (вместо '/home/e/ROS/Armbot' напишите свой путь к корневой папке проекта)

Примените изменения source ~/.bashrc


3. Настроить скрипты

3.1. Дать права на запуск скриптов: sudo chmod +x scripts/*sh

3.1*. Исправить ошибку перед запуском скриптов (преобразование окончаний строк из формата DOS в формат UNIX):

Выполнить sed -i -e 's/\r$//' "$ARMBOT_PATH/scripts/fix.sh"

Выполнить ./scripts/fix.sh

* - нужно делать только при первом запуске скриптов


4. Запустить робота

0*. Открыть скетч Armbot/src/armbot_move/control-arduino/move_arduino/move_arduino.ino в Arduino IDE. Загрузить скетч.

* Пропустить этот шаг, если нужный скетч уже загружен на плату Arduino.

4.1. Режим разработки и отладки

Перейти в корень проекта. Открыть 4 окна терминала.

1 терминал:

  • Запустить docker-контейнер с окружением для робота: sudo ./scripts/docker/run_armbot_docker.sh
  • Перейти в рабочую директорию cd workspace
  • Собрать проект catkin_make (если будут ошибки сборки, можно попробовать собрать пакеты изолированно catkin_make_isolated)
  • Прописать пути source devel/setup.bash
  • Запустить модель робота roslaunch armbot_description armbot_npoa.rviz.launch (или с моделью клавиатуры roslaunch armbot_description armbot_npoa.rviz.launch keyboard:=true)

2 терминал:

  • Зайти в docker-контейнер sudo docker exec -ti armbot bash
  • Перейти в рабочую директорию cd workspace
  • Прописать пути source devel/setup.bash
  • Запустить подписчик на движения roslaunch armbot_move move.rviz.launch

3 терминал:

  • Зайти в docker-контейнер sudo docker exec -ti armbot bash
  • Перейти в рабочую директорию cd workspace
  • Прописать пути source devel/setup.bash
  • Запустить подписчик движений на Arduino rosrun rosserial_python serial_node.py _port:=/dev/ttyACM0 _baud:=115200

4 терминал:

  • Запустить публикацию движений с докером ./scripts/armbot.sh start (или запустить робота из веб-интерфейса)

4.2. Режим запуска

Выполнить в терминале:

  • Запустить docker-контейнер с окружением для робота: ./scripts/docker/run_armbot_docker.sh
  • Перейти в рабочую директорию cd workspace
  • Собрать проект catkin_make (если будут ошибки сборки, можно попробовать собрать пакеты изолированно catkin_make_isolated)
  • Прописать пути source devel/setup.bash
  • Запустить модель робота без визуализации roslaunch armbot_move run.launch (или с визуализацией roslaunch armbot_move run.launch gui:=true)


5. Описание команд

Файл command_description.txt. Пример описания команды:

direct:0.2872 4.83407e-10
right:-0.180411 -0.223463
left:-0.180411 0.223463
topLeft:0.237525 0.133799 0.0463589

На примере последней команды:

  • topLeft - название команды
  • 0.237525 - значение координаты X
  • 0.133799 - значение координаты Y
  • 0.0463589 - значение координаты Z (может отсутствовать, тогда берется значение из проекта)

Название команды пишется слева от двоеточия. После двоеточия через пробел указываются координаты. Координата Z необязательная.

Файл commands.txt. Пример описания перечня выполняемых команд:

right 6
left 4

Указывается название команды и через пробел значение задержки (в секундах) после выполнения команды.


6. Как добавить модель робота

6.1. Подготовить модель в Solidworks:

  1. Подготовить модель;
  2. Создать сборку из всех деталей (можно создать несколько сборок на каждое звено и одну общую - так будет удобнее работать);
  3. Рассчитать системы координат и расставить в модели по всем звеньям;
  4. По возможности задать материалы (или можно потом задать физичесакие характеристики каждого звена) - это нужно для симулятора Gazebo;
  5. Скачать и установить плагин SolidWorks to URDF Exporter (могут возникнуть проблемы, если Solidworks установлен не в папку по умолчанию);
  6. Задать links, joints, указать тип соединения, выбрать детали, которые будут включены в каждый link, выгрузить (ВАЖНО!!! Чтобы расчеты в модели велись по текущей программе, надо последний линк задать как "link_grip");
  7. Название папки задать как название пакета в проекте;
  8. Плагин сгенериует ROS-пакет.

6.2. Перенести пакет в проект.

6.3. Сформировать конфигурацию робота с помощью MoveIt Setup Assistant.

Запуск MoveIt Setup Assistant из Docker-контейнера: roslaunch moveit_setup_assistant setup_assistant.launch


7. Обновление версии робота

Версию робота необходимо поменять в 2х местах:

  • В проекте: Armbot/version (выводится в логи при запуске move, выводится в UI при запуске UI из проекта)
  • В UI: Armbot/docs/back/src/main/resources (выводится в UI только если не может найти файл $ARMBOT_PATH/version)


8. Конфиги робота

В папке /home/armbot-info создайте файл Armbot.txt и укажите в нем нужные конфиги для робота. Содержимое этого файла можно поменять через пользовательский интерфейс.

Если не будет конфигов в файле Armbot.txt, то они будут браться по умолчанию из Armbot/src/armbot_move/src/settings.hpp

Пример файла с поддерживаемыми конфигами:

# Положение по оси Z
zPositionDefault = 0.06
zPositionDefaultDown = 0.012
# Ориентация по умолчанию
defaultOrientation_x = 0.999979
defaultOrientation_y = 0.00740374
defaultOrientation_z = 7.85675e-05
defaultOrientation_w = -3.01276e-06
# Позиция по умолчанию
defaultPosition_x = 0.105
defaultPosition_y = 0
defaultPosition_z = 0.05
# Сохранять координаты по вебсокету
saveWebSocket = true
# Сохранять координаты в файл
saveToFile = false

armbot's People

Contributors

allicen avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.