Skip to content

UnmannedAerialSystems/MAVez

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PSU UAS MAVez

The Pennsylvania State University

Description

Library for controlling ArduPilot from an external computer via pymavlink.

For detailed documentation on pymavlink, visit mavlink.io. "Standard Messages/Commands" > "common.xml" is a particularly useful resource.

Table of Contents

Installation

  1. In a terminal window, run git clone [email protected]:UnmannedAerialSystems/MAVez.git
  2. Switch into the newly cloned directory by running cd MAVez
  3. Install the package locally in editable mode pip install -e .

While not required, it is highly recommended that you utilize ArduPilot's Software in the Loop (SITL) simulator to make testing significantly easier. Install instructions are provided for Windows and MacOS in the appendix. For Linux or WSL instructions, refer to the ArduPilot setup page

Example Usage

Below is a simple script designed to work with SITL. This example is provided at /examples/basic.py/

from MAVez import flight_controller
from MAVez.safe_logger import configure_logging
import asyncio


logger = configure_logging()
async def main():
    controller = flight_controller.FlightController(connection_string='tcp:127.0.0.1:5762', baud=57600, logger=logger)

    await controller.set_geofence("./examples/sample_missions/sample_fence.txt")

    await controller.arm()

    await controller.takeoff("./examples/sample_missions/sample1.txt")
    controller.append_mission("./examples/sample_missions/sample2.txt")
    controller.append_mission("./examples/sample_missions/sample3.txt")

    await controller.auto_send_next_mission()
    await controller.auto_send_next_mission()

    await controller.wait_for_landing()

    await controller.disarm()

if __name__ == "__main__":
    asyncio.run(main())

License:

This project is licensed under the GNU General Public License v3.0.

Authors:

Ted Tasman Declan Emery Vlad Roiban

Appendix:

SITL Installation

Windows

SITL comes precompiled for Windows as part of Mission Planner. Installing Mission Planner is the most painless method for using SITL on Windows.

MacOS

  1. Install prerequisites:
brew install python3 gcc
pip install future pymavlink MAVProxy opencv-python
  1. Clone ArduPilot repository
git clone https://github.com/ArduPilot/ardupilot.git
cd ardupilot
git submodule update --init --recursive
  1. Install environment
cd Tools/environment_install
./install-prereqs-mac.sh  # decline all prompts
  1. Compile the binaries

Return to ./ardupilot

./waf configure --board sitl
./waf copter
./waf plane
  1. Run SITL
./Tools/autotest/sim_vehicle.py -v ArduCopter --console --map

About

Intuitive library wrapper for pymavlink. View on PyPI: https://pypi.org/project/MAVez/

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •  

Languages