GithubHelp home page GithubHelp logo

fredg02 / se.bitcraze.crazyflie.lib Goto Github PK

View Code? Open in Web Editor NEW
6.0 2.0 1.0 6.7 MB

Crazyflie Java library

License: Eclipse Public License 1.0

Java 100.00%
crazyflie quadcopter java-library java

se.bitcraze.crazyflie.lib's Introduction

Crazyflie Java library

The intention of this library is to be the Java equivalent of crazyflie-lib-python, a Python based library that is used by the Crazyflie Python client.

Therefore this library is heavily based on the Python implementation. Some components are almost identical, some differ more to accommodate different programming concepts in Python and Java.

Over time the Java library will be adapted to make use of Java specific features like Lambda expressions, etc.

This library should make it easy to implement Java based clients for the Crazyflie, for example on Android or as a Eclipse RCP application.

Features

  • Abstract USB interface that allows to use different USB implementations, eg. pure Java and Android

Installation

It can be installed in Eclipse from the P2 update site:

https://fredg02.github.io/se.bitcraze.crazyflie.lib/p2

Integration

The Crazyflie Java library is a Tycho project.

Run normal Maven build

mvn clean verify -B -f se.bitcraze.crazyflie.lib-parent/pom.xml -DskipTests

After the Maven build is completed a compiled JAR can be found in the se.bitcraze.crazyflie.lib/target directory, e.g. se.bitcraze.crazyflie.lib-0.0.1-SNAPSHOT.jar.

The Tycho build also generates a P2 repository that can be used for Eclipse Plug-in based projects. It can be found in the se.bitcraze.crazyflie.lib-repository/target directory, e.g. se.bitcraze.crazyflie.lib-repository-0.0.1-SNAPSHOT.zip.

Dependencies

Tests

Test Results

JUnit tests can be executed from the command line with:

mvn clean verify -B -f se.bitcraze.crazyflie.lib-parent/pom.xml

Or from within Eclipse by running /se.bitcraze.crazyflie.lib/src/test/java/se/bitcraze/crazyflie/lib/AllTests.java as a JUnit test.

Please make sure that a Crazyradio (PA) is connected and a Crazyflie 1.0 or 2.x is switched on, when running the tests (otherwise they will fail).

Examples

Examples are included in the se.bitcraze.crazyflie.lib.examples directory.

Known issues

  • Bootloader not fully supported yet
  • Debug driver incomplete (Tests currently need Crazyflie/Crazyradio to run successfully)
  • Too many Thread.sleep()s ;)

se.bitcraze.crazyflie.lib's People

Contributors

dependabot[bot] avatar fredg02 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

achirous

se.bitcraze.crazyflie.lib's Issues

Firmware version support

After upgrading to latest firmware using the python cfclient, the ParamExample in the javalib does not work anymore.
I did not try any other example, but my own program, a JavaFX client does not want to connect.
When downgrading to 2021.01 it works again.
The error in the attached picture is when running the ParamExample.
image

Can not have more than one LogConfig

In the LoggingExample, if you try to have more than one LogConfig at the same time, one of them will not work, and the reason is not clear for the developer, who only get an error 17.

I have tried the same slightly modifying the "basicLong.py" in the python library and it works just fine.

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.