Skip to content

System Overview

Tiana Ton Nu edited this page Jun 15, 2020 · 4 revisions

Navigation

The navigation software was initially tested with the Raspberry Pi and PixHawk attached to an RC car. Rather than write our own custom firmware to control the vehicle motors, we send MAVLink commands from the Raspberry Pi to the Pixhawk controller through the Python library DroneKit. Although the Pixhawk is typically used as a flight controller for drones and other aerial vehicles, we are still able to utilize its navigation and mission planning functionalities with the ground vehicle version of the ArduPilot firmware, ArduRover.

Communication

The Digi Xbee Python library is used to send and receive messages with the XBee radio. Upon start-up of the vehicle script, BUGV will send a Connect message to GCS to establish the mission. Throughout the mission, BUGV will continue to send Update messages to GCS with information such as vehicle heading, location, battery status, etc. All messages will be properly formatted JSON strings following the format defined by GCS.

Key Hardware

  • Traxxas Stampede VXL - RC Monster Truck turned autonomous, used for testing.
  • Pixhawk - Flight controller that runs ArduRover firmware, interfaces with the vehicle motors and handles navigation, including accelerometer, GPS, and compass information.
  • Raspberry Pi - Computer running the main program.

Key Software

  • ArduPilot - Firmware for autonomous control of vehicles, runs on the Pixhawk. We use the ground vehicle version, ArduRover. You can program missions, set waypoints, set servos and throttle speed; we do this by sending MAVLink messages through DroneKit.
  • DroneKit - This Python library allows for simple programming of missions and go-to commands to waypoints, which are translated into MAVLink commands sent to the Pixhawk. You can also write and send custom MAVLink messages, useful for setting the servo motors for finer movement.
  • MAVLink - Messaging protocol for communicating with small unmanned vehicles. This is how we communicate and send commands to the Pixhawk. DroneKit handles all MAVLink message sending for us. List of MAVLink rover mission commands.

Clone this wiki locally