Hi Folks,
Iām planning to build a 2 Meter class tiltrotor with a quad-x configuration. Iāve got a few airframes in mind. Iām mostly looking for something that flies slow and is lightly wing-loaded, so when developing/testing the transitions, it will be fairly forgiving. Iām looking at something like:
- X-UAV Skua
- Ranger EX
- Finwing Sabre
Iām trying to best figure out how to develop the code. It looks like the Firefly Y6 is really close to what I want, so that might be a good starting point. I see there are several .mix files that look like they are applicable (obviosuly including the two Firefly .mix files), and Iāve been looking thru the Firefly (and others) files in the ./modules/vtol_att_control folder. It looks like there are some Y6 specific code in there which Iād likely need to change.
Iāve got quite a years developing real-time embedded code for the aerospace industry so Iām comfortable coding, implmenting algorithms, building, etc. However, Iām still learning the PX4 architecture so I could use a little guidance in that area. Iāve read thru the developerās guide. Itās been helpful but I think needs a little more detail.
My question to you guys is the approach to take. It looks like I need to create a new configuration, Speciiy an X4 configuration in the .mix file, and probably use the Firefly Y6 as a baseline and make appropriate changes. Other than that, It looks like much of the tiltrotor algorithm has been implemented. If I specify X4 in a .mix file, is that all I need to do to make it fly as a quad-x, or are there are parts of the SW Iāll need to touch for that aspect? I realize Iāll need to create the control files in the vtol_att_control directory, but Iām not sure what else. Iām happy to do the development and contribute if it works out.
Iād sure appreciate any comments. Thanks for your help!
Chris
Hi Chris
your project sound very interesting! The FireFly6 should be functional with our code base but we havenāt really tested it for a long time (users might have). Furthermore, we only had very limited time to implement the ācontrol logicā for it. It flies ok with it but I would really love to see some more model based control for the tiltrotor. What PX4 offers you is a complete environment in which you can start implementing your control algorithms without having to deal with the rest of the system.
As you have already seen all the tiltrotor specific code is located in the vtol_att_control module in the tiltrotor.cpp file. I would recommend you to create a new config file and start with the existing FireFly6 settings. You will have to replace the following settings:
set MIXER quad_x.main.mix
set PWM_OUT 1234
set param set VT_MOT_COUNT 4
Theoretically, this should be enough to use the configuration. Let me know if things donāt work out!
Also it would be nice to catch up on the actual flight control implementation. I would love to work on it, however, mostly time and the chance for testing are the limiting factors. Is it possibly to communicate over skype?
Regards,
Roman
Hi Roman,
Thanks for the tips, Iāll get started with your suggestions on the setting to change to over to a quad-x configuration. I just started building the vehicle so Iāve got a ways to go. I decided on the ranger EX. It sounds like the slow flight characteristics are pretty good and it has a lot of wing area. Of course there will be a lot of hover and slow quad testing before attempting any transitions to airplane mode.
Iām pretty happy with how the transition algorithm and code looks so I think it will be a good starting point. Yes, Iād like to chat sometime about the control algorithms and implementation. Iāve got a lot of general questions but Iāll save them for when I get a little further into things and learn about the SW before asking. I can learn a lot just by going thru the code. Iām sure you have thoughts on the implementation so Iād like hear your ideas, and bounce mine off someone with some experience with this platform.
I donāt have skype currently but could try that at some point. What time zone are you in? Iām in Pacific, and coluld phone chat as well.
Thanks again for your help! I think this will be a fun and interesting project!
Regards,
Chris
Hi Chris,
How has your project been going? I am working on the same type of project. We are using a gauper x44 type of platform. We are now getting to where you were in your last post and were wondering if youāve had success and/or are looking for some programming help. We also have an RC airfield to do testing.
Noah Nelson
Hi Roman,
Progress has been quite slow, but I did finally get to a point where Iāve had several successful hover tests. Now Iām trying to guesstimate what values to set the transition parameters to get the best chance of success, Also setting up all the modes I think Iāll need as well as scripting a test plan. I will likely find some piece of desert for my testing. Iām hoping that the code as it stands right now will work w/o much modification. Iāll need to study it a bit more to see exactly how the transition takes place, and also see how flight testing goes and if it needs any more software written for the transition, Hopefully itās mostly just a tuning exercise. I think my biggest concern now is the possibility for some violent pitching in the transition that the control system canāt keep up with. That could be exasperated by not having the plane control optimized. Iām using the tuning from the other ranger VTOL as a starting point. Weāll see. Howās your progress?
Meant to say Noah. Sorryā¦
Hi Chris,
Sounds like an interesting and fun project. I hope youāre successful. Iām looking to build a VTOL 80" flying wing but using a tricopter (Y3) configuration for lowest complexity, cost, and weight. Since youāve been studying the code, do you know how the Y6 controls yaw? Iām assuming it simply converts the yaw value into differential throttle on each pair of motors so all the bottom motors slow down while all the top motors speed up for one yaw direction and vice-versa. If thatās the case, Iām wondering if modifying the Y6 to a Y3 could be done by eliminating all the bottom motors and converting the yaw signal to PPM format for the yaw servo?? Maybe there would be a lot more to it than that.
Dan
Hi Dan,
I donāt know specifically how the Y6 controls yaw, but what you suggest makes sense and probably the most likely implementation. I believe there is a Y3 configuration for the MC controller already available, so if you specify that in your main mixer file instead of the Y6, you should be good to go.
If youāre not familiar with the mixer files, you will need to get acquainted with them, as well as how to rebuild the code and download to your aircraft. There is an excellent developers guide that walks you thru a step by step process of that. There is also a mixer guide that explains how the miser files work. Some Google searches will lead you to those pretty quickly.
Good luck!
Chris
Chris, thanks for your comments. Itās going to be slow-going for me as Iāve only done small amounts of coding before. Iām an electrical engineer working in the aerospace industry. Howās your project coming along? Are you still working on it?
Dan