RC HeliSim

Hi all Linux users.

I’m currently developing an RC helicopter simulator. The focus is realistic flight behavior, but when everything works I also want to work more on the OpenGL rendering to give it a better look.
Why am I doing that? Because I can and because it’s fun 😉 (ok, a little bit nerdy, I know). But I was interested in learning to fly a helicopter for a long time, and I’m also interested in the helicopter physics. So before I crash an expensive helicopter I better write a simulator where I can learn both: Learn to fly and learn the physics.
I also was searching for some free simulators, but there was not very much available. One is FMS (Flying Model Simulator) which is nice but not very realistic. Another big disadvantage is, it’s a Windows program and it’s closed source, so nobody can improve or port it to Linux. Another one is Helix, a JAVA program that’s looks very realistic according to the videos on the website, but I could not manage to get it working. That’s due to the nature of JAVA. On Linux accessing the joystick device did not work, on Windows I got a damn JAVA exception, and on Max OS X the required JVM is not available. JAVA really sucks!!! And it’s damn slow anyway. (Sorry JAVA fans, I don’t like JAVA, but that’s only my personal opinion)
I like to have everything under control – also when to acquire or release memory – and that’s why I’m developing my simulator in C++ using a nice Qt GUI (Qt rocks 😉 ) and OpenGL for 3d rendering. This gives you all advantages of powerful OOP using C++ combined with powerful and easy to use Qt classes (that’s rapid application development my friends), and the big bonus is: everything is portable. The only OS dependent code is accessing the joystick device which I encapsulate via an abstract interface. So it’s easy possible to develop specialized subclasses for Windows, or other OSes. But for now I’ll concentrate on Linux of course.
Reading this may be a little bit dry, so here comes a first screenshot:

Helisim Screenshot

Helisim Screenshot

I also made a screencast to demonstrate the actual state in action.
It’s a little bit jerky, but that’s due to recording not due to the simulator 😉
You can download it here: helisim.avi

Some more technical details for the interested reader:

  • Programming Language: C++/Qt
  • 3D Rendering: OpenGL
  • 3D Sound effects: OpenAL
  • Physics Engine: My own including correct aerodynamics according to the BEMT (Blade Element Momentum Theory) (Currently implemented is only BET without Momentum, still working on that.)
  • License: Will be GPL (should it be GPLv3?)

Here is a sample gnuplot picture which shows the lifting forces calculated by my physic engine.

Lifting force

Lifting force

And I have already a lot of ideas for the future:

  • The software should be very modular allowing not only the fly, but also use it as a developer platform: Adding or extending the physics engine, replacing the joystick input module with own implementations. Not only for portability but also for developing autonomous flight robots.
  • Improving the rendering with shadows and reflections: Cg may help
  • Also replacing the rendering with a 3D engine like Ogre might be possible (but I actually have no clue about ogre)
  • Making a game like mode with predefined gates to pass.
  • For the game mode a ghost would be nice which shows either the ideal flight line or the last recorded one.

I hope you like my idea and more input is welcome. Also I’m searching for a good name at the moment. HeliSim is not that creative name and may already exist 😉 So please send me your ideas: Lin, Tux, Heli, Sim, … are some good keywords as a starting point.

1 Response to “RC HeliSim”

  1. 1 du lich thai lan gia re April 22, 2014 at 3:39 am

    I simply could not go away your website prior to suggesting that I extremely enjoyed the standard information an individual provide to your
    visitors? Is gonna be again steadily in order to investigate cross-check new posts

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: