GithubHelp home page GithubHelp logo

danieldworakowski / flot Goto Github PK

View Code? Open in Web Editor NEW
1.0 7.0 2.0 91.05 MB

Algorithms for training of autonomous blimp robot through collision prediction.

Home Page: http://meetfibi.com

Python 60.67% Shell 0.40% C++ 35.56% CMake 1.30% EmberScript 0.56% Makefile 0.17% C 1.27% Objective-C 0.03% Batchfile 0.01% Dockerfile 0.05%

flot's Introduction

flōt

https://danieldworakowski.github.io/meetFibi/

Compared to other autonomous platforms, a blimp provides excellent maneuverability and safety for indoor environments due to its low inertia and inherent stability. Our main goal for the project is to build a light-weight blimp and implement a local collision avoidance algorithm, and later combine it with a global planner. One of the main challenges with this project is the significant weight limitations placed on the payload of the blimp. In the design, the sensor payload is limited to a camera along with sonar sensors. Several possible solutions were explored, including traditional methods involving mapping and object detection, as well as solutions like end-to-end learning for collision avoidance.

Project Description

Given the run-time constraints and the desire for functionality in new environments with minimal labeling approaches involving algorithms like SLAM, or scene segmentation were avoided. On the other hand, the end-to-end learning approach allows for automatically labeled training data based on inputs at the time of collection, along with more expressive and generalized features. An interesting aspect of the project is the use of simulated data to first pre-train the network to reduce the need of real data. Given the nature of the problem, the DAGGER algorithm works well to alleviate distribution mismatches and helps to improve the learned policy. In the future we plan to implement deep reinforcement learning methods to tackle the problem with methods similar to CAD2RL and Cognitive Mapping and Planning for Visual Navigation.

The neural network navigating within an environment

Data collected based on https://arxiv.org/abs/1704.05588

An older version of the platform

Installed Software

  • Tensorflow
  • PyTorch
  • OpenAI Gym
  • ROS
  • AirSim

Blocks enviroment is included as a packaged version. If full install of AirSim and Unreal Engine/Editor is required, visit: https://hub.docker.com/r/raejeong/robotics_ws/

Install

Install docker

Install nvidia-docker

Clone this repo

cd flot_ws

Copy the LinuxNoEditor packaged enviroment in the /home/user/workspace/SimulationEnvironments

Edit /opt/ros/kinetic/etc/ros/python_logging.conf on Rpi to remove logging

Run

docker build . -t flot_ws

docker stop flot; docker rm flot; nvidia-docker run -it --ipc=host --env="DISPLAY" --env="QT_X11_NO_MITSHM=1" --volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" -v $(pwd)/workspace:/home/user/workspace --privileged --net=host --name flot flot_ws

  • to run additional terminal

docker exec -it flot bash

  • to kill container

docker stop flot; docker rm flot

  • useful docker commands

docker system prune --all -f

docker save -o

docker load -i

Data collection on the rasp pi

  1. rosmaster --core on pi
  2. roslaunch blimp_control datacollect.launch on pi (check if camera_stream.sh script's IP is your ip)
  3. Copy data to host from ~/.ros/
  4. ffmpeg -i video.h264 image_%06d.png to extract training data
  5. python flot/workspace/tools/blimp_data_postprocessing.py --file <new-file>
  6. python flot/workspace/tools/curator/curator.py --path <new-file>

The data from step 2 will be saved in ~/.ros in a folde

The data here needs to be postprocessed: Run blimp_data_postprocessing.py --files=<name of folder in .ros e.g. 20180201_0203020> The out.csv will be outputted to the folder in .ros

Further postprocessing may be required

flot's People

Contributors

danieldworakowski avatar ji-won avatar kelvin-chan avatar kimgenie avatar raejeong avatar younghj avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Forkers

b2220333 younghj

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.