Skip to content
Merged
Show file tree
Hide file tree
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
37 changes: 28 additions & 9 deletions docs/modules/0_getting_started/3_how_to_contribute_main.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,30 @@ There are several ways to contribute to this project as below:
#. `Adding missed documentations for existing examples`_
#. `Supporting this project`_

Before contributing
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Please check following items before contributing:

Understanding this project
---------------------------

Please check this :ref:`What is PythonRobotics?` section and this paper
`PythonRobotics: a Python code collection of robotics algorithms`_
to understand the philosophies of this project.

.. _`PythonRobotics: a Python code collection of robotics algorithms`: https://arxiv.org/abs/1808.10703

Check your Python version.
---------------------------

We only accept a PR for Python 3.12.x or higher.

We will not accept a PR for Python 2.x.

.. _`Adding a new algorithm example`:

Adding a new algorithm example
1. Adding a new algorithm example
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This is a step by step manual to add a new algorithm example.
Expand Down Expand Up @@ -112,8 +132,8 @@ Note that this is my hobby project; I appreciate your patience during the review

.. _`Reporting and fixing a defect`:

Reporting and fixing a defect
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2. Reporting and fixing a defect
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Reporting and fixing a defect is also great contribution.

Expand All @@ -136,8 +156,8 @@ This doc `submit a pull request`_ can be helpful to submit a pull request.

.. _`Adding missed documentations for existing examples`:

Adding missed documentations for existing examples
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3. Adding missed documentations for existing examples
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Adding the missed documentations for existing examples is also great contribution.

Expand All @@ -150,8 +170,8 @@ This doc `how to write doc`_ can be helpful to write documents.

.. _`Supporting this project`:

Supporting this project
^^^^^^^^^^^^^^^^^^^^^^^^
4. Supporting this project
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Supporting this project financially is also a great contribution!!.

Expand All @@ -165,8 +185,7 @@ If you or your company would like to support this project, please consider:

If you would like to support us in some other way, please contact with creating an issue.

Current Major Sponsors
-----------------------
Current Major Sponsors:

#. `JetBrains`_ : They are providing a free license of their IDEs for this OSS development.
#. `1Password`_ : They are providing a free license of their 1Password team license for this OSS project.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
Python for Robotics
----------------------

Python is used for this `PythonRobotics` project because of the above features
to achieve the purpose of this project described in the :ref:`What is PythonRobotics?`.
This section explains the Python itself and features for Robotics.

Python for general-purpose programming
Expand Down Expand Up @@ -76,7 +78,27 @@ For example:

ROS supports Python
~~~~~~~~~~~~~~~~~~~~~~~~~~~
ROS (Robot Operating System): ROS, a widely used framework for robotics development, has strong Python support (rospy). This allows developers to easily create nodes, manage communication between different parts of a robot system, and utilize various ROS tools.
`ROS`_ (Robot Operating System) is an open-source and widely used framework for robotics development.
It is designed to help developping complicated robotic applications.
ROS provides essential tools, libraries, and drivers to simplify robot programming and integration.

Key Features of ROS:

- Modular Architecture – Uses a node-based system where different components (nodes) communicate via messages.
- Hardware Abstraction – Supports various robots, sensors, and actuators, making development more flexible.
- Powerful Communication System – Uses topics, services, and actions for efficient data exchange between components.
- Rich Ecosystem – Offers many pre-built packages for navigation, perception, and manipulation.
- Multi-language Support – Primarily uses Python and C++, but also supports other languages.
- Simulation & Visualization – Tools like Gazebo (for simulation) and RViz (for visualization) aid in development and testing.
- Scalability & Community Support – Widely used in academia and industry, with a large open-source community.

ROS has strong Python support (`rospy`_ for ROS1 and `rclpy`_ for ROS2).
This allows developers to easily create nodes, manage communication between
different parts of a robot system, and utilize various ROS tools.

.. _`ROS`: https://www.ros.org/
.. _`rospy`: http://wiki.ros.org/rospy
.. _`rclpy`: https://docs.ros.org/en/jazzy/Tutorials/Beginner-Client-Libraries/Writing-A-Simple-Py-Publisher-And-Subscriber.html

Cross-Platform Compatibility
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand All @@ -85,8 +107,3 @@ Python code can run on various operating systems (Windows, macOS, Linux), provid
Large Community and Support
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Python has a vast and active community, offering ample resources, tutorials, and support for developers. This is invaluable when tackling challenges in robotics development.


Python is used for this `PythonRobotics` project because of the above features
to achieve the purpose of this project described in the :ref:`What is PythonRobotics?`.