All Projects → wpilibsuite → Ntcore

wpilibsuite / Ntcore

Licence: other
NetworkTables Core Library (ARCHIVED, merged into allwpilib)

Labels

Projects that are alternatives of or similar to Ntcore

Gym Dart
OpenAI Gym environments using DART
Stars: ✭ 20 (-52.38%)
Mutual labels:  robotics
Spotmicro Chinese
spotMicro机器狗中文攻略,纯新手教程!
Stars: ✭ 33 (-21.43%)
Mutual labels:  robotics
Darm
A desktop arm that can write and draw.
Stars: ✭ 38 (-9.52%)
Mutual labels:  robotics
Benchbot
BenchBot is a tool for seamlessly testing & evaluating semantic scene understanding tools in both realistic 3D simulation & on real robots
Stars: ✭ 29 (-30.95%)
Mutual labels:  robotics
Nasoq
NASOQ:Numerically Accurate Sparsity Oriented QP Solver
Stars: ✭ 30 (-28.57%)
Mutual labels:  robotics
Libpointmatcher
An "Iterative Closest Point" library for 2-D/3-D mapping in Robotics
Stars: ✭ 979 (+2230.95%)
Mutual labels:  robotics
Ros Academy For Beginners
中国大学MOOC《机器人操作系统入门》代码示例 ROS tutorial
Stars: ✭ 861 (+1950%)
Mutual labels:  robotics
Openre
HandsFree OpenRE Tutorial
Stars: ✭ 41 (-2.38%)
Mutual labels:  robotics
Dexter
A rich GUI and example code for visualizing and controlling the Dexter robot arm from Haddington Dynamics
Stars: ✭ 32 (-23.81%)
Mutual labels:  robotics
Pendulum
ROS, ROS2, real-time, control, pendulum
Stars: ✭ 37 (-11.9%)
Mutual labels:  robotics
Pepper Robot Programming
Pepper Programs : Object Detection Real Time without ROS
Stars: ✭ 29 (-30.95%)
Mutual labels:  robotics
Navigator
NaviGator ASV on-board software
Stars: ✭ 29 (-30.95%)
Mutual labels:  robotics
Multi Robot Path Planning On Graphs
Multi-Robot Path Planning on Graphs Solution by A* algorithm
Stars: ✭ 36 (-14.29%)
Mutual labels:  robotics
Gym Panda
An OpenAI Gym Env for Panda
Stars: ✭ 29 (-30.95%)
Mutual labels:  robotics
Bolero
Behavior Optimization and Learning for Robots
Stars: ✭ 39 (-7.14%)
Mutual labels:  robotics
Roboticarmandroid
💪 + 📱 It's a simple project where you'll learn how to create a Robotic Arm with Arduino board, controlled by a Android smartphone using Bluetooth. (PT-BR: Um projeto simples onde você irá aprender como criar um braço robótico utilizando Arduino, e controlar ele via Bluetooth através de um aplicativo Android)
Stars: ✭ 14 (-66.67%)
Mutual labels:  robotics
Rbdl Orb
RBDL - Rigid Body Dynamics Library - ORB Version - The two main differences to the original rbdl is that this version has error handling and uses polymorphism for constraints
Stars: ✭ 33 (-21.43%)
Mutual labels:  robotics
Bullet3
Bullet Physics SDK: real-time collision detection and multi-physics simulation for VR, games, visual effects, robotics, machine learning etc.
Stars: ✭ 8,714 (+20647.62%)
Mutual labels:  robotics
Robot Software
CVRA monorepo - All software running on our bots lives here
Stars: ✭ 39 (-7.14%)
Mutual labels:  robotics
Romo Ios Sdk
Romo SDK supporting up to iOS 14!
Stars: ✭ 36 (-14.29%)
Mutual labels:  robotics

ntcore

Travis CI Build Status Appveyor Build status

ntcore is the reimplementation of the NetworkTables protocol for both Java and C++, communicating with the former by way of a JNI interface. ntcore implements v3 of the NetworkTables spec.

Build Requirements

To build ntcore, a few requirements must be met:

  • Platform Native Toolchain - You must have a toolchain for your native platform installed if you wish to build ntcore for your machine. On Windows, this is Visual Studio. On Mac, this is Clang, and on Linux, this is GCC. Your toolchain must support the -std=c++11 language flag.
  • Platform Native JDK - In order to compile ntcore your native platform, you must have the JDK for your platform installed, so that the correct JNI headers can be included.
  • ARM Toolchain - To crosscompile ntcore for the roboRIO, you must have the FRC ARM toolchain installed, which can be found here.
  • Cross Toolchains (coming soon)

Building

Gradle is the main build system used by ntcore. All tasks are run with the gradlew wrapper, which is included in the root of the repository. All targets that can be accomplished by Gradle are referred to as tasks. The main task available is build. To run Gradle, cd into the build directory and run:

./gradlew build

This will build the roboRIO ntcore library, in addition to the library for your native platform. Note if the roboRIO compiler cannot be found, the build will skip the roboRIO build. To build for either only the roboRIO, or every platform except the roboRIO, use the following flags:

-PskipAthena
-PonlyAthena

Note if you choose the onlyAthena flag, tests will not be ran, as they depend on the current platform being built.

In addition, more platforms can be built. For instance, with additional cross compilers more Arm binaries can be built. In addition, the second bitness for your current platform can be built with an additional flag. To enable every possible platform, use the following flag.

-PbuildAll

If you are building the native version on a 64 bit Linux computer, use a GCC installation which has multilib support enabled (it can compile both 32 and 64 bit programs). The package providing that support on most Linux distributions is called gcc-multilib.

By default, debug binaries of the libraries will be built. To switch to instead build release binaries, use the following flag

-PreleaseBuild

Custom Cross Compilers

Coming soon

Testing

By default, tests will be built for any native platform, and will be run during any execution of the build or publish tasks. To skip building and running the tests, use the -PskipAllTests command line flag.

Publishing

to use ntcore in downstream projects as a Maven-style dependency, use the publish command. This will publish the following artifact id's:

  • edu.wpi.first.ntcore:ntcore-cpp
  • edu.wpi.first.ntcore:ntcore-java

The ntcore-cpp artifact will contain the following 2 classifiers:

  • headers (contains C++ headers)
  • sources (contains C++ sources)

In addition, a classifier will be created for each binary built by the current build. The internal layout of the artifacts will be as follows.

  • /os/arch/shared/ (shared binaries located here)
  • /os/arch/static/ (static binaries located here)

The ntcore-java artifact will contain a jar with no classifiers. This is the java jar file. In addition, the following 2 classifiers will be contained

  • sources (contains Java sources)
  • javadoc (contains Javadoc sources)

All of these artifacts by default are published to ~/releases/maven/development. To switch to the release repository (~/release/maven/release), use the flag -PreleaseType=OFFICIAL.

All downstream projects are configured to use the individual classifier artifacts. The previouse desktop classifier does not exist anymore.

When you do a publish of ntcore locally, the locally built copy will override all references to networktables dependencies from the FRC Maven server. To undo this, you must delete ~/releases/maven/<repo>/edu/wpi/first/ntcore.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].