node-red-contrib-iiwa

1.0.0 • Public • Published

iiwa Kinematics NodeRED Nodes

This custom Node-RED package is created by Orwa Diraneyya for inclusion in the demo app for the paper entitled 'TOWARDS A NOVEL, WEBASSEMBLY-BASED, ROBOTIC-SIMULATION WEB STACK' (to be published in the DETC2022 conference).

The package contains 3 nodes, which wrap the following IKFAST C++ functions:

  • GetNumJoints
  • ComputeFK
  • ComputeIK

These nodes are listed under a category named 'robotics':

Original documentation

This is the documentation from the original repository which I modified.

Passing String (or Array)

WebAssembly doesn't natively support a string type, it rather supports i32 / i64 / f32 / f64 value types as well as i8 / i16 for storage.

            var ptr = new Uint8Array(mem.buffer, 0, msg.payload.length );
             
            // String to UTF8
            var utf8 = unescape(encodeURIComponent(msg.payload));
            for (var i = 0; i < utf8.length; i++) {
                ptr[i] = utf8.charCodeAt(i);
            }
            
            instance.exports._lowercase(ptr); // Calling lowercase(char *ptr)
            
            // UTF8 to String
            msg.payload = utf8ToString(ptr);

You can interact with a WebAssembly instance using:

  • exports, where from JavaScript you call into WebAssembly, and WebAssembly returns a single value type.
  • imports where WebAssembly calls into JavaScript, with as many value types as you want (note: the count must be known at Module compilation time, this isn't an array and isn't variadic).
  • Memory.buffer, which is an ArrayBuffer that can be indexed using (among others) Uint8Array.

More about Array

Related Posts

WASM Compilation

Option 1. Emscripten SDK

  • Installation (Linux or OS X)

$ git clone https://github.com/juj/emsdk.git

$ cd emsdk

$ ./emsdk install latest

$ ./emsdk activate latest

$ source ./emsdk_env.sh

  • Compilation with emcc

$ emcc main.c -s WASM=1 -o app.html

  • Additional Toolkit WABT:WebAssembly Binary Toolkit

wa-compile -o main.wasm main.c

wa-link utility links multiple wasm files to one.

WASM Examples ( as a reference )

Readme

Keywords

none

Package Sidebar

Install

npm i node-red-contrib-iiwa

Weekly Downloads

0

Version

1.0.0

License

ISC

Unpacked Size

683 kB

Total Files

12

Last publish

Collaborators

  • orwadira