All posts by laht

Fmu2Jar

Fmu2Jar is a command line utility for converting Functional Mock-up Units (FMUs) into regular Java libraries.

This allows the FMU to be loaded into an application using maven artifacts rather that referring to the location of the FMU in your app.

Furthermore, typesafe getters and setters for each variable is generated and accessiable though the API.

E.g. an fmu with the a ScalaraVariable with name “pid.kp” of type Real will have a getter like so: public double getPid_kp()

Fmu2Jar is apart of the FMI4j suite and is available here:  https://github.com/SFI-Mechatronics/fmi4j/releases

FMI4j – FMI library for the JVM

FMI4j is a new open-source Kotlin library that allows import and simulation of Model Exchange and Co-simulation FMUs compliant with the FMI 2.0 standard.
As Kotlin is 100% interoperable with Java, its up to the end user which language to use.

As of late 2017, Fmi4j is the only Java library that support Model Exchange 2.0.
Fmi4j don’t just import such FMUs, but can also solve them using the integrators available in Apache Commons Math.

Fmi4j uses the gradle build system, allowing you to easily set it up on your own machine.

FYI: I am the library author

Simple Dual Quaternion based Scene graph

I’m currently working on a simple scene graph implementation in Java, which I will share under a open source license soon. By simple I mean simple. If you are looking for a scene graph for your game, you might want to check out other more elaborate scene graphs made especially for that purpose. The purpose of mine is primarily to model simple kinematic chains like robot manipulators for simulation purposes.

What’s neat about this one is that it uses uses Dual Quaternions instead of homogeneous transformation matrices. On of the benefits of doing so is a increase in performance.

The Dual Quaternion class is basically a Java implementation of the C# code found in this beginners guide to Dual Quaterions.

I got a working prototype up and running, and so far I am very pleased with the result.

EDIT: I have a working Dual Quaternion javascript implementation running here, which showcases the ScLERP function.

Continue reading Simple Dual Quaternion based Scene graph

Symbolic manipulator FK and Jacobian in Java

Today I’m posting my Java code for getting the symbolic forward kinematics (FK) and Jacobian for an arbitrary serial manipulator.
As symbolic computation libraries are sparse in Java, I’m invoking Python from the terminal and retrevies the output using I/O streams. As such, Python needs to present on the system.
The Python code is embedded in the Java code as a String.

Continue reading Symbolic manipulator FK and Jacobian in Java

JOpenShowVar v0.2

Today I updated JOpenShowVar with some neat features compared to how it was before. Check it out on github. The Github readme contains an example of how to use v0.2 and has also an comparison to v0.1.

JOpenShowVar is a TCP/IP interface to KUKA robots written in Java. It allows reading and writing of global variables defined in the KUKA controller.

While JOpenShowVar cannot guarantee real-time access like e.g the KUKA RSI package, it usually returns a call in 3-10 ms.

Console view
Console view
GUI view
GUI view

Record 3D Video with Kinect V2 and play it back in the browser

My latest project makes use of the new Kinect sensor and the capabilities of WebGL.

Using the source provided in this post, you’ll be able to record a 3D video of yourself (and those in the proximity of your camera) using the new Kinect for Windows V2, and play it back in a 3D environment running in the browser. The 3D environment is created using Three.js, and it even supports viewing the video using the Oculus Rift DK2.

By having a browser playing back your video you have the opportunity to send a 3D video of yourself without the need for the recipient to install anything. Great isn’t ?

Recording playing in the browser
Recording playing in the browser

Continue reading Record 3D Video with Kinect V2 and play it back in the browser