Skip to content

Idein/actfw-jetson

Repository files navigation

actfw-jetson

actfw's components for Jetson series. actfw is a framework for Actcast Application written in Python.

Installation

sudo apt-get update
sudo apt-get install -y python3-pip python3-pil 

# Install GStreamer dependencies (some components in actfw-jetson uses GStreamer in implementation)
sudo apt-get install -y libgstreamer1.0-dev libgirepository1.0-dev ibgstreamer-plugins-base1.0-dev libglib2.0-dev libcairo2-dev

pip3 install actfw-jetson

Document

Usage

See actfw-core for basic usage.

Since actfw-jetson uses GStreamer to implement some components, an application using actfw-jetson may have to initialize GStreamer library before using actfw-jetson's components.

if __name__ == '__main__':
    import gi
    gi.require_version('Gst', '1.0')
    from gi.repository import Gst
    Gst.init(None)

    main()

actfw-jetson provides:

Example

  • example/hello_jetson : The simplest application example for Jetson
    • Use HDMI display as 1280x720 area
    • Generate 1280x720 single-colored image
    • Draw "Hello, Actcast!" text
    • Display it as 1280x720 image
    • Notice message for each frame
    • Support application heartbeat
    • Support "Take Photo" command
    • Depends: fonts-dejavu-core

Development Guide

Installation of dev requirements

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python -
poetry install

Running tests

poetry run nose2 -v

Running examples

hello_jetson

Displays a red rectangle and greeting text on it on HDMI display.

Run on a Jetson Nano connected to HDMI display:

apt-get install fonts-dejavu-core
poetry run python example/hello_jetson

camera_display

Displays camera input on HDMI display.

Run on a Jetson Nano with CSI camera and HDMI display:

poetry run python example/camera_display

Releasing package & API doc

CI will automatically do. Follow the following branch/tag rules.

  1. Make changes for next version in master branch (via pull-requests).
  2. Update version field in pyproject.toml with new version in master branch.
  3. Create GitHub release from master branch's HEAD.
    1. Draft a new release.
    2. Create new tag named release-<New version> (e.g. release-1.4.0) from Choose a tag pull down menu.
    3. Write title and description.
    4. Publish release.
  4. Then CI will build/upload package to PyPI & API doc to GitHub Pages.