-
Notifications
You must be signed in to change notification settings - Fork 84
JSBSim #39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
JSBSim #39
Conversation
This commit introduces JSBSim as a supported flight dynamics engine in Project AirSim. It includes all necessary CMake integration, external dependency setup, and a sample fixed-wing aircraft configuration using JSBSim. Additionally, it adds example Python scripts (`hello_fixed_wing.py`, `hello_helicopter.py`) that demonstrate how to load a JSBSim-based aircraft and interact with it using the simulation API. Note: ✔️ Fully functional on Windows.⚠️ Not yet supported on Linux.
|
I've been looking all over trying to find a sim that supports fixed wing drones! This looks awesome! Any eta on when this will be merged? |
|
Hi @thedarkamendez, thanks for your interest in Project AirSim! We already support fixed-wing aircraft beyond JSBSim—feel free to check out the available examples in the repository. The main remaining step is resolving the Linux build and packaging process, which has been delayed due to our current workload. We appreciate your patience and contributions are always welcome if you'd like to help move this forward! |
|
@jonyMarino, thanks for the response, I also noticed that! Over the weekend I tried building this PR from source on my computer running ubuntu and noticed what you are mentioning. I'm also busy as well but would be happy to try and help if I have some free time. Do you have a list of tasks already lined up for getting it running for linux, or just that you know its not working yet and need to get it working? I want to know so I can better understand what needs to be done 😄 |
|
@jonyMarino when you built UE did you enable RTTI? I am running into the build issue that UE doesn't have RTTI enabled but JSBSim needs RTTI |
|
Thanks for looking into this, @thedarkamendez. Just to clarify the current build setup: JSBSim is being compiled with simlibs, and then that combined library is included into Unreal Engine. On Windows, RTTI is typically enabled by default, but on Linux it might not be, so that’s something to double-check. In this PR, JSBSim is currently included as a dynamic library. However, I’m totally fine with switching to a static library for Linux if that makes integration easier. You might want to take a look at the relevant section in the CMakeLists.txt to adjust that configuration accordingly. Let me know what you find or if you need help testing across platforms. |
|
Hello. Can you help me with this ? (airsim-venv) PS U:\JSBsim52\ProjectAirSim-JSBSim\client\python\example_user_scripts> python hello_fixed_wing.py |
|
@DmitrJTR008 run python from the same folder the script is |
|
@jonyMarino The problem is that there are no files anywhere. |
|
I see. You would have to take out those vehicles from the script then. I see the f22 and x8 are being added |
|
@thedarkamendez do you want to help me testing this copilot generated commit on linux? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file doesn't belong to here
Fixes: #12
About
This pull request introduces significant changes to integrate and demonstrate the use of the JSBSim flight dynamics model in the simulation environment. The changes include setting up the JSBSim dependency, adding configuration for a fixed-wing aircraft, and providing example Python scripts for interacting with the simulation. Below are the most important changes grouped by theme:
Core Dependency Setup
CMakeLists.txt, [1] [2]Simulation Configuration
robot_f22_jsbsim.jsoncto define the physics, sensors, actuators, and controller for a fixed-wing aircraft using the JSBSim model. This includes detailed specifications for links, joints, and sensors such as cameras, IMU, and barometer. (robot_f22_jsbsim.jsonc, client/python/example_user_scripts/sim_config/robot_f22_jsbsim.jsoncR1-R283)Example Scripts
hello_fixed_wing.pyto demonstrate basic interactions with a fixed-wing aircraft in the simulation, including connecting to the environment, loading a scene, and interacting with the drone object. (hello_fixed_wing.py, client/python/example_user_scripts/hello_fixed_wing.pyR1-R151)hello_helicopter.pyto demonstrate similar functionality for a helicopter, with examples of subscribing to camera sensors and controlling the drone's movement. (hello_helicopter.py, client/python/example_user_scripts/hello_helicopter.pyR1-R133)Code Cleanup
asyncioimport fromjsbsim_env_actor.py, simplifying the script. (jsbsim_env_actor.py, client/python/example_user_scripts/jsbsim_env_actor.pyL21)How Has This Been Tested?
Screenshots and videos (if appropriate):