cypilot


Namecypilot JSON
Version 1.0.9 PyPI version JSON
download
home_pagehttps://cybele-sailing.com
SummaryCyPilot Sailing Autopilot
upload_time2023-10-24 15:19:46
maintainer
docs_urlNone
authorCYS
requires_python
licenseGPLv3
keywords sailing autopilot raspberry cysbox cyspwr
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # cypilot

This is a much modified version of the original pypilot software created by Sean D'Epagnier
under the terms of the GNU General Public License as published by the Free Software Foundation
(version 3 of the License or any later version)

(C) 2020-2023 Cybele Services (cf@cybele-sailing.com)

Designed for:

   - Support of CysBOX/CysPWR dedicated hardened hardware and CysRC remote control unit
   (see doc/Img and https://cybele-sailing.com)

   - Support of latest IMU devices with built-in fusion (RTIMULib2 is no longer used) : BNO085/BNO086 from HillCrest Labs is recommended
   (use BNO08X with HillCrest labs/CEVA firmware, original Bosch BNO055 no longer supported)

   - New specific pilot algorithms with auto-tune, auto-learning, ...

   - QT Dialogs

   - ...

Work in progress, to test this software:

   - install software as described hereafter

   - run autopilot UI using the __ApControl__ menu or desktop shorcut, or invoking "autopilot" or "autopilot_web" from command line
      This will automatically launch an autopilot server and the __ApControl__ UI.
      Note that the Autopilot server is now launched at startup: when it is running, click on black triangle down icon in the taskbar to open the trace window, or to hide/stop it.

   - optionally run a client in another terminal window ("cypilot_calibration","cypilot_client",...)

   See "Running Autopilot" hereafter for details.


How to Install the cypilot package:
==================================

This is the basic installation for Autopilot standard user.

1) install package
   ---------------

While pip alone is sufficient to install from pre-built binary archives, up to date copies of the setuptools and wheel projects are useful to ensure you can also install from source archives:

__sudo python3 -m pip install --upgrade pip setuptools wheel__

Install __cypilot__ from wheel file:

__sudo pip3 install cypilot-1.0.0-cp39-cp39-linux_aarch64.whl__

or, install from pypi the latest officially published release:

__sudo pip3 install cypilot__

note: to uninstall = __sudo pip3 uninstall cypilot==1.0.0__

2) complete installation
   ---------------------

After package has been installed, installation must be completed using the __cypilot_init__ command:

__cypilot_init__

At least, select __-1-__ from main menu, then step __-1,2,3-__ from the opened submenu, and __-4-__ to reboot.

To install __signal-k__ server, select step __-2-__ from main menu, install __signal-k dependancies__,
then when installing __signal-k server__, choose all default settings:
__default location__, __update__ or start from scratch, any __vessel name__, __MMSI__ (if you have one), do not use port 80 (use __default port 3000__), __do not enable SSL__

3) customize configuration to match your boat specifications
   ---------------------------------------------------------

Update the configuration files which are located in $HOME/.cypilot directory:
   - NMEA, COM, ... ports assignment
   - sensor priorities
   - ...

Calibrate IMU (mounting position, gyro, heading, ...) using __cypilot_calibration__ utility.

See detailed documentation in the doc directory.

How to Prepare system for development:
=====================================

This is a complete suggested installation procedure for developers

1) clone project from github
   -------------------------

We advise to use our common directory structure, so to clone git to /home/pi/CysDev/cypilot

2) install package
   ---------------

While pip alone is sufficient to install from pre-built binary archives, up to date copies of the setuptools and wheel projects are useful to ensure you can also install from source archives:

__sudo python3 -m pip install --upgrade pip setuptools wheel__

Use wheel distribution from the dist directory __/home/pi/CysDev/cypilot/dist__

__cd /home/pi/CysDev/cypilot/dist__

__sudo pip3 install *.whl__

3) complete installation from development environment
   --------------------------------------------------

