Issue with setpoint_velocity/cmd_vel in mavros

Hello everyone, I need some help on how to tell the drone to turn left. I tried to publish a setpoint velocity, [1, 0, 0, 0.6], to setpoint_velocity/cmd_vel, where 1 is the linear velocity in x direction and 0.6 is the yaw rate. However, I am getting this behavior:


which is not what I wanted, I want a left turn like this:

Are there any other topic that I can publish to get a left turn?

Definitely an issue with your reference frame. I believe you will need to link your x y velocity as a function of your yaw. your X velocity command would need to be something like V * sin(yaw) and Y velocity would need to be V * cos(yaw). So as your yaw rate changes your yaw the local velocity of the quad would change then.

By default the frame used is local frame, you can change the reference frame to body frame, that should do what you want. You can change the reference frame from the terminal like this: rosservice call /mavros/setpoint_velocity/mav_frame “mav_frame: NUMBER” or you can call the service from your script. Search the MAV_FRAME definition to know which number to use