ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

Quadrotol Control

asked 2013-07-08 15:03:31 -0500

krish gravatar image

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)


edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted

answered 2013-07-09 02:01:41 -0500

po1 gravatar image

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.

edit flag offensive delete link more

Question Tools


Asked: 2013-07-08 15:03:31 -0500

Seen: 127 times

Last updated: Jul 09 '13