M600 pro, OSDK-ROS, RTK话题订阅不到

Completed

Comments

3 comments

  • DJI Developer Support
    M600不支持TOPIC_RTK_CONNECT_STATUS这个TOPIC,请问现在没有这个错误无法获取RTK数据具体指什么,若方便可以提供一下完整的终端log。
    0
    Comment actions Permalink
  • shizu
    您好,下面是我终端的log,分别运行了SDK(3.9)的sample和SDK-ROS(3.8)的sdk.launch:
     
    smawk@smawk-desktop:~/Onboard-SDK/build/bin$ ./djiosdk-flightcontrol-sample UserConfig.txt UserConfig.txt
    argv[1] = UserConfig.txt
    argv[2] = UserConfig.txt
    Read App ID
    User Configuration read successfully.
     
     
    STATUS/1 @ init, L56: Attempting to open device /dev/ttyUSB2 with baudrate 921600...
     
    STATUS/1 @ init, L66: ...Serial started successfully.
     
    STATUS/1 @ parseDroneVersionInfo, L762: Device Serial No. = 0670161774
     
    STATUS/1 @ parseDroneVersionInfo, L764: Hardware = PM820V3PRO
     
    STATUS/1 @ parseDroneVersionInfo, L765: Firmware = 3.2.41.14
     
    ERRORLOG/1 @ initVirtualRC, L1188: Virtual RC is not supported on this platform!
     
    STATUS/1 @ activate, L1398: version 0x302290E
     
    STATUS/1 @ activate, L1411: Activation successful
     
    STATUS/1 @ verify, L247: Verify subscription successful.
    STATUS/1 @ initGimbal, L926: Checking if gimbal is connected ...
    STATUS/1 @ startPackage, L353: Start package 0 result: 0.
    STATUS/1 @ startPackage, L355: Package 0 info: freq=50, nTopics=1.
     
    STATUS/1 @ removePackage, L471: Remove package 0 successful.
    STATUS/1 @ initGimbal, L970: Gimbal not mounted!
    | Available commands:                                            |
    | [a] Monitored Takeoff + Landing                                |
    | [b] Monitored Takeoff + Position Control + Landing             |
    | [c] Monitored Takeoff + Position Control + Force Landing Avoid Ground  |
    b
     
    STATUS/1 @ verify, L247: Verify subscription successful.
    STATUS/1 @ startPackage, L353: Start package 0 result: 0.
    STATUS/1 @ startPackage, L355: Package 0 info: freq=10, nTopics=2.
    Motors spinning...
    Ascending...
    Successful takeoff!
     
    STATUS/1 @ removePackage, L471: Remove package 0 successful.
    STATUS/1 @ verify, L247: Verify subscription successful.
    STATUS/1 @ startPackage, L353: Start package 0 result: 0.
    STATUS/1 @ startPackage, L355: Package 0 info: freq=50, nTopics=2.
     
    STATUS/1 @ removePackage, L471: Remove package 0 successful.
    STATUS/1 @ verify, L247: Verify subscription successful.
    STATUS/1 @ startPackage, L353: Start package 0 result: 4.
    STATUS/1 @ startPackage, L355: Package 0 info: freq=50, nTopics=2.
     
    STATUS/1 @ getErrorCodeMessage, L752: startPackage
    STATUS/1 @ getCMDSetSubscribeMSG, L835: SUBSCRIBER_PACKAGE_ALREADY_EXISTS
     
    STATUS/1 @ getErrorCodeMessage, L752: ��@vU
    STATUS/1 @ getCMDSetSubscribeMSG, L835: SUBSCRIBER_PACKAGE_ALREADY_EXISTS
     
    STATUS/1 @ removePackage, L471: Remove package 0 successful.
    STATUS/1 @ verify, L247: Verify subscription successful.
    STATUS/1 @ startPackage, L353: Start package 0 result: 0.
    STATUS/1 @ startPackage, L355: Package 0 info: freq=50, nTopics=2.
     
    STATUS/1 @ removePackage, L471: Remove package 0 successful.
    STATUS/1 @ verify, L247: Verify subscription successful.
    STATUS/1 @ startPackage, L353: Start package 0 result: 0.
    STATUS/1 @ startPackage, L355: Package 0 info: freq=10, nTopics=2.
    Landing...
    Successful landing!
     
    STATUS/1 @ removePackage, L471: Remove package 0 successful.
    STATUS/1 @ reset, L570: Reset Subscription Successful.
    (结束)
     
    /*******************************************/
     
     
    smawk@smawk-desktop:~$ roslaunch dji_sdk sdk.launch
    ... logging to /home/smawk/.ros/log/fda10cfe-04a4-11ec-ad05-204ef6c5f0c5/roslaunch-smawk-desktop-10126.log
    Checking log directory for disk usage. This may take a while.
    Press Ctrl-C to interrupt
    Done checking log file disk usage. Usage is <1GB.
     
    started roslaunch server http://smawk-desktop:44809/
     
    SUMMARY
    ========
     
    PARAMETERS
     * /dji_sdk/acm_name: /dev/ttyACM0
     * /dji_sdk/align_time: False
     * /dji_sdk/app_id: 1103296
     * /dji_sdk/app_version: 1
     * /dji_sdk/baud_rate: 921600
     * /dji_sdk/enc_key: 540825514d61cd69b...
     * /dji_sdk/serial_name: /dev/ttyUSB2
     * /dji_sdk/use_broadcast: False
     * /rosdistro: melodic
     * /rosversion: 1.14.10
     
    NODES
      /
        dji_sdk (dji_sdk/dji_sdk_node)
     
    auto-starting new master
    process[master]: started with pid [10199]
    ROS_MASTER_URI=http://localhost:11311
     
    setting /run_id to fda10cfe-04a4-11ec-ad05-204ef6c5f0c5
    process[rosout-1]: started with pid [10210]
    started core service [/rosout]
    process[dji_sdk-2]: started with pid [10213]
     
    STATUS/1 @ init, L56: Attempting to open device /dev/ttyUSB2 with baudrate 921600...
     
    STATUS/1 @ init, L66: ...Serial started successfully.
     
    STATUS/1 @ parseDroneVersionInfo, L762: Device Serial No. = 0670161774
     
    STATUS/1 @ parseDroneVersionInfo, L764: Hardware = PM820V3PRO
     
    STATUS/1 @ parseDroneVersionInfo, L765: Firmware = 3.2.41.14
     
    ERRORLOG/1 @ initVirtualRC, L1188: Virtual RC is not supported on this platform!
     
    STATUS/1 @ activate, L1398: version 0x302290E
     
    STATUS/1 @ activate, L1411: Activation successful
     
    STATUS/1 @ verify, L247: Verify subscription successful.
    STATUS/1 @ initGimbal, L926: Checking if gimbal is connected ...
    STATUS/1 @ startPackage, L353: Start package 0 result: 0.
    STATUS/1 @ startPackage, L355: Package 0 info: freq=50, nTopics=1.
     
    STATUS/1 @ removePackage, L471: Remove package 0 successful.
    STATUS/1 @ initGimbal, L970: Gimbal not mounted!
    [ INFO] [1629786731.653394427]: drone activated
    [ INFO] [1629786731.758410666]: Use data subscription to get telemetry data!
    [ INFO] [1629786731.758656963]: align_time_with_FC set to false. We will use ros time to time stamp messages!
     
    STATUS/1 @ verify, L247: Verify subscription successful.
    STATUS/1 @ startPackage, L353: Start package 2 result: 0.
    STATUS/1 @ startPackage, L355: Package 2 info: freq=100, nTopics=3.
     
    STATUS/1 @ startPackage, L353: Start package 1 result: 0.
    STATUS/1 @ startPackage, L355: Package 1 info: freq=50, nTopics=10.
     
    STATUS/1 @ startPackage, L353: Start package 0 result: 0.
    STATUS/1 @ startPackage, L355: Package 0 info: freq=5, nTopics=1.
     
    STATUS/1 @ removePackage, L471: Remove package 0 successful.
    STATUS/1 @ startPackage, L353: Start package 0 result: 0.
    STATUS/1 @ startPackage, L355: Package 0 info: freq=5, nTopics=11.
     
    STATUS/1 @ startPackage, L353: Start package 3 result: 0.
    STATUS/1 @ startPackage, L355: Package 3 info: freq=400, nTopics=1.
     
    (结束)
     
     
     
     
    我现在的问题是,运行sdk.launch之后,使用rostopic list指令,可以看到包括RTK相关的下面所有话题:
     
    smawk@smawk-desktop:~$ rostopic list
    /dji_sdk/acceleration_ground_fused
    /dji_sdk/angular_velocity_fused
    /dji_sdk/attitude
    /dji_sdk/battery_state
    /dji_sdk/display_mode
    /dji_sdk/flight_control_setpoint_ENUposition_yaw
    /dji_sdk/flight_control_setpoint_ENUvelocity_yawrate
    /dji_sdk/flight_control_setpoint_generic
    /dji_sdk/flight_control_setpoint_rollpitch_yawrate_zposition
    /dji_sdk/flight_status
    /dji_sdk/from_mobile_data
    /dji_sdk/from_payload_data
    /dji_sdk/gimbal_angle
    /dji_sdk/gimbal_angle_cmd
    /dji_sdk/gimbal_speed_cmd
    /dji_sdk/gps_health
    /dji_sdk/gps_position
    /dji_sdk/height_above_takeoff
    /dji_sdk/imu
    /dji_sdk/local_frame_ref
    /dji_sdk/local_position
    /dji_sdk/rc
    /dji_sdk/rtk_info_position
    /dji_sdk/rtk_info_yaw
    /dji_sdk/rtk_position
    /dji_sdk/rtk_velocity
    /dji_sdk/rtk_yaw
    /dji_sdk/time_sync_fc_time_utc
    /dji_sdk/time_sync_gps_utc
    /dji_sdk/time_sync_nmea_msg
    /dji_sdk/time_sync_pps_source
    /dji_sdk/trigger_time
    /dji_sdk/velocity
    /dji_sdk/vo_position
    /rosout
    /rosout_agg
     
     
    如果使用  rostopic echo /dji_sdk/gps_position   指令,可以正常的看到gps信息以正常的频率更新,
     
    但是如果使用  rostopic echo /dji_sdk/rtk_position   指令,没有任何信息反馈出来,rtk相关的velocity、info_position、yaw和info_yaw都没有反馈。
     
    M600不支持TOPIC_RTK_CONNECT_STATUS这个TOPIC,所以我之前运行正常的时候,sdk.launch的终端,会以5hz频率刷新下面的报错,
    这种情况下,我是可以用rostopic echo 读取到 /dji_sdk/rtk_position  话题下的信息的,
     
    但是现在运行sdk.launch之后,不会报这个错误。
     
    OSDK的sample可以控制无人机在模拟器中正常的飞行,但是是基于GPS信息,我现在需要使用RTK信息。
     
    请帮忙确认这是什么问题,谢谢
     
    0
    Comment actions Permalink
  • DJI Developer Support
    看log像是没有正常进入RTK订阅部分,可以在dji sdk node中加点打印看看当前没有RTK输出时,代码的运行过程。 ![](https://djisdksupport.zendesk.com/attachments/token/JKhF1PcIUZCNIRz1bdGcVK21i/?name=inline-1880858347.png)
    0
    Comment actions Permalink

Please sign in to leave a comment.