0
$\begingroup$

Rosanswers logo

How do I map a 6DOF control vector (vx, vy, vz, ax, ay, az) to RPYT? I am working on visual servo and I get controls as linear and angular x, y and z. Right now I have the following mapping but I realized that I am not using two of the angular velocities.

vx -> pitch (P)

vy -> roll (R)

vz -> thrust (T)

az ->yaw (Y)

Thanks


Originally posted by krish on ROS Answers with karma: 1 on 2013-07-08

Post score: 0

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

Well a quadrotor has only (as the name suggests) 4 rotors, and this in most cases means only 4 inputs for control.

The dynamics are non-linear, even outside of acrobatic moves, and you might need a thicker layer of control loops to map your control vector to the input vector of your quadrotor. For example, the pitch angle does not control the velocity but the acceleration on the X axis, and also has an impact on the total thrust, which can then only be mapped directly to the acceleration on the Z axis if you consider a linearised model around the hover position.

I would advise you implement small PD loops between your control vector and the aircraft's inputs. You probably don't need one for the yaw, though, as the control input for this one is most often an angular velocity already.

Even then, I would not advise you actually map the ax and ay control outputs, as you will have trouble staying within reasonable bounds for your linear model to hold.

Here's the simplest mapping I can think of:

vx -> PD -> pitch
vy -> PD -> roll
vz -> PD -> thrust
az -------> yaw velocity

Hope this helps.


Originally posted by po1 with karma: 411 on 2013-07-09

This answer was ACCEPTED on the original site

Post score: 0

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.