MOV-AI / movai-flow

MOV.AI Flow™ - The IDE that brings visualization and structure to ROS
Other
121 stars 15 forks source link
community-edition docker ignition-gazebo movai ros ros-noetic

An IDE that introduces visualization and structure to ROS

ROS1-Noetic CircleCI Official Release Pre Release PR Checks Quality Gate Status Twitter

MOV.AI Flow™, The IDE that introduces visualization and structure to ROS.

Overview

An IDE that introduces visualization and structure to ROS. You can develop faster, understand ROS projects in an instant, and debug easily.

Teaser2

MOV.AI Flow™ brings many features to your ROS project development

Web-based Visual ROS Editor Built-in visual State machine and node orchestration
Callback Editor Visual Debugging
Configuration Editor Out-of-the-box Integration with the ROS Ecosystem

Installation

Please follow our installation procedure in the documentation.


Usage

You can find an overview of icons and CLI for launching the installed software. Follow our readme page for a detailed explanation.

Modes of operation: host vs isolated network

MOV.AI Flow™ Can run between two modes at a given time. The host mode and the isolated mode. Please find the details of both in our documentation website.

Desktop shortcuts

Installing the Flow package will provide a few application shortcuts in the programming section:

DesktopIcons

CLI

Installing the MOV.AI Flow™ package will provide a few command line tools to control the cluster of containers running the flow:

MOV.AI Flow™ components (docker)

MOV.AI Flow™ initiates a set of docker containers orchestrated using docker-compose, namely:

Some directories in the containers are mounted, which means that their contents are synchronized between your computer (host) and the container.

Run docker images to check all downloaded images into your disk. Run docker container ls to check current running containers


Accessing the MOV.AI Flow™ IDE

After starting MOV.AI Flow™, you can interact with it via a browser using the web interface

Once the services have started up, you can log in to the web interface and try to run some tasks. The webserver is available at: http://localhost:8080. The default account has both the username and the password: movai.

Executing ROS commands

To get access to rostopic and rosbag commands, or to install/build more ros-packages, access the spawner container terminal by typing: docker exec -it spawner-robot1 bash

omen:~ $ docker exec -ti spawner-robot1 bash
./--/-`             -/--/.
:--//:.-`        `-.://:./   .-:::::::--  .:-          .:-       `:-
:`/-.`//:`      `://`.-/.: `//-```````-//` ./:.      .:-.:/.     `-.
:./-  -:/.:.  .:`//-  -/.: `//`       `//`  `:/-`  `:/-`  -/:`   -//
:.:-   `-:------:-`   -/./ `//.       .//`    .::../:.     `:/-  -//
::..     `-:///-`     ..::  .:/:::::::/:-      `-//-   .:-   ./:`-//
 ``         ``          `      ```````           ``     `      `  ``

 Copyright 2021 MOV.AI

    Licensed under the Mov.AI License version 1.0;
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        https://www.mov.ai/flow-license/

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

Welcome! Have fun!
movai@8245cb518b06:~/app$

Documentation

Follow our documentation to get detailed information on getting familiar with the platform and how to setup your flows.


Running from source code

Clone the repository or download the sources and follow the following instructions.

git clone

Initializing Environment

Before starting MOV.AI Flow™ for the first time, You need to prepare your environment, i.e. create the necessary files, directories and initialize the database.

To do it, edit .env file and customize variables values:

gedit .env

Values present in the environment at runtime always override those defined inside the .env file. Similarly, values passed via command-line arguments take precedence as well.

Running MOV.AI Flow™

Setting the essential env vars

To use the scripts that are available in the scripts/ directory we should first set the APP_PATH environment variable

First cd in to your cloned repository

Now you can start core services, by cding into the folder where docker-compose.yml is:

docker-compose up -d

Running ROS RViz

The recommeded setup is to have an NVidia GPU, but still an integrated Intel GPU can also work with lower performance

With Nvidia GPU acceleration :

xhost +local:docker
docker-compose -f docker-compose-nvidia.yml up ros-tools

Without GPU acceleration :

xhost +local:docker
docker-compose -f docker-compose.yml up ros-tools

Accessing the Simulator

First of all be aware that the Simulator is based on the containerized Ignition Fortress application.

The recommeded setup is to have an NVidia GPU, but still an integrated Intel GPU can also work with lower performance

After starting MOV.AI Flow™, you can launch Ignition Fortress :

With Nvidia GPU acceleration :

xhost +local:docker
docker-compose -f docker-compose-nvidia.yml up simulator

Without GPU acceleration :

xhost +local:docker
docker-compose -f docker-compose.yml up simulator

Cleaning up the environment

The docker-compose we prepare is a “Quick-start” one. It is not intended to be used in production and it has a number of caveats - one of them being that the best way to recover from any problem is to clean it up and restart from the scratch.

The best way to do it is to:

Cleaning up for good

To stop and delete containers, delete volumes with database data and downloaded images, run:

docker-compose down --volumes --rmi all

MOV.AI Developer Tools

A python package build to facilitate development when using MOV.AI. The tool can be used to, but not limited to, expose the ros topics to the host as well as export/import MOV.AI metadata. Please follow this link for more detailed documentation.