Individual Motor Control

classic Classic list List threaded Threaded
8 messages Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Individual Motor Control

nsydney
I'm attempting to use a Hummingbird in a motion capture setting to test some flight stabilization controls that I've developed. We have a PC (running Windows) that can collects the motion capture data in real time. To implement the control algorithm, we need to be able to send individual motor commands to the Hummingbird. Is there a framework/code (C/C++, Matlab, ROS, etc.) available that has the capability to send individual motor commands to the quadrotor?

We've already experimented with using the Simulink SDK that is available online, but we don't have the necessary toolboxes for it to work, so that option is out.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Individual Motor Control

wayne
Since AscTec SDK 2.0, you are able to set individual motor control.
I recommend to use the AscTec Research Update tool, update your Hummingbird to the newest version and use ACI for communication with your PC: http://wiki.asctec.de/xwiki/bin/view/AscTec+Development+Tools/AscTec+Communication+Interface

In the list of predefined variables, you can also find your individual motor control: http://wiki.asctec.de/xwiki/bin/view/AscTec+Development+Tools/List+of+all+predefined+variables%2C+commands+and+parameters

Please use the ACI Remote in C for communication with your UAV. You can find a tutorial for Usage here and a code documentation here
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Direct Individual Motor Command of 'LLP data protocol' with XBee? - Re: Individual Motor Control

Jang, J. T.
Thank you for help.

I've read and searched Wiki and Mailing List, but I could not find the solution:

  Q1. By using 'LLP data protocol' with XBee, is the 'Direct INDIVIDUAL Motor Commands' possible?

  Q2. What is the physical unit of control command of four motors in the 'Direct INIDIVIDUAL Motor Command'? rpm? force? torque?

I am already using the 'Direct Motor Commands' of 'LLP(Low-Level Processor) data protocol' with XBee as the 'AscTec UAVs - Interface' of Wiki to directly control the Roll, Pitch, Yaw and Thrust of a HummingBird from ground PC not using AscTec SDK nor ACI for simple coding.

For this I am using the ">*>di" string command of the Direct Motor Command.

For more high level control, I hope to use the 'Direct INDIVIDUAL Motor Command' using motor rpm or force using the same 'LLP(Low-Level Processor) data protocol' with XBee.

Thank you for your reading.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Direct Individual Motor Command of 'LLP data protocol' with XBee? - Re: Individual Motor Control

jerrymaggie
Hi

How did you control Roll, Pitch, Yaw and Thrust, I really did not know how to convert command from PC to HLP. Any advices?

On the other hand, we can control the motor speed directly, buy convert rpm-desired to 0-200.

Thanks,

Chao
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Direct Individual Motor Command of 'LLP data protocol' with XBee? - Re: Individual Motor Control

Jang, J. T.
You may have some misunderstanding for my words.

The control of Roll, Pitch, Yaw and Thrust that I mentioned is by the LLP via XBee.

This function is pre-installed in the LLP.

But accroding to the manual if we upgrade HLP by SDK this control through LLP is neglected.

Advices:

We have to solve the mathematical relationship between Roll-Pitch-Yaw-Thrust v.s. Motors Rpm for accurate control.

I think that the relationship may be divided by the two stage: The first relationship is the Roll-Pitch-Yaw-Thrust v.s. the forces and moment of the rigid body. And the second relationship is the the forces and moment of the rigid body v.s. the 4 motors rpms.

 The second relationship is known already in some papers(e.g. Equation (1) in the paper "Design, Modeling, Estimation and Control for Aerial Grasping and Manipulation" Daniel Mellinger) using approximated simple aerodynamics.

To solve the first relationship exactly we have to know the exact definition of the Roll, Pitch, Yaw and Thrust in the AscTech HummingBird. For more words, What are the units of them(e.g. Is Thrust unit is Newtown or m/s?, and are Roll, Pitch and Yaw are Euler angles? If then, which sequence is used? x-y'-z''?) In manual and some example code the exact identity of these variables are vague.

It may be top secret classified?
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Direct Individual Motor Command of 'LLP data protocol' with XBee? - Re: Individual Motor Control

jerrymaggie
I think  we can calculate the motor rpm desired, and transfer the rpm to 0-200 which Asctec offered. What do you think? And have you tried the LL controller you mentioned? Is it work well or not?
Now I calculate the outer position loop in the PC and send angels needed to the HLP. It is very hard to adjust the parameters of the inner attitude loop.

Regards
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Direct Individual Motor Command of 'LLP data protocol' with XBee? - Re: Individual Motor Control

jerrymaggie
In reply to this post by Jang, J. T.
I think what we are doing is really similar. my email jerryzhchao@gmail.com.
looking forward for your reply.
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: Direct Individual Motor Command of 'LLP data protocol' with XBee? - Re: Individual Motor Control

Jang, J. T.
In reply to this post by jerrymaggie
Yes, we can calculating 4 motors rpms in direct motor control mode using HLP. But we did not implemented it with HummingBird.

We have already controlled HummingBird using LLP roll pitch yaw thrust command in motion capture environment. And it works well. several centimeters posision errors by PID control were reached. But for more accurate control we doubt LLP is adequite.
Loading...