ROS inteface of Menoh library by @pfnet-research.
The MenohNodelet loads ONNX model and export input and output as ROS topics.
Thanks to the power of Menoh, it can run neural network models efficiently without GPGPUs.
$ mkdir -p catkin_ws/src
$ cd catkin_ws
$ catkin init
$ cd src
$ git clone https://github.com/akio/menoh_ros.git
$ catkin build
In preparation now.
Following diagram depicts the architecture of MenohNodelet
pipeline.
|
| Any Input
V
+-----------------+
| InputNode(let) |
+-----------------+
|
| std_msgs/Float32MultiArray
V
+-----------------+
| MenohNodelet |<--- ONNX Model
+-----------------+
|
| std_msgs/Float32MultiArray
V
+-----------------+
| OutputNode(let) |
+-----------------+
|
| Any Output
V
MenohNodelet
is a core nodelet of this package.
This nodelet loads ONNX model file and export them as std_msgs/Float32MultiArray
topics.
When it receives a input message, it loads the message into the neural network model.
After the neural network computes the output, the nodelet translate the output into a ROS message and publish it.
This nodelet subscribes sensor_msgs/Image
and converts it to std_msgs/Float32MultiArray
and publishes it to MenohNodelet
.
This nodelet subscribes std_msgs/Float32MultiArray
and lodas category label data from a textfile.
When it receives a message, it compute softmax of the message and publish a corresponding label line as a std_msgs/String
.
$ python scripts/retrieve_data.py
$ roslaunch launch/vgg16.launch
See launch/vgg16.launch
as an example.
This package is available under terms of the MIT License.