Pre-arm: AHRS EK3 source requires optical flow

hi I faced this critical error ((pre prearm ahrs ek3 sources require optical follow))
when when i run this code

from dronekit import connect, VehicleMode, LocationGlobalRelative
from pymavlink import mavutil
import time
import argparse
parser = argparse.ArgumentParser()
parser.add_argument(‘–connect’, default=‘127.0.0.1:14550’)
args = parser.parse_args()

Connect to the Vehicle

print (‘Connecting to vehicle on: %s’ % args.connect)
vehicle = connect(args.connect, baud=921600, wait_ready=True)
#921600 is the baudrate that you have set in the mission plannar or qgc

Function to arm and then takeoff to a user specified altitude

def arm_and_takeoff(aTargetAltitude):

print (“Arming motors”)

Copter should arm in GUIDED mode

vehicle.mode = VehicleMode(“GUIDED”)
vehicle.armed = True

while not vehicle.armed:
print (" Waiting for arming…")
time.sleep(1)

print (“Taking off!”)
vehicle.simple_takeoff(aTargetAltitude) # Take off to target altitude

Check that vehicle has reached takeoff altitude

while True:
print (" Altitude: ", vehicle.location.global_relative_frame.alt)
#Break and return from function just below target altitude.
if vehicle.location.global_relative_frame.alt>=aTargetAltitude*0.95:
print (“Reached target altitude”)
break
time.sleep(1)

Initialize the takeoff sequence to 15m

arm_and_takeoff(15)

print (“Take off complete”)

Hover for 10 seconds

time.sleep(15)

print (“Now let’s land”)
vehicle.mode = VehicleMode(“LAND”)

my questions are :
what is this error mean ?
how can i fix it please ?
i just want run it indoor place

Update to ArduCopter 4.3.6. According to your post you are using an outdated ArduCopter 4.0.x version.

The error means you need to add an optical flow sensor and a range finder.

Read the documentation on guided_no_GPS flight mode and indoors flights Non-GPS Navigation — Copter documentation . After doing that, post further questions.

thank you i was able to run it