Containerizing of Manifold and rtndf (almost) complete

sensorviewI’ve certainly been learning a fair bit about Docker lately. Didn’t realize that it is reasonably easy to containerize GUI nodes as well as console mode nodes so now rtnDocker contains scripts to build and run almost every rtndf and Manifold node. There are only a few that haven’t been successfully moved yet. imuview, which is an OpenGL node to view data from IMUs, doesn’t work for some reason. The audio capture node (audio) and the audio part of avview (the video and audio viewer node) also don’t work as there’s something wrong with mapping the audio devices. It’s still possibly to run these outside of a container so it isn’t the end of the world but it is definitely a TODO.

Settings files for relevant containerized nodes are persisted at the same locations as the un-containerized versions making it very easy to switch between the two.

rtnDocker has an all script that builds all of the containers locally. These include:

  • manifoldcore. This is the base Manifold core built on Ubuntu 16.04.
  • manifoldcoretf. This uses the TensorFlow container as the base instead of raw Ubuntu.
  • manifoldcoretfgpu. This uses the TensorFlow GPU-enabled container as the base.
  • manifoldnexus. This is the core node that constructs the Manifold.
  • manifoldmanager. A management tool for Manifold nodes.
  • rtndfcore. The core rtn data flow container built on manifoldcore.
  • rtndfcoretf. The core rtn data flow container built on manifoldcoretf.
  • rtndfcoretfgpu. The core rtn data flow container built on manifoldcoretfgpu.
  • rtndfcoretfcv2. The core rtn data flow container built on rtndfcoretf and adding OpenCV V3.0.0.
  • rtndfcoretfgpucv2. The core rtn data flow container built on rtndfcoretfgpu and adding OpenCV V3.0.0.

The last two are good bases to use for anything combining machine learning and image processing in an rtn data flow PPE. The OpenCV build instructions were based on the very helpful example here. For example, the recognize PPE node, an encapsulation of Inception-v3, is based on rtndfcoretfgpucv2. The easiest way to build these is to use the scripts in the rtnDocker repo.

Advertisements

5 thoughts on “Containerizing of Manifold and rtndf (almost) complete

  1. Yiannis

    Hi there,
    amazing work! I would like to get a chance to try out the rtndf examples which use Manifold
    but I get a segmentation fault. I tried to debug it as much as possible but couldn’t figure it out.
    All the examples crash when calling:
    ManifoldPython.addMulticastSource(outTopic)
    Would really appreciate any input/direction.

    Thanks!

    Reply
      1. Yiannis

        Thanks so much! I wasn’t sure if I was doing something wrong.
        I am testing it in RaspberryPi 3 by the way.

      2. richard Post author

        Not sure if this is the problem but there is a missing line in the instructions on how to build ManifoldPythonLib (now corrected). These are the corrected instructions:

        cd ~/Manifold/ManifoldPythonLib
        qmake
        make -j8
        sudo make install
        python setup.py build
        sudo python setup.py install

        Note the sudo make install – that was the line that was missing. Without that, the library would be missing and could explain what you were seeing.

      3. Yiannis

        Hi Richard, yes I have realized that line missing and executed it during installation. I have a gdb output somewhere if you are interested.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s