Skip to content

Commit 0676dfd

Browse files
authored
update introduction (#1144)
1 parent 2234abf commit 0676dfd

File tree

1 file changed

+51
-6
lines changed

1 file changed

+51
-6
lines changed

docs/modules/1_introduction/2_python_for_robotics/python_for_robotics_main.rst

+51-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
Python for Robotics
22
----------------------
33

4+
This section explains the Python itself and features for Robotics.
5+
46
Python for general-purpose programming
57
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
68

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

1012
It features as follows:
1113

@@ -17,7 +19,7 @@ It features as follows:
1719
#. Batteries included
1820
#. Interoperability for C and Fortran
1921

20-
Due to these features, Python is the most popular programming language
22+
Due to these features, Python is one of the most popular programming language
2123
for educational purposes for programming beginners.
2224

2325
Python for Scientific Computing
@@ -29,22 +31,65 @@ For example,
2931

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

34-
To address the more needs of scientific computing, many libraries have been developed.
36+
To address the more needs of scientific computing, many fundamental scientific computation libraries have been developed based on the upper features.
3537

3638
- `NumPy <https://numpy.org/>`_ is the fundamental package for scientific computing with Python.
3739
- `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.
3840
- `Matplotlib <https://matplotlib.org/>`_ is a plotting library for the Python programming language and its numerical mathematics extension NumPy.
3941
- `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.
4042
- `SymPy <https://www.sympy.org/>`_ is a Python library for symbolic mathematics.
4143

42-
And more domain-specific libraries have been developed:
44+
Also, more domain-specific libraries have been developed based on these fundamental libraries:
45+
4346
- `Scikit-learn <https://scikit-learn.org/stable/>`_ is a free software machine learning library for the Python programming language.
4447
- `Scikit-image <https://scikit-image.org/>`_ is a collection of algorithms for image processing.
48+
- `Networkx <https://networkx.org/>`_ is a Python package for the creation, manipulation, and study of the structure, dynamics, and functions of complex networks.
49+
- `SunPy <https://sunpy.org/>`_ is a community-developed free and open-source software package for solar physics.
50+
- `Astropy <https://www.astropy.org/>`_ is a community-developed free and open-source software package for astronomy.
51+
52+
Currently, Python is one of the most popular programming languages for scientific computing.
4553

4654
Python for Robotics
4755
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
4856

49-
TBD
57+
Scientific computation routine are very important for robotics.
58+
For example, matrix operation, optimization, and visualization are fundamental for robotics.
59+
60+
Python has become an increasingly popular language in robotics due to its versatility, readability, and extensive libraries. Here's a breakdown of why Python is a great choice for robotics development:
61+
62+
Advantages of Python for Robotics:
63+
64+
Simplicity and Readability: Python's syntax is clear and concise, making it easier to learn and write code. This is crucial in robotics where complex algorithms and control logic are involved.
65+
Extensive Libraries: Python boasts a rich collection of libraries specifically designed for robotics:
66+
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.
67+
OpenCV: This powerful library provides tools for computer vision tasks like image processing, object detection, and motion tracking, essential for robots that perceive and interact with their environment.
68+
NumPy and SciPy: These libraries offer efficient numerical computation and scientific tools, enabling developers to implement complex mathematical models and control algorithms.
69+
Scikit-learn: This library provides machine learning algorithms, which are increasingly important in robotics for tasks like perception, planning, and control.
70+
Cross-Platform Compatibility: Python code can run on various operating systems (Windows, macOS, Linux), providing flexibility in choosing hardware platforms for robotics projects.
71+
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.
72+
Use Cases of Python in Robotics:
73+
74+
Robot Control: Python can be used to write control algorithms for robot manipulators, mobile robots, and other robotic systems.
75+
Perception: Python, combined with libraries like OpenCV, enables robots to process sensor data (camera images, lidar data) to understand their surroundings.
76+
Path Planning: Python algorithms can be used to plan collision-free paths for robots to navigate in complex environments.
77+
Machine Learning: Python libraries like Scikit-learn empower robots to learn from data and improve their performance in tasks like object recognition and manipulation.
78+
Simulation: Python can be used to create simulated environments for testing and developing robot algorithms before deploying them on real hardware.
79+
Examples of Python in Robotics:
80+
81+
Autonomous Navigation: Python is used in self-driving cars and other autonomous vehicles for tasks like perception, localization, and path planning.
82+
Industrial Robotics: Python is employed in manufacturing for robot control, quality inspection, and automation.
83+
Service Robotics: Python powers robots that perform tasks like cleaning, delivery, and customer service in various environments.
84+
Research and Education: Python is a popular choice in robotics research and education due to its ease of use and versatility.
85+
Getting Started with Python in Robotics:
86+
87+
Learn Python Basics: Familiarize yourself with Python syntax, data structures, and programming concepts.
88+
Explore Robotics Libraries: Dive into libraries like ROS, OpenCV, and others relevant to your robotics interests.
89+
Practice with Projects: Start with small projects to gain hands-on experience, gradually increasing complexity.
90+
Join the Community: Engage with the robotics community through online forums, workshops, and conferences to learn from others and share your knowledge.
91+
In conclusion, Python's simplicity, extensive libraries, and strong community support make it an ideal language for robotics development. Whether you're a beginner or an experienced programmer, Python offers the tools and resources you need to build innovative and capable robots.
92+
93+
Python is used for this `PythonRobotics` project because of the above features
94+
to achieve the purpose of this project described in the :ref:`What is PythonRobotics?`.
5095

0 commit comments

Comments
 (0)