Enabling h264 stream on M210 hangs indefinitely in 4.1.0
We have successfully been using 4.0.1 since shortly after its release. Recently, we upgraded to 4.1.0 and have started seeing the service call to enable h264 stream randomly block indefinitely. The frequency is 1-2 failures per 10 flights. In comparison, we haven't seen any issues with M300 in over 100 flights.
To recover we have had to kill the node process and do rosnode cleanup or even reboot the drone.
Setup
- M210V2: 01.00.0710
- XT2: 01.00.00.34
- DJI OSDK: 4.1.0
- DJI OSDK ROS: 4.1.0
Failing service call
rosservice call /dji_osdk_ros/setup_camera_h264 "request_view: 0 start: 1"
Log file In this log file the stream was enabled and disabled a number of times. Note that is says the camera is already streaming at the button where the blocking happens. This is not the case; the camera is not streaming, and the service call blocks indefinitely. vehicle_node-6-stdout.log
Agent comment from kyle.cai in Zendesk ticket #46673:
Dear developer ,
Thank you for contacting DJI.
Could you please provide the XT2 Firmware(the camera firmvare: v01.00.00.34) ?
please comfirm and update to the lastest firmware to verify this issue:
https://dl.djicdn.com/downloads/Zenmuse%20XT%202/20200508/Zenmuse_XT%202_Release_Notes_en_.pdf
and please comfirm both OSDK(linux) and OSDK ROS has been upgraded to 4.1.0.
Thank you for your understanding and support, hope you have a nice day.
Best Regards,
DJI SDK Support Team
inline1102599945.png
Thank you for your rapid response.
As said in the original post:
Camera 1 Firmware version: 01.00.00.34 OSDK(linux): 4.1.0 OSDK ROS: 4.1.0
Agent comment from kyle.cai in Zendesk ticket #46673:
Dear developer ,
Thank you for contacting DJI.
I have test this issue with OSDK master branch and ROS master branch(orignal demo), stream was enabled and disabled, but failed to reproduce.
result:

version:

The log you provided, it seems that the thread stoped failed and not create pthread to receive stream, could you please provide more info about how to reprodce this issue, the better using the orignal demo to operate.
Thank you for your understanding and support, hope you have a nice day.
Best Regards,
DJI SDK Support Team
inline1592548630.png
inline-210594680.png
inline1057252569.png
inline-1133830896.png
Unfortunately, as initially stated the failures are random/periodic.
We are using the provided vehicle_node and have exposed the async funtions to take off and land.
The flow is:
- Start camera h264 stream
- Takeoff
- Control with software joystick for 2 minutes
- Land
- Stop camera h264 stream
- Repeat from step 1 until the error occurs
We have never seen the failure on the first start of the stream after boot of the drone. Also, it only happens when the drone flies in between start and stop of the stream.
Agent comment from kyle.cai in Zendesk ticket #46673:
Dear developer ,
Thank you for contacting DJI.
From the information currently provided, it is recommended to troubleshoot the receiving stream thread exception during repeated start and stop of the camera stream.
Thank you for your understanding and support, hope you have a nice day.
Best Regards, DJI SDK Support Team