MATLAB Answers

Three questions about the tutorial on "Communicating with a PARROT Minidrones Using TCP / IP and UDP".

5 ビュー (過去 30 日間)
Tomo 2018 年 12 月 17 日
回答済み: Victor Cheidde Chaim 2019 年 3 月 4 日
I am a college student in Japan.Currently, for hovering MAMBO, we are going to control position, direction control and height on pc by using the position / attitude of the motion capture system and send input from PC to MAMBO.Attitude control is done on MAMBO only.
The model for deployment to MAMBO was created based on ”asbquacopter”.
I have three questions about the tutorial on "Communicating with a PARROT Minidrones Using TCP / IP and UDP".
1. The sampling time of MAMBO is 0.005 s, but the sampling time of the transmit / receive block is 0.05 s.Why do not we unify the sampling time to 0.005 s?
2. The actual motor rotation speed differs between when the same motor command value is given from the PC to the motor and when applied to the motor from the MAMBO.Why?
3.Create and run a model that increases the motor speed when the drone is tilted forward, and reduces the motor speed when the drone is tilted backward. Tip: Use the accelerometer data from the input port Sensors to determine the tilt angle.
This suggests that posture control is possible on PC, but has it been verified that it is possible? I am worried that the tutorial communication may not be done well.
You can do any of the above questions. Any answer will be of help to me.Thank you.

回答 (1 件)

Victor Cheidde Chaim
Victor Cheidde Chaim 2019 年 3 月 4 日
Hello, Tomo
I will answer these questions from what I have learned so far working with the Parrot Mambo quadcopter in Matlab/Simulink:
1. The sampling time of the communication is slower because it cannot be processed in one sample period of the embedded computer (Mambo). If TCP is being used, as a communication protocol, some processing is being done to deal with the received packets, such as checking for errors. Furthermore, this communication protocol, which was designed aiming reliability, guarantees that the data is delivered in a certain order, so you might have a huge delay during the experiment. Increasing communication frequency will not make it necessary faster. On the other hand, if you are using UDP, which is a connectionless protocol, you will have a faster transmission, but with no guarantees of delivery and errors checks, the data is being sent and the sender does not bother if it is being received or not, or even how it is being received. Using UDP the maximum communication rate I could get with no errors from SImulink was 100Hz and I have not used TCP/IP so far. You could read more about the differences between TCP and UDP in the following links:
2. The motor speed varies when you are sending them through the PC because you will not, and I would also say that you can not, receive a data packet per Mambo-sampling time. Consequently when the input value is not defined it goes to zero. This means that the output of the motors will be weaker, as you have as an input a ¨modulated¨ signal. From the TCP/IP receive block:
¨The Data port outputs the received data as a [Nx1] array. The Status port outputs 0 when the available data size is less than the Data size parameter.¨
3. I believe that in the tutorial they make this suggestion only as a start point for working and getting acquainted with the development cycle using the Mambo quadcopter. I strongly believe that it is not possible to control the pose by sending motor inputs from the PC using this system. Only slower dynamics can be done this manner, such as height and position, for example.
I hope my answer helps you somehow.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by