M600 pro, OSDK-ROS, RTK话题订阅不到
Completed您好,我这边在M600pro平台上使用OSDK-ros,加装了D-RTK,之前都可以正常使用,flight_control_demo可以运行,ros上面可以读到RTK的信息(/dji_sdk/rtk_position等话题),但是今天再运行sdk的roslaunch文件的时候,读不出rtk的信息了,运行之前只在pc端app里面修改了sdk栏gps的刷新率,修改回来也还是不能读取rtk信息,可以帮忙排除一下故障码?谢谢!
我这边波特率是921600,sdk-ros里面rtk刷新率设置为5(这是按GitHub上面issue里面的解释设置的),之前在模拟器和室外都可以读取rtk,解算完成之前也可以读取,但是现在怎么都没有rtk相关的信息发布出来。有一个细节是,M600 PRO的a3好像是不支持一个TOPIC: TOPIC_RTK_CONNECT_STATUS的话题,所以我之前sdk.launch可以正常运行的时候,一直会报Topic 0x26 value memory not initialized的错误,但是现在没有这个错误了。
-
您好,下面是我终端的log,分别运行了SDK(3.9)的sample和SDK-ROS(3.8)的sdk.launch:smawk@smawk-desktop:~/Onboard-SDK/build/bin$ ./djiosdk-flightcontrol-sample UserConfig.txt UserConfig.txtargv[1] = UserConfig.txtargv[2] = UserConfig.txtRead App IDUser 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. = 0670161774STATUS/1 @ parseDroneVersionInfo, L764: Hardware = PM820V3PROSTATUS/1 @ parseDroneVersionInfo, L765: Firmware = 3.2.41.14ERRORLOG/1 @ initVirtualRC, L1188: Virtual RC is not supported on this platform!STATUS/1 @ activate, L1398: version 0x302290ESTATUS/1 @ activate, L1411: Activation successfulSTATUS/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 |bSTATUS/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: startPackageSTATUS/1 @ getCMDSetSubscribeMSG, L835: SUBSCRIBER_PACKAGE_ALREADY_EXISTSSTATUS/1 @ getErrorCodeMessage, L752: ��@vUSTATUS/1 @ getCMDSetSubscribeMSG, L835: SUBSCRIBER_PACKAGE_ALREADY_EXISTSSTATUS/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.logChecking log directory for disk usage. This may take a while.Press Ctrl-C to interruptDone 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.10NODES/dji_sdk (dji_sdk/dji_sdk_node)auto-starting new masterprocess[master]: started with pid [10199]ROS_MASTER_URI=http://localhost:11311setting /run_id to fda10cfe-04a4-11ec-ad05-204ef6c5f0c5process[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. = 0670161774STATUS/1 @ parseDroneVersionInfo, L764: Hardware = PM820V3PROSTATUS/1 @ parseDroneVersionInfo, L765: Firmware = 3.2.41.14ERRORLOG/1 @ initVirtualRC, L1188: Virtual RC is not supported on this platform!STATUS/1 @ activate, L1398: version 0x302290ESTATUS/1 @ activate, L1411: Activation successfulSTATUS/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信息。请帮忙确认这是什么问题,谢谢
-
看log像是没有正常进入RTK订阅部分,可以在dji sdk node中加点打印看看当前没有RTK输出时,代码的运行过程。 ![](https://djisdksupport.zendesk.com/attachments/token/JKhF1PcIUZCNIRz1bdGcVK21i/?name=inline-1880858347.png)
Please sign in to leave a comment.
Comments
3 comments