M600 teleoperation flight control setpoint issue
Hi all!!
I know this is an old topic and its actually a non-supported SDK version anymore, but maybe someone can help me out to figure it out some issue I have!
My setup is as follows:
- DJI M600
- DJI RTK
- Onboard x86 computer with usb to serial port connected to the A3
- Ubuntu 18.04
- ROS Melodic
- DJI Onboard SDK ROS 3.8.1
The onboard-sdk-ros works as a charm, I'm able to read data from the drone and write to it, this is not the issue. By the way, thanks for the support from DJI in this repo as the beginning was a bit complicated to make it work! I'm using a catkin project I got from an issue in this repo: https://djisdksupp
I created a ROS style teleoperation script just to be able to test the velocity commands, my script is in the next gist.
I'm using the /dji_sdk/flight_control_setpoint_ENUvelocity_yawrate topic as control strategy. I know it is suppose to send X, Y, Z velocity in ENU ground frame and yaw rate
My script simply sends a {X, Y, Z and yaw} command to the drone. A video of what is the issue can be seen here
The issue is that X is not forward of the drone, but instead reversed and to the right, Y has a similar issue. Yaw is the only command that works good. I think it has to do with the ENU frame perhaps?? maybe because I use RTK the ENU is absolute and then X and Y is a component of the orientation?
My goal is that if I send a command in +X the drone goes forward, -X the drone goes back and consequently +-Y to the left and right. I think is something silly what I'm missing, some conversion or similar.
Anyone has had the same issue before?
Thanks a lot!