-
Notifications
You must be signed in to change notification settings - Fork 4.6k
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
Plan for a new Linux release? / PX4 Master compatibility #2477
Comments
Hey @Jaeyoung-Lim. Yes, we're planning for a new release very soon! We're looking to merge/close most of the open PRs before that. Stay tuned, and thanks for your patience. |
@madratman Thanks, do you have a ETA on when this will happen? |
We're aiming < 1 week. |
@madratman Awesome! Thanks |
@Tcloser Please don't hijack the topic of this issue |
@Jaeyoung-Lim, we just made https://github.com/microsoft/AirSim/releases/tag/v1.3.0-linux with only Blocks for now. I noticed in your PX4 PR, Blocks would be enough to unblock. |
@madratman Thanks! However, the Blocks environment crashes when I try to run The log is as the following:
|
@Jaeyoung-Lim It is working correctly for me on Ubuntu 18.04. There are quite a lot of memory allocation errors in your output, maybe try keeping an eye on Edit: Missed this line - |
@Jaeyoung-Lim does |
@madratman That actually made a difference. What does the command arguments change? |
It changes the rendering API unreal uses from vulkan to opengl. |
As a side note, the size of the window also determines the resolution UE draws the world at. Smaller the window, lower the memory usage and higher the average FPS. It can either be resized manually or through the flags ResX and ResY: |
@madratman Thanks for clarifying, my laptop is also at the edge of running Airsim, so I will also try testing on my desktop. |
This release currently doesn't work with the PX4 master of today. It fails with the following errors
This seems to be introduced by PX4/PX4-SITL_gazebo-classic#411 What would be a good way to keep both is some sort of a CI so that this kind of regression can be detected not only when there are releases? |
Any ideas for a more thorough CI would be great! Currently, Travis CI for AirSim is limited to building the AirLib code and doesn't even involve UE and the engine-related code. Therefore, many times, problems with that get missed. UE is very heavy, just for Linux takes ~1hr to build on my system, and takes up more than 40-50 GB. Building on Travis just won't be feasible, never mind running which will require GPU I think manual testing from time-to-time and issues from users seems to be the only way to me right now |
@rajat2004 Would it be possible to run Airlib without UE? that would simplify the CI problem greatly |
AFAIK don't think that's possible. All the physics, timers, etc are done by UE |
I think it's possible, as AirLib is a standalone cpp lib. # prereq
pip3 install --user empy toml;
# clone PX4
mkdir PX4 && cd $_;
git clone https://github.com/PX4/Firmware.git;
cd Firmware;
# run airlib without ue
touch /home/$USER/Documents/AirSim/settings.json
echo "{
"SettingsVersion": 1.2,
"SimMode": "Multirotor",
"Vehicles": {
"PX4Vehicle": {
"VehicleType": "PX4Multirotor",
"UseSerial": false,
"UseTcp": true,
"TcpPort": 4560,
"ControlPort": 14580,
"params": {
"NAV_RCL_ACT": 0,
"NAV_DLL_ACT": 0,
"LPE_LAT": 47.641468,
"LPE_LON": -122.140165,
"COM_OBL_ACT": 1
}
}
}
}">> /home/$USER/Documents/AirSim/settings.json;
# Run PX4 SITL
make px4_sitl_default none_iris
# Run AirLib
## todo
# make a standalone cpp file / gtest which will make px4 params and create px4 api
# auto px4_params = MultiRotorParamsFactory::createConfig(AirSimSettings::singleton().getVehicleSetting("PX4Vehicle"), std::make_shared<SensorFactory>());
# auto multirotor_api = px4_params->createMultirotorApi();
# do things with multirotor_api
# catch errors |
@madratman In the meantime, would it be possible to do a new release including #2549 ? |
@Jaeyoung-Lim Did you tested it, I‘m trying to test it, but not finished yet. |
@Jaeyoung-Lim can you clarify if it's breaking both SITL and HITL? |
It should since the pipeline for the sensors is the same. |
Why not use a Docker container with UE already in place: https://hub.docker.com/r/connorlanigan/unrealengine-docker/? Or even create a Dockerfile which extends from this one with the required tools and use it in CI? |
Hi @Jaeyoung-Lim! Compatibility with PX4 is a major concern. We are not working on this right now, but I will update if no one from the community submits a pull request. |
@jonyMarino This has been broken for over a month, I think it is safe to assume no one is trying to fix it in the community? |
Any progress on the PX4 1.11 compatibility? |
Hi @EivindYN! We will be working on this soon! |
Which engine version will you be using, 4.24 or 4.25? So that I can prepare myself for the eventual merge. |
Yesterday, a PR was merged ( #3156 ) to solve the communication error with the latest PX4 version. Good luck! |
@jonyMarino In the PR it seems that it was tested against HITL. Is it also functional for SITL? If this is functional, would it be possible to do a release for Linux? |
Yes. It was the first intention of that PR. But ended solving the SITL issue too. |
By the way there is an open SITL problem on Windows if you are using "WSL2" to run PX4. but WS1 will work, or you can edit the simulator.cpp yourself to take the ip address of the host machine to talk to. |
@Jaeyoung-Lim @jonyMarino In the PX4 v1.11, the messages before connecting to airsim are:
In PX4 v1.10:
|
Yes the current code only prints data rate if the mavlink connection is serial or UDP, it skips TCP, not sure when that change was made though. |
This commit |
Looks like most issues related to the PX4 v1.11 & AirSim can be categorized into:
|
Hi @wangwwno1! Thank you for sharing this. Are those errors when interacting with Airsim or with any simulator? |
Only with airsim, I'm not familiar with other simulators |
@jonyMarino Other simulators on PX4 (jmavsim, gazebo, jsbsim) are on a CI which is verified for every PR, therefore I am quite sure other simulators are functional |
Yes, @Jaeyoung-Lim. We will work together on that. |
What is the status @jonyMarino? Does AirSim work for 1.11.X or 1.12.0 now? |
While 1.10.1 used to work for me - now neither 1.10.1 nor 1.11 are reliable. I run into many of the errors mentioned in this issue. what would be the current recommended setup for PX4 SITL? (versions for everything?) |
PX4 v1.11.3 works fine with lastest AirSim master. What errors are you seeing? And this issue is really old, can you start a new one? |
@lovettchris thanks! It seems that there were indeed relevant fixes in the last few days :-) |
yes indeed, a very large PR went in recently that should fix most px4 stability issues. These are the settings that work well for PX4 SITL, and if you are using Windows Subsystem for Linux version 2 then see the new documentation on that. {
"SettingsVersion": 1.2,
"SimMode": "Multirotor",
"ClockType": "SteppableClock",
"Vehicles": {
"PX4": {
"VehicleType": "PX4Multirotor",
"UseSerial": false,
"UseTcp": true,
"TcpPort": 4560,
"ControlPortLocal": 14540,
"ControlPortRemote": 14580,
"ControlIp": "localhost",
"Sensors": {
"Barometer": {
"SensorType": 1,
"Enabled": true,
"PressureFactorSigma": 0.0001825
}
},
"Parameters": {
"NAV_RCL_ACT": 0,
"NAV_DLL_ACT": 0,
"LPE_LAT": 47.641468,
"LPE_LON": -122.140165,
"COM_OBL_ACT": 1,
"MPC_XY_VEL_MAX": 12
}
}
}
} |
Hi, AirSim is now working with PX4 Master. Please read the quoted comment from Chris Lovett. We still see a bug with PX4 running on Cygwin, but it's probably a PX4 issue. For now, for windows, we recommend using WSL2. You can find the binaries for the new version here. We are going to close this issue so as not to mix with the problems of previous versions. |
The latest Airsim release (v1.2.2) is already a year old.
Are there any plans to release a new Airsim release for Linux?
The text was updated successfully, but these errors were encountered: