Code Monkey home page Code Monkey logo

autoboat's Introduction

Autoboat

This repository contains code used for running the Autoboat, a 20' robotic surface vessel currently in development at the University of Santa Cruz under the directive of Professor Gabriel Elkaim. This respository is therefore likely to be of little interest to outsiders, though much of the support code is fairly modular. Groundstation software for this vessel is provided via the QGroundControl project and is not contained within this repository.

File layout

  • CAD - Contains CAD designs of both mechanical and electrical systems. The mechanical systems have been modeled in SolidWorks 2010 while the electrical schematics have been generated using Eagle 6.
  • Code - This contains the software used for controlling the boat. Primarily Simulink and C control its operation and MATLAB and Python scripts assist in data parsing and analysis
  • Documentation - Various documents regarding this project are stored in this directory.

Main project

The main project code is housed within /Code/Primary_node/primary_node.mdl and /Code/basic_model/Boat_sim.mdl, both Simulink 2011b models.

Boat_sim.mdl provides a simulator for testing my vehicle/environmental model and the vehicle controllers. It can run solely on a computer or via a UDP port provide the vehicle/environmental simulation to an external controller for use in Hardware-in-the-Loop (HIL) testing. Relies on the MicroSimulink library (https://github.com/Susurrus/MicroSimulink-Library).

primary_node.mdl contains all of the controller logic for the primary controller. It is organized as hardware dependent code that wraps the main controller block that is shared with Boat_sim.mdl (via the make.m script). This is designed to run aboard a CANode with the dsPIC33FJ256GP710A onboard along with a custom shield for providing connections to peripherals. It depends on both the MicroSimulink library (https://github.com/Susurrus/MicroSimulink-Library), Lubin's PIC blockset (http://www.kerhuel.eu/wiki/Simulink_-_Embedded_Target_for_PIC), and the ECAN blockset (https://github.com/Susurrus/ECAN_dspic). All of these dependencies must be correctly installed and on the path along with Microchip's xc16 compiler for this project to compile to an executable.

The toolboxes required by the various models are the Aerospace Blockset, MATLAB, MATLAB coder, Simulink, and Simulink Coder.

Code generation of the MATLAB projects requires a supported compiler [www.mathworks.com/support/compilers/R2011b] crosoft's Visual Studio 2010 is also required in order to compile the project or the Windows SDK 7.1 or newer. Both are available for free online.

In addition to these Simulink libraries, the MAVLink C library for the SeaSlug must be installed. Download it from https://github.com/mavlink/mavlink into the same directory that this repository is contained in so that it looks like: /MicroSimulink-Library /ECAN_dspic /Autoboat /mavlink

You'll need Python 2.6+ to run the MAVLink generator from within the mavlink directory:

$ python mavgen.py --lang=C --wire-protocol=1.0 -o include ../Autoboat/Code/Libs/MAVLink/seaslug.xml

This will put the MAVLink code for the SeaSlug dialect into /mavlink/include where it can be referenced by primary_node.mdl.

The current version of MAVLink will not compile with the xc16 compiler unless the stdint.h header file within the xc16 includes directory is duplicated as an inttypes.h file.

Further documentation

A wiki has been hosted to provide details on this project at http://byron.soe.ucsc.edu/autoboat/wg2/.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.