To install with menu shortcuts pointing to development files, just run __python3 cypilot_init.py__ from the development environment.
At least, select __-1-__ from main menu, then step __-1,2,3-__ from the opened submenu, and __-4-__ to reboot.

__cd /home/pi/CysDev/cypilot/src/cypilot_init__

__python3 cypilot_init.py__

To build C extensions (linebuffer, servo, ...) in the development source tree:

__cd /home/pi/CysDev/cypilot__

__python3 setup.py build_ext__

To install __signal-k__ server, select step __-2-__ from main menu, install __signal-k dependancies__,
then when installing __signal-k server__, choose all default settings:
__default location__, __update__ or start from scratch, any __vessel name__, __MMSI__ (if you have one), do not use port 80 (use __default port 3000__), __do not enable SSL__

How to Build a complete package:
===============================

The development environment must have been installed (see "Prepare system for development" just before)

1) install build if not already done
   ---------------------------------

__sudo pip3 install --upgrade build__

2) build
   -----

__cd /home/pi/CysDev/cypilot__

Optionaly clean previous build:

__rm -r build__
__rm -r dist__

Build package:

__python3 -m build . --wheel__

The built package is in dist repertory : __cypilot-1.0.0-cp39-cp39-linux_aarch64.whl__


Running Autopilot:
==================

1- Using Raspberry PI GUI:
--------------------------
Run __Autopilot UI__ from Raspberry pi Menu : __AutoPilot > ApControl__
or
Double-click __ApControl__ UI icon on PI desktop

The following menu shortcuts are installed ("Cypilot menu", desktop, and/or "Cypilot Tools" folder):

   - Shortcuts to QT dialogs:

      - __ApCalibration__ : QT calibration menu (command line : __cypilot_calibration__)
      - __ApConfiguration__ : QT generic configuration client menu (command line : __cypilot_config__)
      - __ApControl__ : QT main autopilot dialog menu (command line : __autopilot__)
      - __ApRun__ : run autopilot server (command line : __cypilot__)
      - __AutotuneWizard__ : Autotune configuration dialog (same as longpress on Autotune button in __ApControl__ dialog)
      - __DashBoard__ : Dashboard utility
      - __Learning_GUI__ : learning manager GUI (in development)

   - Shortcuts to terminal windows:

      - __Learning_Terminal__ : learning manager terminal (in development)
      - __RC__ : Remote-control test and configuration terminal (command line : __cypilot_rc__)

   - Web browser:

      - __SignalK__ : SignalK
      - __WebUI__ : Autopilot control

2- Using Web UI:
----------------
Run __Autopilot Web UI__ from Raspberry pi Menu : __AutoPilot > Web UI__

When the UI or the Web UI is started, if no active server is detected, the Autopilot server is automatically launched, and it is closed on UI termination.
When the Web UI is started, a local Chromium Web Browser is launched in kiosk mode, and the Autopilot can be controled from any Wifi browser at address __http://cysbox-4:8000__
The Remote Control device can be used to control the Autopilot as soon as the Autopilot server is running.

Using command line:
===================

1- Running Autopilot servers (only one executes at a time)
----------------------------------------------------------

These server scripts can be run as tests:

__cypilot__             -- run the complete autopilot server : main pilot processes, sensors,
                       servo communication, remote control receiver, ...
                       The debug trace is displayed on the console windows.
                       * useful for testing the complete Autopilot server


Instead of running the complete autopilot these scripts provide a server with specific functionality:

__cypilot_boatimu__     -- run imu specific to boat motions
                       * useful for testing the imu (gyros) or even just reading gyros
                      
__cypilot_sensors__     -- convert and multiplex nmea0183 data
                       reads nmea0183 from serial ports or from tcp connections, and multiplexes
                       the output to tcp port 20220 by default
                       * convert and multiplex nmea0183 data

__cypilot_servo__       -- use to test or verify a working motor controller is detected,
                       * can be used to control the servo

