Skip to content

Releases: microsoft/AirSim-NeurIPS2019-Drone-Racing

Neurips Binaries - Windows

06 Aug 08:43
7891db8
Compare
Choose a tag to compare

Release notes:

Environment Pak Files

  • Same as v0.0-windows. No need to re-download.

airsimneurips

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.

    • moveByAngleRatesThrottleAsync() (new)

    • moveByAngleRatesZAsync() (new)

    • moveByRollPitchYawThrottleAsync() (new)

    • moveByRollPitchYawZAsync()
      (was moveByAngleZAsync )

    • moveByRollPitchYawrateThrottleAsync()
      (was moveByAngleThrottleAsync )

    • moveByRollPitchYawrateZAsync() (new)

    • moveByYawRateAsync()
      (was rotateByYawRateAsync )

    • moveToYawAsync()
      (was rotateToYawAsync )

  • Minor API changes

    • enableApiControl(bool, vehicle_name) is now broken into enableApiControl(vehicle_name), disableApiControl(vehicle_name)

    • armDisarm(bool, vehicle_name) is now broken into arm(vehicle_name), disarm(vehicle_name)

Neurips Binaries - Linux

06 Aug 09:12
7891db8
Compare
Choose a tag to compare

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.

    • moveByAngleRatesThrottleAsync() (new)

    • moveByAngleRatesZAsync() (new)

    • moveByRollPitchYawThrottleAsync() (new)

    • moveByRollPitchYawZAsync()
      (was moveByAngleZAsync )

    • moveByRollPitchYawrateThrottleAsync()
      (was moveByAngleThrottleAsync )

    • moveByRollPitchYawrateZAsync() (new)

    • moveByYawRateAsync()
      (was rotateByYawRateAsync )

    • moveToYawAsync()
      (was rotateToYawAsync )

  • Minor API changes

    • enableApiControl(bool, vehicle_name) is now broken into enableApiControl(vehicle_name), disableApiControl(vehicle_name)

    • armDisarm(bool, vehicle_name) is now broken into arm(vehicle_name), disarm(vehicle_name)

Neurips Binaries - Windows

02 Aug 20:08
7ded3e7
Compare
Choose a tag to compare

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():

    • setTrajectoryTrackerGains()

      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='')
    • moveOnSplineAsync()

      • Fits a minimum jerk trajectory to the list of given 3D waypoints (specified by the waypoint_vector3r_list parameter).
        Uses ETHZ-ASL's mav_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 = '')
    • 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 the velocity_vector3r_list parameter).
        Uses ETHZ-ASL's mav_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()

          plot_transform(pose_list, vehicle_name='')

Neurips Binaries - Linux

02 Aug 20:09
7ded3e7
Compare
Choose a tag to compare

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():

    • setTrajectoryTrackerGains()

      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='')
    • moveOnSpline()

      • Fits a minimum jerk trajectory to the list of given 3D waypoints (specified by the waypoint_vector3r_list parameter).
        Uses ETHZ-ASL's mav_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 = '')
    • 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 the velocity_vector3r_list parameter).
        Uses ETHZ-ASL's mav_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()

          plot_transform(pose_list, vehicle_name='')

Neurips Environment Paks - Windows

02 Jul 20:38
Compare
Choose a tag to compare

List of Levels by Difficulty (Least to Most Difficult)

  1. Soccer Field - A simple outdoors environment with few obstacles, and an easy to follow course.
  2. ZhangJiaJie - A mountainous landscape based on a national park in the Hunan province of China.
  3. Building99 - A tight race course designed inside one of Microsoft's very own buildings.

How to Use

  1. Download AirSim.zip and unzip it into a place of your choosing. This is your main executable file.
  2. Download your desired DLC package(s).
  3. Copy your downloaded pak file, and paste it into Airsim/AirSimExe/Content/Paks.

Neurips Environment Paks - Linux

02 Jul 21:43
Compare
Choose a tag to compare

List of Environments

  1. SoccerField - A simple soccer field environment with few obstacles, and an easy to follow course.
  2. ZhangJiaJie - A mountainous landscape based on a national park in the Hunan province of China.
  3. Building99 - A tight race course designed inside one of Microsoft's very own buildings.

How to Use

  1. Download AirSim.tar.gz and extract it into a place of your choosing. This is your main executable file.
  2. Download your desired DLC package(s).
  3. Copy your downloaded pak file, and paste it into Airsim/AirSimExe/Content/Paks.