Giter Site home page Giter Site logo

linecode / felicia Goto Github PK

View Code? Open in Web Editor NEW

This project forked from chokobole/felicia

0.0 0.0 0.0 9.71 MB

chromium based robot framework

Python 8.99% Shell 0.11% C++ 78.66% C 0.03% JavaScript 0.42% Objective-C++ 1.31% Objective-C 0.19% CSS 0.16% Smarty 0.02% Batchfile 0.01% TypeScript 10.10%

felicia's Introduction

Felicia

Build Status

Felicia is the chromium based robot framework like ROS, a collections of tools and libraries to help developers build fast, light and secure robot software. Currently it is under development mostly alone, I think it is still useful for like Robot-vision developer who needs to deliver camera images fast or web developers who wants to subscribe messages by WebSocket without any performance drop. I hope someday it be spread through robot industry and academia so that I want many developers to be engaged with it! If you have any trouble, leave issues or contact to me by email!

Key features:

  • Cross Platform.
  • Support Protobuf / ROS Message.
  • Use grpc.
  • Provide C++ / Python APIs.
  • Provide different communication channels (TCP / UDP / Shared Memory / WebSocket / Unix Domain Socket).
  • Provide some of sensor APIs.
    • Realsense D435i
    • ZED Stereo Camrea
    • RPLidar
    • UVC compatible camera
  • Provide command-line-interface.
  • Provide visualization tool with browser.
  • Compatible with ROS1 topic / service protocol.

TODO feautures:

  • Decentralize nodes.
  • Support TLS communicaiton.
  • Support OS-layer security.
  • Provide more channels such as Bluetooth, QUIC.
  • Provide more sensor APIs such as michrophone.
  • Provide simulator.
  • Compatible with ROS2 topic / service protocol.
  • Support Raspberry Pi 4.
  • Robot specific features such as SLAM.

Prerequisites

We use bazel as a build tool. So please download it! To sync with window build, we fix the virstion to 0.25.0. On linux and mac, simply you can do like below!

./installers/install_bazel.sh

Also we need python and some dependencies such as numpy. Currently we tested on python3. Our suggestion is using pipenv.

pipenv --three
./installers/install_python_deps.sh

Or you can set environment variable PYTHON_BIN_PATH to /path/to/python/.

Lastly we need nodejs for nodejs binding. If you are working on linux or mac, then you can install it by nvm. On windows, you can install it by choco.

# Install nodejs using nvm on linux or mac
./installers/install_nodejs.sh

# install nodejs using choco on windows
choco install nodejs.install --version 10.15.3

For Windows developers

For only window developers, you have to do more. You have to download llvm from llvm.org also. Because you need clang-cl for compiler. And then to change default compiler for bazel, you have to set USE_CLANG_CL to 1 and BAZEL_LLVM to /path/to/llvm if you install llvm at not regular location. This feature is a quite new, so you need a recent released one. We tested on 0.25.0.

How to build

bazel build //felicia/...

For Macos developers

Currently, in bazel, --cpu option's default value is darwin, which doesn't work on our project(If your cpu is 64bit.). You have to manually set darwin_x86_64 on every command like below.

bazel build --cpu darwin_x86_64 //felicia/...

Also in order to leave debugging symbol on mac, you have to add config apple_debug like below. If you aren't working on mac, it's enough to set -c dbg.

bazel build --cpu darwin_x86_64 --config apple_debug //felicia/...

How to test

bazel test //felicia/...

How to set up on Docker

docker build . -t felicia -f docker/Dockerfile.ubuntu

You can validate your work on docker with below.

python3 scripts/docker_exec.py bazel build //felicia/...

For Users

Follow this link to check examples

For Developers

After you write the any BUILD, or *.bzl, don't forget to run buildifier!

bazel run //:buildifier

felicia's People

Contributors

chokobole avatar dependabot[bot] 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.