2- Running Autopilot clients (run as many of these to connect to a server):
---------------------------------------------------------------------------

__autopilot__           -- Raspberry PI GUI to command autopilot (if not active, Autopilot server is launched)

__autopilot_web__       -- Autopilot Web UI (Chromium started in kiosk mode, and if not active, Autopilot server is launched)

__cypilot_calibration__ -- run Autopilot calibration dialog (IMU alignment, rudder calibration, settings)

__cypilot_config__      -- allow simple access to Autopilot current data

3- Test and configuration scripts
---------------------------------

__cypilot_version__     -- display software version

__cypilot_bno085__      -- test and configure BNO085 IMU

__cypilot_ble__         -- test and configure Calypso Anemometer


            

Raw data

            {
    "_id": null,
    "home_page": "https://cybele-sailing.com",
    "name": "cypilot",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "sailing,autopilot,raspberry,cysbox,cyspwr",
    "author": "CYS",
    "author_email": "cf@cybele-sailing.com",
    "download_url": "https://files.pythonhosted.org/packages/3d/36/c529287fa289044cc4aebe32f82dc3214861d2f46a9e4bf3044dd73d8216/cypilot-1.0.9.tar.gz",
    "platform": null,
    "description": "# cypilot\n\nThis is a much modified version of the original pypilot software created by Sean D'Epagnier\nunder the terms of the GNU General Public License as published by the Free Software Foundation\n(version 3 of the License or any later version)\n\n(C) 2020-2023 Cybele Services (cf@cybele-sailing.com)\n\nDesigned for:\n\n   - Support of CysBOX/CysPWR dedicated hardened hardware and CysRC remote control unit\n   (see doc/Img and https://cybele-sailing.com)\n\n   - Support of latest IMU devices with built-in fusion (RTIMULib2 is no longer used) : BNO085/BNO086 from HillCrest Labs is recommended\n   (use BNO08X with HillCrest labs/CEVA firmware, original Bosch BNO055 no longer supported)\n\n   - New specific pilot algorithms with auto-tune, auto-learning, ...\n\n   - QT Dialogs\n\n   - ...\n\nWork in progress, to test this software:\n\n   - install software as described hereafter\n\n   - run autopilot UI using the __ApControl__ menu or desktop shorcut, or invoking \"autopilot\" or \"autopilot_web\" from command line\n      This will automatically launch an autopilot server and the __ApControl__ UI.\n      Note that the Autopilot server is now launched at startup: when it is running, click on black triangle down icon in the taskbar to open the trace window, or to hide/stop it.\n\n   - optionally run a client in another terminal window (\"cypilot_calibration\",\"cypilot_client\",...)\n\n   See \"Running Autopilot\" hereafter for details.\n\n\nHow to Install the cypilot package:\n==================================\n\nThis is the basic installation for Autopilot standard user.\n\n1) install package\n   ---------------\n\nWhile pip alone is sufficient to install from pre-built binary archives, up to date copies of the setuptools and wheel projects are useful to ensure you can also install from source archives:\n\n__sudo python3 -m pip install --upgrade pip setuptools wheel__\n\nInstall __cypilot__ from wheel file:\n\n__sudo pip3 install cypilot-1.0.0-cp39-cp39-linux_aarch64.whl__\n\nor, install from pypi the latest officially published release:\n\n__sudo pip3 install cypilot__\n\nnote: to uninstall = __sudo pip3 uninstall cypilot==1.0.0__\n\n2) complete installation\n   ---------------------\n\nAfter package has been installed, installation must be completed using the __cypilot_init__ command:\n\n__cypilot_init__\n\nAt least, select __-1-__ from main menu, then step __-1,2,3-__ from the opened submenu, and __-4-__ to reboot.\n\nTo install __signal-k__ server, select step __-2-__ from main menu, install __signal-k dependancies__,\nthen when installing __signal-k server__, choose all default settings:\n__default location__, __update__ or start from scratch, any __vessel name__, __MMSI__ (if you have one), do not use port 80 (use __default port 3000__), __do not enable SSL__\n\n3) customize configuration to match your boat specifications\n   ---------------------------------------------------------\n\nUpdate the configuration files which are located in $HOME/.cypilot directory:\n   - NMEA, COM, ... ports assignment\n   - sensor priorities\n   - ...\n\nCalibrate IMU (mounting position, gyro, heading, ...) using __cypilot_calibration__ utility.\n\nSee detailed documentation in the doc directory.\n\nHow to Prepare system for development:\n=====================================\n\nThis is a complete suggested installation procedure for developers\n\n1) clone project from github\n   -------------------------\n\nWe advise to use our common directory structure, so to clone git to /home/pi/CysDev/cypilot\n\n2) install package\n   ---------------\n\nWhile pip alone is sufficient to install from pre-built binary archives, up to date copies of the setuptools and wheel projects are useful to ensure you can also install from source archives:\n\n__sudo python3 -m pip install --upgrade pip setuptools wheel__\n\nUse wheel distribution from the dist directory __/home/pi/CysDev/cypilot/dist__\n\n__cd /home/pi/CysDev/cypilot/dist__\n\n__sudo pip3 install *.whl__\n\n3) complete installation from development environment\n   --------------------------------------------------\n\nTo install with menu shortcuts pointing to development files, just run __python3 cypilot_init.py__ from the development environment.\nAt least, select __-1-__ from main menu, then step __-1,2,3-__ from the opened submenu, and __-4-__ to reboot.\n\n__cd /home/pi/CysDev/cypilot/src/cypilot_init__\n\n__python3 cypilot_init.py__\n\nTo build C extensions (linebuffer, servo, ...) in the development source tree:\n\n__cd /home/pi/CysDev/cypilot__\n\n__python3 setup.py build_ext__\n\nTo install __signal-k__ server, select step __-2-__ from main menu, install __signal-k dependancies__,\nthen when installing __signal-k server__, choose all default settings:\n__default location__, __update__ or start from scratch, any __vessel name__, __MMSI__ (if you have one), do not use port 80 (use __default port 3000__), __do not enable SSL__\n\nHow to Build a complete package:\n===============================\n\nThe development environment must have been installed (see \"Prepare system for development\" just before)\n\n1) install build if not already done\n   ---------------------------------\n\n__sudo pip3 install --upgrade build__\n\n2) build\n   -----\n\n__cd /home/pi/CysDev/cypilot__\n\nOptionaly clean previous build:\n\n__rm -r build__\n__rm -r dist__\n\nBuild package:\n\n__python3 -m build . --wheel__\n\nThe built package is in dist repertory : __cypilot-1.0.0-cp39-cp39-linux_aarch64.whl__\n\n\nRunning Autopilot:\n==================\n\n1- Using Raspberry PI GUI:\n--------------------------\nRun __Autopilot UI__ from Raspberry pi Menu : __AutoPilot > ApControl__\nor\nDouble-click __ApControl__ UI icon on PI desktop\n\nThe following menu shortcuts are installed (\"Cypilot menu\", desktop, and/or \"Cypilot Tools\" folder):\n\n   - Shortcuts to QT dialogs:\n\n      - __ApCalibration__ : QT calibration menu (command line : __cypilot_calibration__)\n      - __ApConfiguration__ : QT generic configuration client menu (command line : __cypilot_config__)\n      - __ApControl__ : QT main autopilot dialog menu (command line : __autopilot__)\n      - __ApRun__ : run autopilot server (command line : __cypilot__)\n      - __AutotuneWizard__ : Autotune configuration dialog (same as longpress on Autotune button in __ApControl__ dialog)\n      - __DashBoard__ : Dashboard utility\n      - __Learning_GUI__ : learning manager GUI (in development)\n\n   - Shortcuts to terminal windows:\n\n      - __Learning_Terminal__ : learning manager terminal (in development)\n      - __RC__ : Remote-control test and configuration terminal (command line : __cypilot_rc__)\n\n   - Web browser:\n\n      - __SignalK__ : SignalK\n      - __WebUI__ : Autopilot control\n\n2- Using Web UI:\n----------------\nRun __Autopilot Web UI__ from Raspberry pi Menu : __AutoPilot > Web UI__\n\nWhen the UI or the Web UI is started, if no active server is detected, the Autopilot server is automatically launched, and it is closed on UI termination.\nWhen the Web UI is started, a local Chromium Web Browser is launched in kiosk mode, and the Autopilot can be controled from any Wifi browser at address __http://cysbox-4:8000__\nThe Remote Control device can be used to control the Autopilot as soon as the Autopilot server is running.\n\nUsing command line:\n===================\n\n1- Running Autopilot servers (only one executes at a time)\n----------------------------------------------------------\n\nThese server scripts can be run as tests:\n\n__cypilot__             -- run the complete autopilot server : main pilot processes, sensors,\n                       servo communication, remote control receiver, ...\n                       The debug trace is displayed on the console windows.\n                       * useful for testing the complete Autopilot server\n\n\nInstead of running the complete autopilot these scripts provide a server with specific functionality:\n\n__cypilot_boatimu__     -- run imu specific to boat motions\n                       * useful for testing the imu (gyros) or even just reading gyros\n                      \n__cypilot_sensors__     -- convert and multiplex nmea0183 data\n                       reads nmea0183 from serial ports or from tcp connections, and multiplexes\n                       the output to tcp port 20220 by default\n                       * convert and multiplex nmea0183 data\n\n__cypilot_servo__       -- use to test or verify a working motor controller is detected,\n                       * can be used to control the servo\n\n2- Running Autopilot clients (run as many of these to connect to a server):\n---------------------------------------------------------------------------\n\n__autopilot__           -- Raspberry PI GUI to command autopilot (if not active, Autopilot server is launched)\n\n__autopilot_web__       -- Autopilot Web UI (Chromium started in kiosk mode, and if not active, Autopilot server is launched)\n\n__cypilot_calibration__ -- run Autopilot calibration dialog (IMU alignment, rudder calibration, settings)\n\n__cypilot_config__      -- allow simple access to Autopilot current data\n\n3- Test and configuration scripts\n---------------------------------\n\n__cypilot_version__     -- display software version\n\n__cypilot_bno085__      -- test and configure BNO085 IMU\n\n__cypilot_ble__         -- test and configure Calypso Anemometer\n\n",
    "bugtrack_url": null,
    "license": "GPLv3",
    "summary": "CyPilot Sailing Autopilot",
    "version": "1.0.9",
    "project_urls": {
        "Homepage": "https://cybele-sailing.com"
    },
    "split_keywords": [
        "sailing",
        "autopilot",
        "raspberry",
        "cysbox",
        "cyspwr"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3d36c529287fa289044cc4aebe32f82dc3214861d2f46a9e4bf3044dd73d8216",
                "md5": "342bb370ebf9ac2a3bf5aa45eddacbf9",
                "sha256": "bcc7307009a2cf63015099144ba8e34b317853c9a8aa2c6a465224c743ea266e"
            },
            "downloads": -1,
            "filename": "cypilot-1.0.9.tar.gz",
            "has_sig": false,
            "md5_digest": "342bb370ebf9ac2a3bf5aa45eddacbf9",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 1703311,
            "upload_time": "2023-10-24T15:19:46",
            "upload_time_iso_8601": "2023-10-24T15:19:46.412260Z",
            "url": "https://files.pythonhosted.org/packages/3d/36/c529287fa289044cc4aebe32f82dc3214861d2f46a9e4bf3044dd73d8216/cypilot-1.0.9.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-24 15:19:46",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "cypilot"
}
        
CYS
Elapsed time: 0.14059s