Hello everyone:
I’m now working on a robot project in which we try to feed some data (audio data to be specific) through Nengo model to process.
All the data connection things seems to work, but here’s the problem:
The Nengo model doesn’t quite keep up with real-time.
(OK actually quite A LOT OF lag, about 10 times slower than what we need.)
I understand to run Nengo model with real-time speed and real-world data wasn’t the main goals and claims of Nengo project, but we still wanna give it a try in our project.
I’m a bit frustrated when trying to improve my work, because I do not understand the technical details behind the API.
So I’m here to discuss the probabilities to improve my implementation, performance issue mainly. Any advice is welcomed.
project source code:
To show the model structure: python model_viz.py
Usage: python MSO_model.py
Example output:
[INFO] [1524815992.008086]: “nengo_mso_model” starts subscribing to “/ipem_module/apm_stream”.
Simulation finished in 0:00:02
ran 1024 steps in 2.232 sec
yet_to_run: 18432 steps
Simulation finished in 0:00:00
ran 1024 steps in 0.773 sec
yet_to_run: 23552 steps
Simulation finished in 0:00:00
ran 1024 steps in 0.773 sec
yet_to_run: 29696 steps
Simulation finished in 0:00:00
ran 1024 steps in 0.765 sec
yet_to_run: 34816 steps
Simulation finished in 0:00:00
ran 1024 steps in 0.769 sec
yet_to_run: 39936 steps
…
You can see that every 1024 step took around 0.7 sec to simulate while steps in yet_to_run accumulates.
*ROS message source is in other package (binaural_microphone and ipem_module)
So I create a dummy_source.py instead. (still need ROS installed and project compiled)
I’m really grateful for the project and the community. It’s an amazing tool and a lot to learned from.
Edward Chen