D8 – ROSjava – Fuzzy Membership Functions

The fuzzy logic gates require fuzzy membership functions. These ROS nodes represent little more complex algorithms, which include parameters that have to be set up.

According to HANNS (Hybrid Artificial Neural Network Systems framework), the setup of an external ROS node is now handled seamlessly as the input data. So each ROS node implementing a membership function has one input for x, one output y and several configuration inputs, where each defines some particular parameter of an algorithm (alpha, beta, gamma.. values in this case).

Launching the Script

Nodes are located under the logic/gates project and the script can be started by the command:


run nr-demo/gates/logic_fuzzy_membership.py

This script does:

  • Starts two ROS nodes implementing different types of membership functions
  • Starts one function generator for input data
  • For each parameter, starts one generator with constant value (e.g. alpha, beta etc)

nengo

After launching the interactive simulation, resulting behavior can be observed and the setup of node parameters can be changed online:

membershipBROS Graph

The corresponding visualization of ROS network shows ROS nodes which publish to one topic and are subscribed to several other topics.

fuzzy_membership

Advertisements