I'm trying to follow the instructions in [https://docs.px4.io/en/flight_controller/snapdragon_flight_software_inst... to install VISLAM in my snapdragon. However, there are problems when applying catkin build in the ros_examples provided, probably because the atual version of SDK is 1.1.9 and the one recommended to run the ros_examples is 1.0.2. The error is related to the input variables not being compatible. Is it possible to get the older version of SDK?
older SDK version
Posted: Wed, 2018-07-18 04:10
It is only possible to get the older versions available at https://developer.qualcomm.com/software/machine-vision-sdk/tools/. At the moment, v1.1.8 is the oldest version available. It is also not recommended that one use an older version even they kept it from an earlier download since all bug fixes only go into versions that move forward.
I tried to understand the error with the examples I was using, but I may have found a problem with the most recent versions. After installing, the file mvCPA.h that is generated has a function (mvCPA_AddFrame) which is unconsistent with previous versions and with its own deifnition. The comments before say:
" @detailed
Add image to adjust exposure and gain parameters on. (Assumption is that
this was taking with last returned parameters).
@param pObj
Pointer to CPA object.
@param pixels
Pointer to Luminance pixels of camera frame.
@param width
Width of the given frame data.
@param height
Height of the given frame data.
@param stride
Stride of the given frame data. "
However, the function header is:
MV_API void mvCPA_AddFrame( mvCPA* pObj, const uint8_t* pixels, uint32_t stride );
This header only has some of the arguments described before and is causing the error. Is this a problem with the code or have the missing arguments been removed in newer versions?
The mvCPA_AddFrame() arguments of image "width" and "height" were there in the older versions of MV and were removed from the newer versions. Unfortunately, the header file documentation was not properly updated either. The image width and height parameters are now part of mvCPA_Configuration structure that is used in mvCPA_Initialize() so must be set there when modifying the PX4 code.
The current newer API is also strange/unfortunate because the image “stride” parameter is still in this mvCPA_AddFrame() call. If you are getting image frames from the Snapdragon Flight cameras then the stride should be equal to the width anyway. This will all be cleaned up in a later release.