OK, I’ve got some more information now, although I’m not sure if it will be useful. I’ve decided to build a bare-bones application that reads single depth frame and terminates. I used the C++ API. Here’s the code:
int main() {
std::cout << "Initializing astra..." << std::endl;
astra::initialize();
std::cout << "Creating stream set and reader..." << std::endl;
astra::StreamSet streamSet;
astra::StreamReader reader = streamSet.create_reader();
std::cout << "Starting depth stream..." << std::endl;
reader.stream<astra::DepthStream>().start();
std::cout << "Processing frame..." << std::endl;
astra::Frame frame = reader.get_latest_frame();
std::cout << "Extracting depth frame..." << std::endl;
const auto depthFrame = frame.get<astra::DepthFrame>();
std::cout << "Terminating astra..." << std::endl;
astra::terminate();
std::cout << "Finished running test app." << std::endl;
std::cin.get();
return 0;
}
When launched on Persee, it logs everything all the way to “Processing frame…” and then freezes, so I think it’s something inside reader.get__latest__frame() . I waited for several minutes to make sure and it doesn’t seem to be able to get past this line. I wish I had more detailed info, but the only feedback I get from the app is an empty astra.log file that it produces. No exceptions, no warning logs during runtime.
EDIT:
It turns out that the freeze was due to indefinite timeout time set as default for get_latest_frame. I changed the timeout to 2 seconds and the program terminated successfully. The frame seems invalid though.
To investigate it further, I have also built DepthReaderEventCPP example and during execution I got the following error:
astra/src/astra_core/astra_stream_connection.cpp:205: void astra::stream_connection::get_parameter(astra_parameter_id, size_t&, _astra_parameter_bin*&): Assertion `parameterBinHandle != nullptr' failed.
depthStream -- hFov: Aborted
Moreover, the device seems to be inactive - I can’t see the IR projector running.
On the other hand, I found an executable named orbbecinteragesimple_rev1.0 which is a simple depth stream reader using only OpenNI with no dependencies on Astra SDK and it runs well - the projector turns on and depth frames are displayed correctly. @Jesse do you have any idea what can be wrong?