Onboard-SDK-ROS
Onboard-SDK-ROS copied to clipboard
Drone version not obtained!
os:ubuntu16.04 osdk:3.8 osdk-ros:3.8 A3 with 1.7.7 version datalink 3 with v1.2.0
I have 2 problems, 1.In the web of osdk3.8.1,it says [a3 Firmware Package Version 1.7.7.0 Flight Controller Version 3.3.8.47] is supported ,what [Flight Controller Version] means? And how to know my version?
2.When I run “roslaunch djiros djiros.launch” in ubuntu terminal, an error has occurred:
ERRORLOG/1 @ getDroneVersion, L1377: Drone version not obtained! Please do not proceed.
It provides some possible reasons,and I have check all of them ,but the error always occurred. How to fix that?
The complete logsis here:
~$ roslaunch djiros djiros.launch ... logging to /home/uav2/.ros/log/687d36de-f267-11ea-8605-34e12d8d0fd1/roslaunch-uav2-NUC-4820.log Checking log directory for disk usage. This may take awhile. Press Ctrl-C to interrupt Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://uav2-NUC:39049/
SUMMARY
PARAMETERS
- /djiros/align_with_fmu: False
- /djiros/app_id: *******(my app id)
- /djiros/app_version: 1
- /djiros/baud_rate: 921600
- /djiros/enc_key: ******************(my key).
- /djiros/log_level: info
- /djiros/sensor_mode: False
- /djiros/serial_name: /dev/ttyUSB0
- /rosdistro: kinetic
- /rosversion: 1.12.14
NODES / djiros (djiros/djiros_node)
auto-starting new master process[master]: started with pid [4830] ROS_MASTER_URI=http://localhost:11311
setting /run_id to 687d36de-f267-11ea-8605-34e12d8d0fd1 process[rosout-1]: started with pid [4843] started core service [/rosout] process[djiros-2]: started with pid [4846]
STATUS/1 @ init, L55: Attempting to open device /dev/ttyUSB0 with baudrate 921600...
STATUS/1 @ init, L65: ...Serial started successfully.
ERRORLOG/1 @ getDroneVersion, L1377: Drone version not obtained! Please do not proceed. Possible reasons: Serial port connection: * SDK is not enabled, please check DJI Assistant2 -> SDK -> [v] Enable API Control. * Baudrate is not correct, please double-check from DJI Assistant2 -> SDK -> baudrate. * TX and RX pins are inverted. * Serial port is occupied by another program. * Permission required. Please do 'sudo usermod -a -G dialout $USER' (you do not need to replace $USER with your username). Then logout and login again
[ERROR] [1599633660.378416991]: drone activation error [ERROR] [1599633660.378554775]: Vehicle initialization failed terminate called after throwing an instance of 'std::runtime_error' what(): initVehicle failed ERRORLOG/1 @ activate, L1266: Unable to initialize some vehicle components![djiros-2] process has died [pid 4846, exit code -6, cmd /home/uav2/catkin_ws/devel/lib/djiros/djiros_node __name:=djiros __log:=/home/uav2/.ros/log/687d36de-f267-11ea-8605-34e12d8d0fd1/djiros-2.log]. log file: /home/uav2/.ros/log/687d36de-f267-11ea-8605-34e12d8d0fd1/djiros-2*.log
Agent comment from kyle.cai in Zendesk ticket #39042:
Dear developer ,
Thank you for contacting DJI.
1.In the web of osdk3.8.1,it says [a3 Firmware Package Version 1.7.7.0 Flight Controller Version 3.3.8.47] is supported ,what [Flight Controller Version] means? And how to know my version? -->The Flight Controller Version corresponds to the Firmware Package Version, and you can just focus on the Firmware Package Version, which can be viewed through DJI Assistant2.
- The log shows that the serial communication exception, you can check it follow the promts:
- SDK is not enabled, please check DJI Assistant2 -> SDK -> [v] Enable API Control.
- Baudrate is not correct, please double-check from DJI Assistant2 -> SDK -> baudrate.
- TX and RX pins are inverted.
- Serial port is occupied by another program.
- Permission required. Please do 'sudo usermod -a -G dialout $USER' (you do not need to replace $USER with your username).
if it is still promts error , suggest you reduce the baud rate to test(The OSDK should set the same baudrate with drone )
Thank you for your understanding and support, hope you have a nice day.
Best Regards, DJI SDK Support Team
i have try all the baud rate in DJI Assistant2(when i change the baurd rate, i also change the baurd rate in OSDK),but it can not work. what more can i do?
Agent comment from kyle.cai in Zendesk ticket #39042:
Dear developer ,
Thank you for contacting DJI.
Suggest you check the device connections again ,or if it's convenient, you can provide the connection picture. In addition, recommended test steps: 1、change the baurd rate to 230400 by DJI Assistant2 and then restart the drone 2、using OSDK origin Linux demo with baurd rate: 230400 3、using PC Ubuntu1604 excute origin Linux demo with baurd rate: 230400 4、exchange TX and RX pins 5、test again
Thank you for your understanding and support, hope you have a nice day.
Best Regards, DJI SDK Support Team
I do what you say: test OSDK demo with baurd rate 230400. but i get the same error. I compare the logs with the normal result in the picture2 on the web . the errer cames form the first step which to get drone version. and i try to exchange TX and RX pins, it will make another error: serial start fail. I have also make sure the baurd rate in UserConfig.txt is 230400 , and my app id,app key is right.
Is there any other reason for this problem??
the logs is here:
./djiosdk-flightcontrol-sample UserConfig.txt UserConfig.txt Read App ID User Configuration read successfully.
STATUS/1 @ init, L55: Attempting to open device /dev/ttyUSB0 with baudrate 230400...
STATUS/1 @ init, L65: ...Serial started successfully.
ERRORLOG/1 @ getDroneVersion, L1418: Drone version not obtained! Please do not proceed. Possible reasons: Serial port connection: * SDK is not enabled, please check DJI Assistant2 -> SDK -> [v] Enable API Control. * Baudrate is not correct, please double-check from DJI Assistant2 -> SDK -> baudrate. * TX and RX pins are inverted. * Serial port is occupied by another program. * Permission required. Please do 'sudo usermod -a -G dialout $USER' (you do not need to replace $USER with your username). Then logout and login again
ERRORLOG/1 @ activate, L1302: Unable to initialize some vehicle components! STATUS/1 @ getErrorCodeMessage, L656: initVehicle STATUS/1 @ getCommonErrorCodeMessage, L722: ACK_NO_RESPONSE_ERROR
Agent comment from kyle.cai in Zendesk ticket #39042:
Dear developer ,
Thank you for contacting DJI.
Suggest you provide hardware connection photos (both A3 side and Onboard computer side).
Thank you for your understanding and support, hope you have a nice day.
Best Regards, DJI SDK Support Team
Agent comment from kyle.cai in Zendesk ticket #39042:
Dear developer ,
Thank you for contacting DJI.
The hardware connection looks correct, Is it convenient for you to change to another serial port module for testing?
And suggest check the permissions:
Thank you for your understanding and support, hope you have a nice day.
Best Regards,
DJI SDK Support Team
inline99189093.png
i have done that before i ask you for help, and i do that again:
i have four serial port modules ,but they are all the same.
We test the serial port modules with a FPGA, and it can work well.
Is it possible that there is something wrong with A3?I don't have another A3 to test.
Agent comment from kyle.cai in Zendesk ticket #39042:
Dear developer ,
Thank you for contacting DJI.
If so, may need to troubleshoot this problem. Do you have any other DJI drone(other than A3) ? and It is recommended that you click on the links on the right side and fill in the relevant demand information, https://formcrafts.com/a/dji-developer-feedback-en In order to better match your requirements, try to include the following information when filling in:
- Company/organization profile
- Personal background or brief introduction. 3.Is it convenient to send A3 back to DJI for testing?
Thank you for your understanding and support, hope you have a nice day.
Best Regards, DJI SDK Support Team
@sbdjyl
could you check if there is any data output by command cat /dev/ttyUSB0
@sbdjyl could you check if there is any data output by command
cat /dev/ttyUSB0
@lanyusea i do that,and there is no data output
I got the same problem with A3. But I got a lot of data in the serial usb.