Releases: microsoft/AirSim-NeurIPS2019-Drone-Racing
Neurips Binaries - Windows
Release notes:
Environment Pak Files
- Same as v0.0-windows. No need to re-download.
airsimneurips
- Please upgrade
airsimneurips
python package version to 0.0.11 to use the below-mentioned APIs.$ pip install airsimneurips --upgrade
- New: The pip package is now documented at https://microsoft.github.io/AirSim-NeurIPS2019-Drone-Racing/
API
-
This patch is concerned with the low level control APIs. Specifically, updating and extending old angle set-point APIs in the previous version, and addition of new angle-rate APIs.
-
All of the below-mentioned (old / new) APIs work in the body frame of the drone.
Set points are given in radians or radians / second.
The body frame follows the Front Left Up (FLU) convention, and right-handedness.-
X axis is along the "Front" direction of the quadrotor.
Clockwise rotation about this axis defines a positive roll angle.
Hence, rolling with a positive angle is equivalent to translating in the "right" direction, w.r.t. our FLU body frame. -
Y axis is along the "Left" direction of the quadrotor.
Clockwise rotation about this axis defines a positive pitch angle.
Hence, pitching with a positive angle is equivalent to translating in the "front" direction, w.r.t. our FLU body frame. -
Z axis is along the "Up" direction.
Clockwise rotation about this axis defines a positive yaw angle.
Hence, yawing with a positive angle is equivalent to rotated towards the "left" direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. -
moveByAngleRatesZAsync() (new)
-
moveByRollPitchYawZAsync()
(wasmoveByAngleZAsync
) -
moveByRollPitchYawrateThrottleAsync()
(wasmoveByAngleThrottleAsync
) -
moveByYawRateAsync()
(wasrotateByYawRateAsync
) -
moveToYawAsync()
(wasrotateToYawAsync
)
-
-
Minor API changes
-
enableApiControl(bool, vehicle_name)
is now broken intoenableApiControl(vehicle_name)
,disableApiControl(vehicle_name)
-
armDisarm(bool, vehicle_name)
is now broken intoarm(vehicle_name)
,disarm(vehicle_name)
-
Neurips Binaries - Linux
Release Notes:
-
Environment Pak files are same as v0.0.0-linux. No need to re-download.
-
Please upgrade
airsimneurips
python package version to 0.0.11 to use the below-mentioned APIs.
New: The pip package is now documented at https://microsoft.github.io/AirSim-NeurIPS2019-Drone-Racing/$ pip install airsimneurips --upgrade
-
This patch is concerned with the low level control APIs. Specifically, updating and extending old angle set-point APIs in the previous version, and addition of new angle-rate APIs.
-
All of the below-mentioned (old / new) APIs work in the body frame of the drone.
Set points are given in radians or radians / second.
The body frame follows the Front Left Up (FLU) convention, and right-handedness.-
X axis is along the "Front" direction of the quadrotor.
Clockwise rotation about this axis defines a positive roll angle.
Hence, rolling with a positive angle is equivalent to translating in the "right" direction, w.r.t. our FLU body frame. -
Y axis is along the "Left" direction of the quadrotor.
Clockwise rotation about this axis defines a positive pitch angle.
Hence, pitching with a positive angle is equivalent to translating in the "front" direction, w.r.t. our FLU body frame. -
Z axis is along the "Up" direction.
Clockwise rotation about this axis defines a positive yaw angle.
Hence, yawing with a positive angle is equivalent to rotated towards the "left" direction wrt our FLU body frame. Or in an anticlockwise fashion in the body XY / FL plane. -
moveByAngleRatesZAsync() (new)
-
moveByRollPitchYawZAsync()
(wasmoveByAngleZAsync
) -
moveByRollPitchYawrateThrottleAsync()
(wasmoveByAngleThrottleAsync
) -
moveByYawRateAsync()
(wasrotateByYawRateAsync
) -
moveToYawAsync()
(wasrotateToYawAsync
)
-
-
Minor API changes
-
enableApiControl(bool, vehicle_name)
is now broken intoenableApiControl(vehicle_name)
,disableApiControl(vehicle_name)
-
armDisarm(bool, vehicle_name)
is now broken intoarm(vehicle_name)
,disarm(vehicle_name)
-
Neurips Binaries - Windows
Release Notes:
-
Environment Pak files are same as v0.0-windows. No need to re-download.
-
Please upgrade
airsimneurips
python package version to 0.0.7 to use the below-mentioned APIs$ pip install airsimneurips --upgrade
-
New APIs():
-
traj_tracker_gains = airsim.TrajectoryTrackerGains(kp_cross_track = 7.5, kd_cross_track = 0.0, kp_vel_cross_track = 5.0, kd_vel_cross_track = 0.0, kp_along_track = 0.4, kd_along_track = 0.0, kp_vel_along_track = 0.04, kd_vel_along_track = 0.0, kp_z_track = 2.0, kd_z_track = 0.0, kp_vel_z = 0.4, kd_vel_z = 0.0, kp_yaw = 3.0, kd_yaw = 0.1) traj_tracker_gains_list = traj_tracker_gains.to_list() client.setTrajectoryTrackerGains(gains=traj_tracker_gains_list, vehicle_name='')
-
- Fits a minimum jerk trajectory to the list of given 3D waypoints (specified by the
waypoint_vector3r_list
parameter).
Uses ETHZ-ASL'smav_trajectory_generation
as the trajectory planning backend. - Tracks the references positions and velocities using a pure pursuit tracking controller. The gains of the pure pursuit tracking controller are set by
setTrajectoryTrackerGains()
as shown above. - Note:
setTrajectoryTrackerGains()
must be called once before calling moveOnSpline()
moveOnSplineAsync(waypoint_vector3r_list, vel_max=15.0, acc_max=7.5, add_curr_odom_position_constraint=True, add_curr_odom_velocity_constraint=True, viz_traj=True, vehicle_name = '')
- Fits a minimum jerk trajectory to the list of given 3D waypoints (specified by the
-
moveOnSplineVelConstraintsAsync()
-
Fits a minimum jerk trajectory to the list of given 3D waypoints (specified by the
waypoint_vector3r_list
parameter), with corresponding 3D velocity vector constraints (specified by thevelocity_vector3r_list
parameter).
Uses ETHZ-ASL'smav_trajectory_generation
as the trajectory planning backend. -
Tracks the references positions and velocities using a pure pursuit tracking controllers. The gains of the pure pursuit tracking controllers are set by
setTrajectoryTrackerGains()
as shown above. -
Note:
setTrajectoryTrackerGains()
must be called once before calling moveOnSplineVelConstraintsAsync()
moveOnSplineVelConstraintsAsync(waypoint_vector3r_list, velocity_vector3r_list, vel_max=15.0, acc_max=7.5, add_curr_odom_position_constraint=True, add_curr_odom_velocity_constraint=True, viz_traj=True, vehicle_name = ''):
-
-
plot_transform(pose_list, vehicle_name='')
-
Neurips Binaries - Linux
Release Notes:
-
Environment Pak files are same as v0.0-linux. No need to re-download.
-
Please upgrade
airsimneurips
python package version to 0.0.7 to use the below-mentioned APIs$ pip install airsimneurips --upgrade
-
New APIs():
-
traj_tracker_gains = airsim.TrajectoryTrackerGains(kp_cross_track = 7.5, kd_cross_track = 0.0, kp_vel_cross_track = 5.0, kd_vel_cross_track = 0.0, kp_along_track = 0.4, kd_along_track = 0.0, kp_vel_along_track = 0.04, kd_vel_along_track = 0.0, kp_z_track = 2.0, kd_z_track = 0.0, kp_vel_z = 0.4, kd_vel_z = 0.0, kp_yaw = 3.0, kd_yaw = 0.1) traj_tracker_gains_list = traj_tracker_gains.to_list() client.setTrajectoryTrackerGains(gains=traj_tracker_gains_list, vehicle_name='')
-
- Fits a minimum jerk trajectory to the list of given 3D waypoints (specified by the
waypoint_vector3r_list
parameter).
Uses ETHZ-ASL'smav_trajectory_generation
as the trajectory planning backend. - Tracks the references positions and velocities using a pure pursuit tracking controller. The gains of the pure pursuit tracking controller are set by
setTrajectoryTrackerGains()
as shown above. - Note:
setTrajectoryTrackerGains()
must be called once before calling moveOnSpline()
moveOnSplineAsync(waypoint_vector3r_list, vel_max=15.0, acc_max=7.5, add_curr_odom_position_constraint=True, add_curr_odom_velocity_constraint=True, viz_traj=True, vehicle_name = '')
- Fits a minimum jerk trajectory to the list of given 3D waypoints (specified by the
-
moveOnSplineVelConstraintsAsync()
-
Fits a minimum jerk trajectory to the list of given 3D waypoints (specified by the
waypoint_vector3r_list
parameter), with corresponding 3D velocity vector constraints (specified by thevelocity_vector3r_list
parameter).
Uses ETHZ-ASL'smav_trajectory_generation
as the trajectory planning backend. -
Tracks the references positions and velocities using a pure pursuit tracking controllers. The gains of the pure pursuit tracking controllers are set by
setTrajectoryTrackerGains()
as shown above. -
Note:
setTrajectoryTrackerGains()
must be called once before calling moveOnSplineVelConstraintsAsync()
moveOnSplineVelConstraintsAsync(waypoint_vector3r_list, velocity_vector3r_list, vel_max=15.0, acc_max=7.5, add_curr_odom_position_constraint=True, add_curr_odom_velocity_constraint=True, viz_traj=True, vehicle_name = ''):
-
-
plot_transform(pose_list, vehicle_name='')
-
Neurips Environment Paks - Windows
List of Levels by Difficulty (Least to Most Difficult)
- Soccer Field - A simple outdoors environment with few obstacles, and an easy to follow course.
- ZhangJiaJie - A mountainous landscape based on a national park in the Hunan province of China.
- Building99 - A tight race course designed inside one of Microsoft's very own buildings.
How to Use
- Download
AirSim.zip
and unzip it into a place of your choosing. This is your main executable file. - Download your desired DLC package(s).
- Copy your downloaded
pak
file, and paste it intoAirsim/AirSimExe/Content/Paks
.
Neurips Environment Paks - Linux
List of Environments
- SoccerField - A simple soccer field environment with few obstacles, and an easy to follow course.
- ZhangJiaJie - A mountainous landscape based on a national park in the Hunan province of China.
- Building99 - A tight race course designed inside one of Microsoft's very own buildings.
How to Use
- Download
AirSim.tar.gz
and extract it into a place of your choosing. This is your main executable file. - Download your desired DLC package(s).
- Copy your downloaded
pak
file, and paste it intoAirsim/AirSimExe/Content/Paks
.