
Install the Ardupilot build environment and simulation software from Ardupilot source code, run simulations with different vehicles, and learn to start binaries and create a simulation starter shell script.
Set up the build environment by updating packages, installing git, and configuring git to use https. Clone the Georgia pilot repository and run the shell script to install required packages.
Set up and run Linux simulation software for copter, plane, rover, submarine, and antenna tracker by navigating to each vehicle's directory, loading parameters, building, and starting the simulation.
Learn to install, upgrade, and run map proxy as a ground control station and proxy, control and monitor drones, forward telemetry, manage links, geofence, mission points, and terrain data.
Install the proxy command line ground control station on Linux, install required packages and Python modules, adjust user permissions for serial access, and start and upgrade the proxy regularly.
Start a quickstart to my proxy ground control station, configure master and connection strings (tcp, udp, serial), and launch the console and map to monitor a simulated vehicle’s telemetry.
Arm and disarm the vehicle via my proxy, adjust the disarm_delay parameter, and verify the armed state in the console and map modules.
Explore mission editing with Mission Ed to create autonomous flight plans using waypoints, altitude, and loiter, and learn to read, write, and deploy missions in simulation.
Explore geofencing controls in drone autopilot. Learn how to enable fences, set max and min altitudes, define radii and fence types, and observe breach behavior returning the drone home.
Define rally points with the proxy, load and save them, and let the drone autonomously navigate to the closest rally point or home location using rtl or guided modes.
Explore using the command_int command to send position updates via a proxy, detailing frame types, lat/lon scaling, and guided takeoff to 10 meters.
Connect to a simulated drone vehicle via the proxy, explore system commands such as reboot, time, script, shell, status, watch, and exit, and observe the EKF initialization and GPS detection.
Learn to use the log module in the proxy to view and download on-board flight logs, list available logs, download by index, and monitor download status.
Plot live vehicle data with the proxy’s graph module to monitor altitude and vibration in real time. Load the module, select messages, and customize legends, time span, and resolution.
Explore link management in the drone programming proxy, connect to a vehicle via the master connection address, and manage links, statistics, and telemetry streams.
Discover how to use the long command to send long messages via the proxy during flight. The video demonstrates composing the command and a guided takeoff to 10 meters.
Initialize the simulated drone and connect via proxy to start the map module, then navigate with the map interface, set home and origin, and check terrain data.
Set a servo on a simulated drone using my proxy and an unused server channel. Use PBM set and repeat commands to cycle between 1500 and 2000, adjusting the trim.
Learn to set and control a relay using power proxy, configure output channels and open/close states, and create relay cycles for a simulated vehicle.
Configure the drone proxy speech module by installing speech dispenser, editing audio defaults, and restarting pulseaudio to enable real-time voice feedback with mapbox speech in guided and stabilized modes.
Learn to synchronize time between autopilot and ground control station using my proxy by loading the system time module and configuring the time sync interval.
Explore how the terrain module in the drone programming course downloads terrain data, caches it on the flight controller's SD card, and provides terrain reports via terrain check commands.
Learn to control and monitor vehicle state in Python with the Drunket library, including installation, connection, state reading, parameter access, and autonomous missions such as takeoff, waypoint flights, and calibration.
Install the drone kit Python module on a Linux computer by running terminal commands to install required packages. Update the drone kit with the provided commands to stay current.
Connect to the simulated vehicle using the drone kit python module by importing it and calling connect with serial, usb, tcp, or udp options, set ip, port, and weight ready.
Create vehicle observers with drum kit listeners to monitor mode and parameter changes, triggering callbacks; add and remove attribute, parameter, and message listeners to track heartbeat and vehicle state.
Learn to read and set onboard drone parameters with drone kit: connect to the vehicle, fetch parameters, set a value to two, and verify.
This lecture demonstrates how to take off and land a drone using guided mode, including connecting to the vehicle, calibrating parameters, arming, takeoff to about 20 meters, and landing.
Learn how to fly a drone kit to a target location in guided mode, using distance calculations, go-to commands, arming and takeoff procedures, and returning to launch after arrival.
Learn to calibrate a drone vehicle with drone kit, including accelerometer, gyroscope, magnetometer, level, and barometer calibrations, and send parameter calibrations via wiggle dots.
Explore mavlink, a lightweight binary messaging protocol for drones and onboard components, enabling point-to-point and multipoint communication over serial or IP networks with heartbeat, mission, and parameter services.
Learn to control and monitor vehicle states with Python using the Pymol Link Library, covering installation, connecting to the vehicle, streaming messages, arming, and flight control.
Install the pie modeling Python module on a Linux computer using pip via terminal, then periodically update to use the latest version in your Python scripts.
Learn to connect to a drone vehicle using paymat link in python, configure serial, udp, or tcp connections, verify with heartbeat, and identify target system and component.
Receive modeling messages from a simulated vehicle using a Python script over UDP, filter by type, and inspect system time messages' fields like time Unix microseconds.
Learn how to request a periodic message stream from a vehicle, using a Python script to configure extended system state messages and monitor landed state, take off, and on air.
Learn how to request all onboard vehicle parameters and fetch a specific parameter using prom request list and parameter read messages. Then set parameters with a parameter set message.
Discover how to send a request to an autopilot to retrieve the autopilot version message, revealing the flight software version and latest git hash.
Learn to arm and disarm a simulated drone via pi link, monitor arm status with heartbeat and command acknowledgment, and verify onboard control sensors health before arming.
Demonstrates taking off and landing the vehicle using takeoff and land messages, arming in guided mode with a 50 meter takeoff altitude while observing relative altitude from global position messages.
Change a vehicle’s current mission item in auto flight mode by sending a map cmd with a desired sequence number, then verify via the mission current message and uploaded waypoints.
Learn to control a servo with pi modeling by sending commands to a server channel and setting pbm values.
Learn to control a relay on the drone autopilot using pipe modeling, map up to six relays to the sim pin mask, and issue set relay commands.
Learn to update targeted mission waypoints using a partial mission list message, sending start index 3 and index 4, handling mission requests and acknowledgments with a map proxy.
Learn to clear the mission item list on a vehicle by sending a mission clear all message and verifying the item count drops to zero.
Request the fence total from the vehicle, fetch each fence point, and assemble a lat/long list that forms a closed polygon with the return point at index zero.
learn to upload a fence item list to a vehicle using python with map proxy, by disabling, clearing, setting fence total to list length, sending fence points, and re-enabling.
Learn to enable and disable the drone fence in flight using a python script and map proxy with primal link, including loading fence points and issuing enable or disable commands.
Learn to request and fetch rally point items from a vehicle using param requests and rally fetch, and guide a drone to the nearest rally point when RTL is active.
Learn to request default message streams from a vehicle using the pi map link, connecting to simulated or real autopilot hardware and configuring data streams and rates.
Learn to calculate the distance between a drone's home position and its current position by requesting home and global positions, parsing composition messages, and computing geodesic distance in Python.
Set the yaw to a target heading in guided or auto mode using map cmd condition, adjusting target angle, angular speed, turn direction, and absolute or relative target angle.
Capture RC channels and server output raw messages from a simulated vehicle using pi mail link. Override channel values to trigger tasks and observe motor outputs.
Verify terrain data for a location using pilot terrain generator, download and copy terrain data to the terrain directory, then use terrain check messages and reports to confirm loaded grids.
Explore sending Mavlink status text messages from a companion computer to the ground control station via a master device over UDP, encoded as UTF-8, demonstrated in a simulated vehicle.
Learn to log data from a companion computer to the autopilot's onboard logs using status text messages, MSG logs, and time-synced data, with Python.
Demonstrates inter-process communication with Mavlink by modeling a master and slave using UDP or TCP, enabling bidirectional messaging with named value float messages.
Create and run on-board scripts on the flight controller to boost autonomy without a companion computer. Place scripts on the sd card and relay text to the gcs.
Learn to create a simple Lua loop by defining a function, scheduling self-call every 0.5 seconds, and sending loop counter updates as a named float to the ground control station.
Learn to read the vehicle's attitude with a Lua script, converting roll, pitch, and yaw from radians to degrees and sending them to the ground control station in real time.
Learn to read a vehicle's current location with lua scripting, obtaining latitude, longitude, and altitude, and transmit it to the ground control station.
Explore location objects in Lua, including copy, origin and terrain ELT, altitude frames, and bearing with distances. Create new locations via offset bearing and offset to enable autonomous drone missions.
Master Lua scripting to create parameter tables, add vehicle parameters, and get or set values with defaults, ending with a scripting engine restart.
Learn how to read and write location data to a CSV file with Lua scripting, including append mode, parsing lines, and converting strings to numbers for latitude, longitude, and altitude.
Learn to log flight data with ArduPilot’s onboard binary logs using Lua scripting. Define a log name, labels, format, and data fields to capture latitude, longitude, and altitude.
Read RC input values with Lua scripting using get_pvm, monitor channels six and seven, and send overrides to ground control, using pvm values to trigger actions.
learn to control servos and relays with lua scripting, assign servo outputs to scripting using function 94, support up to 16 channels, and monitor outputs via the graph module.
Discover how to perform protected function calls in Lua using the pickle function to catch runtime errors, return success and results, and keep subsequent code running.
Explore reading drone battery data with Lua, using the battery class to fetch voltage, resting voltage, instantaneous current, and consumed milliamp hours, then transmit results to the ground control station.
Learn to obtain system time and boot time with millis and micros, read time week and time week milliseconds in Lua, and convert to local time and UTC with Python.
Learn to get the vehicle firmware version with Lua using the version class, retrieving major, minor, patch, and version string, plus vehicle type and hash checks.
Disclaimer
Unmanned systems of any size have the potential to endanger the safety and violate national laws.
All kinds of security and safety measures should be taken while developing unmanned systems.
All lectures in this course are for informational purposes only.
It is the user's sole responsibility to use the information described in the course in real-life unmanned systems and take safety and security measures.
The lessons in the course are for educational purposes only and the instructor of the course cannot be held responsible for the information and its usage in real-world applications.
By taking and continuing this course, it is committed that the course instructor will not be held responsible in any undesired situation and the person who took the course will be held responsible for all the negativities and undesired circumstances that may arise.
Fully autonomous unmanned systems are important technological and engineering wonders of today's world. All autonomous unmanned systems need an autopilot that controls the behaviors and working mechanism of the unmanned platform and controls the platform by semi-autonomous or fully autonomous.
The ArduPilot project provides an advanced, full-featured, and reliable open source autopilot software system. The Ardupilot software system is capable of controlling almost any vehicle system imaginable: conventional and VTOL airplanes, gliders, multi-rotors, helicopters, sailboats, powered boats, submarines, ground vehicles, and even balance robots. The supported vehicle types frequently expand as use cases emerge for new and novel platforms.
This course covers some of the most important aspects of software development for controlling and monitoring Ardupilot autopilot software system-powered unmanned autonomous systems.
In this course, you are going to learn the following:
Ability to setup and run Ardupilot autopilot simulation environment.
Developing Python programming language scripts that communicate with Ardupilot software system using Dronekit library.
Understanding MAVLink messages and creating custom scripts using Python programming language and PyMAVLink library.
Learn how to use the MAVProxy Command Line Ground Control Station and what it does.
Autopilot onboard software development using LUA programming language.
Custom embedded software development with Ardupilot autopilot software system.
In this course, there are also supplementary sample projects, assignments, and resources to gain hands-on experience to work with the Ardupilot autopilot software system.