Metadata-Version: 2.0
Name: pygecko
Version: 0.5.2
Summary: A python robotic framework and tools
Home-page: https://github.com/walchko/pygecko
Author: Kevin Walchko
Author-email: kevin.walchko@outlook.com
License: MIT
Keywords: framework,robotic,robot,vision,ros,distributed
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 2 :: Only
Classifier: Operating System :: Unix
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: POSIX
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Scientific/Engineering :: Image Recognition
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Dist: numdifftools
Requires-Dist: numpy
Requires-Dist: opencvutils
Requires-Dist: pyrk
Requires-Dist: pyserial
Requires-Dist: pyyaml
Requires-Dist: pyzmq
Requires-Dist: quaternions
Requires-Dist: simplejson
Requires-Dist: wit
Requires-Dist: zmq

pyGecko
============================

.. image:: https://github.com/walchko/pygecko/raw/master/pics/gecko.jpg
	:align: center
	:width: 200 px


.. image:: https://img.shields.io/pypi/v/pygecko.svg
	:target: https://github.com/walchko/pygecko
.. image:: https://img.shields.io/pypi/l/pygecko.svg
	:target: https://github.com/walchko/pygecko
.. image:: https://travis-ci.org/walchko/pygecko.svg?branch=master
	:target: https://travis-ci.org/walchko/pygecko
.. image:: https://api.codacy.com/project/badge/Grade/7e526b9907754837a15beff59d393e10
	:target: https://www.codacy.com/app/kevin-walchko/pygecko?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=walchko/pygecko&amp;utm_campaign=Badge_Grade
.. image:: https://requires.io/github/walchko/pygecko/requirements.svg?branch=master
	:target: https://requires.io/github/walchko/pygecko/requirements/?branch=master
	:alt: Requirements Status

My robot software.

* Doesn't use `ROS <http://ros.org>`_, ROS is a pain to install and maintain on OSX and various linux systems
	* Uses some of the same ideas, but not RPC-XML
* Uses `Zero MQ <http://http://zeromq.org/>`_ instead of ``roscore``
* Uses OpenCV to process on-board or stream video off-board to remote
* All of this runs on `Raspberry Pi3 <http://www.raspberrypi.org>`_

**Note:** This re-write is still very early and not fully running yet, just parts.

Install
-----------

Use ``brew`` or ``apt-get`` to install:

* zeromq
* opencv 3.x
* [optional] SDL 2.0 for PS4 joystick control

pip
~~~~~

::

	pip install pygecko

Development
~~~~~~~~~~~~~

::

	git clone https://github.com/walchko/pygecko
	cd pygecko
	pip install -e .


Layout
------------

pyGecko **still in development**

* servers: main nodes

	* Speech server
	* Navigation server
	* Vision processing server
	* VideoOdometry server

* tools: command line programs

	* Topic reader/creator
	* bag play/record
	* image viewer
	* mjpeg streamer
	* keyboard

* lib: mostly classes

	* bag
	* camera calibrator
	* chatbot
	* file storage
	* messages
	* microphone
	* zmq

Tools
---------

This directory contains several tools for the robot:

==================== ======= ================
Executable           Stable  Description
==================== ======= ================
camera_calibrate.py  Y       performs camera calibration using either a chessboard or asymmetric circle target. Target patterns are in the `patterns` folder.
topic.py             N       send various commands to the robot [work in progress]
image_view           Y       subscribe to image messages and display them for debugging
mjpeg-server         Y       create a web server which serves up an mjpeg stream from a camera. Any web browser on any device can see this stream (easier than image_view)
video.py             Y       capture images or a video clip from a camera
webserver.py         N       serve up a web page containing debugging and status info for the robot
bag_play/record      Y       saves messages to a file so they can be replayed off-line later
twist_keyboard       Y       simple keyboard interface to send twist messages to a robot
==================== ======= ================

**Note:** Please take stable with a grain of salt ... all of this is still in major development.

**Note:** There is some duplication between these, and it will eventually be sorted out.


ToDo
-----

* fix speech ... not sure best way to do this
* better modularity for various robots ... not sure how to do this
	* multiple robots use same/similar software ... not sure how to best divide things up
* ``mjpeg_server``
	* only handles one connection at a time ... make threaded?
	* sometimes the video stream is slow to load, but then it works fine
	* handle client disconnect (broken pipe - 32) better
* ``opencvutils`` - replacing ``lib/Camera.py`` and move calibration stuff to it
	* these are good capabilities that can be used beyond just this library, make a stand alone library/tool
* ``simplehtml`` - use for dynamic webpages
* ``quaternions`` - use/update
* implement a simple dynamic html server that takes json data in and produces webpages of diagnostic/status info

History
-----------

pyGecko comes from my previous robotics projects that I have been working
on for years.

Change Log
-------------

========== ======= =============================
2016-12-26 0.5.0   refactor
2016-10-09 0.4.1   published to PyPi
2010-03-10 0.0.1   init
========== ======= =============================


