Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,50 @@
Python for Robotics
----------------------

Python for general-purpose programming
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

`Python <https://www.python.org/>`_ is an general-purpose programming language developed by
`Guido van Rossum <https://en.wikipedia.org/wiki/Guido_van_Rossum>`_ in the late 1980s.

It features as follows:

#. High-level
#. Interpreted
#. Dynamic type system (also type annotation is supported)
#. Emphasizes code readability
#. Rapid prototyping
#. Batteries included
#. Interoperability for C and Fortran

Due to these features, Python is the most popular programming language
for educational purposes for programming beginners.

Python for Scientific Computing
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Python itself was not designed for scientific computing.
However, scientists quickly recognized its strengths.
For example,

#. High-level and interpreted features enable scientists to focus on their problems without dealing with low-level programming tasks like memory management.
#. Code readability, rapid prototyping, and batteries included features enables scientists who are not professional programmers, to solve their problems easily.
#. The interoperability to wrap C and Fortran libraries enables scientists to access already existed powerful scientific computing libraries.

To address the more needs of scientific computing, many libraries have been developed.

- `NumPy <https://numpy.org/>`_ is the fundamental package for scientific computing with Python.
- `SciPy <https://www.scipy.org/>`_ is a library that builds on NumPy and provides a large number of functions that operate on NumPy arrays and are useful for different types of scientific and engineering applications.
- `Matplotlib <https://matplotlib.org/>`_ is a plotting library for the Python programming language and its numerical mathematics extension NumPy.
- `Pandas <https://pandas.pydata.org/>`_ is a fast, powerful, flexible, and easy-to-use open-source data analysis and data manipulation library built on top of NumPy.
- `SymPy <https://www.sympy.org/>`_ is a Python library for symbolic mathematics.

And more domain-specific libraries have been developed:
- `Scikit-learn <https://scikit-learn.org/stable/>`_ is a free software machine learning library for the Python programming language.
- `Scikit-image <https://scikit-image.org/>`_ is a collection of algorithms for image processing.

Python for Robotics
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

TBD