From 6bc7a9439e0376cbe863464777ca3b748b74b5b8 Mon Sep 17 00:00:00 2001 From: Musab1Blaser Date: Fri, 24 Oct 2025 12:06:19 +0500 Subject: [PATCH] corrected obvious typos in text and mathematical notations as well as grammatical corrections --- .../0_getting_started/2_how_to_run_sample_codes_main.rst | 2 +- .../0_getting_started/3_how_to_contribute_main.rst | 2 +- .../10_inverted_pendulum/inverted_pendulum_main.rst | 4 ++-- docs/modules/12_appendix/Kalmanfilter_basics_main.rst | 2 +- .../behavior_tree/behavior_tree_main.rst | 4 ++-- .../2_python_for_robotics/python_for_robotics_main.rst | 2 +- .../technologies_for_robotics_main.rst | 2 +- .../histogram_filter_localization_main.rst | 2 +- .../particle_filter_localization_main.rst | 2 +- .../lidar_to_grid_map_tutorial_main.rst | 2 +- docs/modules/4_slam/FastSLAM1/FastSLAM1_main.rst | 4 ++-- docs/modules/4_slam/ekf_slam/ekf_slam_main.rst | 2 +- docs/modules/4_slam/graph_slam/graphSLAM_doc.rst | 4 ++-- .../5_path_planning/dubins_path/dubins_path_main.rst | 2 +- .../5_path_planning/elastic_bands/elastic_bands_main.rst | 2 +- .../grid_base_search/grid_base_search_main.rst | 2 +- .../reeds_shepp_path/reeds_shepp_path_main.rst | 2 +- .../5_path_planning/vrm_planner/vrm_planner_main.rst | 2 +- .../model_predictive_speed_and_steering_control_main.rst | 8 ++++---- .../move_to_a_pose/move_to_a_pose_main.rst | 2 +- .../n_joint_arm_to_point_control_main.rst | 2 +- docs/modules/7_arm_navigation/planar_two_link_ik_main.rst | 2 +- 22 files changed, 29 insertions(+), 29 deletions(-) diff --git a/docs/modules/0_getting_started/2_how_to_run_sample_codes_main.rst b/docs/modules/0_getting_started/2_how_to_run_sample_codes_main.rst index b92fc9bde0..33440bb137 100644 --- a/docs/modules/0_getting_started/2_how_to_run_sample_codes_main.rst +++ b/docs/modules/0_getting_started/2_how_to_run_sample_codes_main.rst @@ -46,7 +46,7 @@ using pip : 5. Execute python script in each directory. -For example, to run the sample code of `Extented Kalman Filter` in the +For example, to run the sample code of `Extended Kalman Filter` in the `localization` directory, execute the following command: .. code-block:: diff --git a/docs/modules/0_getting_started/3_how_to_contribute_main.rst b/docs/modules/0_getting_started/3_how_to_contribute_main.rst index 9e773e930c..f975127107 100644 --- a/docs/modules/0_getting_started/3_how_to_contribute_main.rst +++ b/docs/modules/0_getting_started/3_how_to_contribute_main.rst @@ -132,7 +132,7 @@ At first, please fix all CI errors before code review. You can check your PR doc from the CI panel. After the "ci/circleci: build_doc" CI is succeeded, -you can access you PR doc with clicking the [Details] of the "ci/circleci: build_doc artifact" CI. +you can access your PR doc with clicking the [Details] of the "ci/circleci: build_doc artifact" CI. .. image:: /_static/img/doc_ci.png diff --git a/docs/modules/10_inverted_pendulum/inverted_pendulum_main.rst b/docs/modules/10_inverted_pendulum/inverted_pendulum_main.rst index 58dc0f2e57..47ae034195 100644 --- a/docs/modules/10_inverted_pendulum/inverted_pendulum_main.rst +++ b/docs/modules/10_inverted_pendulum/inverted_pendulum_main.rst @@ -4,7 +4,7 @@ Inverted Pendulum ------------------ An inverted pendulum on a cart consists of a mass :math:`m` at the top of a pole of length :math:`l` pivoted on a -horizontally moving base as shown in the adjacent. +horizontally moving base as shown in the adjacent figure. The objective of the control system is to balance the inverted pendulum by applying a force to the cart that the pendulum is attached to. @@ -97,7 +97,7 @@ Code Link MPC control ~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The MPC controller minimize this cost function defined as: +The MPC controller minimizes this cost function defined as: .. math:: J = x^T Q x + u^T R u diff --git a/docs/modules/12_appendix/Kalmanfilter_basics_main.rst b/docs/modules/12_appendix/Kalmanfilter_basics_main.rst index a1d99d47ef..1ed5790d52 100644 --- a/docs/modules/12_appendix/Kalmanfilter_basics_main.rst +++ b/docs/modules/12_appendix/Kalmanfilter_basics_main.rst @@ -55,7 +55,7 @@ Variance, Covariance and Correlation Variance ^^^^^^^^ -Variance is the spread of the data. The mean does’nt tell much **about** +Variance is the spread of the data. The mean doesn’t tell much **about** the data. Therefore the variance tells us about the **story** about the data meaning the spread of the data. diff --git a/docs/modules/13_mission_planning/behavior_tree/behavior_tree_main.rst b/docs/modules/13_mission_planning/behavior_tree/behavior_tree_main.rst index 22849f7c54..4b0ef82c12 100644 --- a/docs/modules/13_mission_planning/behavior_tree/behavior_tree_main.rst +++ b/docs/modules/13_mission_planning/behavior_tree/behavior_tree_main.rst @@ -2,8 +2,8 @@ Behavior Tree ------------- Behavior Tree is a modular, hierarchical decision model that is widely used in robot control, and game development. -It present some similarities to hierarchical state machines with the key difference that the main building block of a behavior is a task rather than a state. -Behavior Tree have been shown to generalize several other control architectures (https://ieeexplore.ieee.org/document/7790863) +It presents some similarities to hierarchical state machines with the key difference that the main building block of a behavior is a task rather than a state. +Behavior Trees have been shown to generalize several other control architectures (https://ieeexplore.ieee.org/document/7790863) Code Link ~~~~~~~~~~~~~ diff --git a/docs/modules/1_introduction/2_python_for_robotics/python_for_robotics_main.rst b/docs/modules/1_introduction/2_python_for_robotics/python_for_robotics_main.rst index c47c122853..e3f38a55fd 100644 --- a/docs/modules/1_introduction/2_python_for_robotics/python_for_robotics_main.rst +++ b/docs/modules/1_introduction/2_python_for_robotics/python_for_robotics_main.rst @@ -1,7 +1,7 @@ Python for Robotics ---------------------- -A programing language, Python is used for this `PythonRobotics` project +A programming language, Python is used for this `PythonRobotics` project to achieve the purposes of this project described in the :ref:`What is PythonRobotics?`. This section explains the Python itself and features for science computing and robotics. diff --git a/docs/modules/1_introduction/3_technologies_for_robotics/technologies_for_robotics_main.rst b/docs/modules/1_introduction/3_technologies_for_robotics/technologies_for_robotics_main.rst index 0ed51e961b..dd3cd1d86c 100644 --- a/docs/modules/1_introduction/3_technologies_for_robotics/technologies_for_robotics_main.rst +++ b/docs/modules/1_introduction/3_technologies_for_robotics/technologies_for_robotics_main.rst @@ -3,7 +3,7 @@ Technologies for Robotics The field of robotics needs wide areas of technologies such as mechanical engineering, electrical engineering, computer science, and artificial intelligence (AI). -This project, `PythonRobotics`, only focus on computer science and artificial intelligence. +This project, `PythonRobotics`, only focuses on computer science and artificial intelligence. The technologies for robotics are categorized as following 3 categories: diff --git a/docs/modules/2_localization/histogram_filter_localization/histogram_filter_localization_main.rst b/docs/modules/2_localization/histogram_filter_localization/histogram_filter_localization_main.rst index 3a175b1316..b5697d2dd9 100644 --- a/docs/modules/2_localization/histogram_filter_localization/histogram_filter_localization_main.rst +++ b/docs/modules/2_localization/histogram_filter_localization/histogram_filter_localization_main.rst @@ -68,7 +68,7 @@ But, the probability is getting uncertain without observations: The `gaussian filter `_ -is used in the simulation for adding noize. +is used in the simulation for adding noise. Step3: Update probability by observation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/docs/modules/2_localization/particle_filter_localization/particle_filter_localization_main.rst b/docs/modules/2_localization/particle_filter_localization/particle_filter_localization_main.rst index d648d8e080..8bf22a246b 100644 --- a/docs/modules/2_localization/particle_filter_localization/particle_filter_localization_main.rst +++ b/docs/modules/2_localization/particle_filter_localization/particle_filter_localization_main.rst @@ -13,7 +13,7 @@ and the red line is estimated trajectory with PF. It is assumed that the robot can measure a distance from landmarks (RFID). -This measurements are used for PF localization. +These measurements are used for PF localization. Code Link ~~~~~~~~~~~~~ diff --git a/docs/modules/3_mapping/lidar_to_grid_map_tutorial/lidar_to_grid_map_tutorial_main.rst b/docs/modules/3_mapping/lidar_to_grid_map_tutorial/lidar_to_grid_map_tutorial_main.rst index 29f5878e48..c97d204a82 100644 --- a/docs/modules/3_mapping/lidar_to_grid_map_tutorial/lidar_to_grid_map_tutorial_main.rst +++ b/docs/modules/3_mapping/lidar_to_grid_map_tutorial/lidar_to_grid_map_tutorial_main.rst @@ -19,7 +19,7 @@ unknown (unobserved) areas, which are close to 0.5. .. figure:: grid_map_example.png In order to construct the grid map from the measurement we need to -discretise the values. But, first let’s need to ``import`` some +discretise the values. But, first we need to ``import`` some necessary packages. .. code:: ipython3 diff --git a/docs/modules/4_slam/FastSLAM1/FastSLAM1_main.rst b/docs/modules/4_slam/FastSLAM1/FastSLAM1_main.rst index b6bafa0982..296f1766de 100644 --- a/docs/modules/4_slam/FastSLAM1/FastSLAM1_main.rst +++ b/docs/modules/4_slam/FastSLAM1/FastSLAM1_main.rst @@ -112,7 +112,7 @@ will converge to the correct estimate. MAX_RANGE = 20.0 # maximum observation range M_DIST_TH = 2.0 # Threshold of Mahalanobis distance for data association. STATE_SIZE = 3 # State size [x,y,yaw] - LM_SIZE = 2 # LM srate size [x,y] + LM_SIZE = 2 # LM state size [x,y] N_PARTICLE = 100 # number of particle NTH = N_PARTICLE / 1.5 # Number of particle for re-sampling @@ -409,7 +409,7 @@ probably will die out. 3- Resampling ~~~~~~~~~~~~~ -In the reseampling steps a new set of particles are chosen from the old +In the resampling steps a new set of particles are chosen from the old set. This is done according to the weight of each particle. The figure shows 100 particles distributed uniformly between [-0.5, 0.5] diff --git a/docs/modules/4_slam/ekf_slam/ekf_slam_main.rst b/docs/modules/4_slam/ekf_slam/ekf_slam_main.rst index 3967a7ae4d..05bd636ef5 100644 --- a/docs/modules/4_slam/ekf_slam/ekf_slam_main.rst +++ b/docs/modules/4_slam/ekf_slam/ekf_slam_main.rst @@ -32,7 +32,7 @@ Introduction EKF SLAM models the SLAM problem in a single EKF where the modeled state is both the pose :math:`(x, y, \theta)` and an array of landmarks -:math:`[(x_1, y_1), (x_2, x_y), ... , (x_n, y_n)]` for :math:`n` +:math:`[(x_1, y_1), (x_2, y_2), ... , (x_n, y_n)]` for :math:`n` landmarks. The covariance between each of the positions and landmarks are also tracked. diff --git a/docs/modules/4_slam/graph_slam/graphSLAM_doc.rst b/docs/modules/4_slam/graph_slam/graphSLAM_doc.rst index 5297604809..3d329ae131 100644 --- a/docs/modules/4_slam/graph_slam/graphSLAM_doc.rst +++ b/docs/modules/4_slam/graph_slam/graphSLAM_doc.rst @@ -28,7 +28,7 @@ available that uses graph-based approaches to perform online estimation or to solve for a subset of the poses. GraphSLAM uses the motion information as well as the observations of the -environment to create least square problem that can be solved using +environment to create a least squares problem that can be solved using standard optimization techniques. Minimal Example @@ -331,7 +331,7 @@ between node 0 and 1 will be created. The equations for the error is as follows: :math:`e_{ij}^y = y_j + d_j sin(\psi_j + \theta_j) - y_i - d_i sin(\psi_i + \theta_i)` -:math:`e_{ij}^x = \psi_j + \theta_j - \psi_i - \theta_i` +:math:`e_{ij}^{\psi} = \psi_j + \theta_j - \psi_i - \theta_i` Where :math:`[x_i, y_i, \psi_i]` is the pose for node :math:`i` and similarly for node :math:`j`, :math:`d` is the measured distance at diff --git a/docs/modules/5_path_planning/dubins_path/dubins_path_main.rst b/docs/modules/5_path_planning/dubins_path/dubins_path_main.rst index 5a3d14464b..74cb757886 100644 --- a/docs/modules/5_path_planning/dubins_path/dubins_path_main.rst +++ b/docs/modules/5_path_planning/dubins_path/dubins_path_main.rst @@ -13,7 +13,7 @@ It can generates a shortest path between two 2D poses (x, y, yaw) with maximum c Generated paths consist of 3 segments of maximum curvature curves or a straight line segment. -Each segment type can is categorized by 3 type: 'Right turn (R)' , 'Left turn (L)', and 'Straight (S).' +Each segment type can be categorized by 3 types: 'Right turn (R)' , 'Left turn (L)', and 'Straight (S).' Possible path will be at least one of these six types: RSR, RSL, LSR, LSL, RLR, LRL. diff --git a/docs/modules/5_path_planning/elastic_bands/elastic_bands_main.rst b/docs/modules/5_path_planning/elastic_bands/elastic_bands_main.rst index d0109d4ec3..e37cbd4e77 100644 --- a/docs/modules/5_path_planning/elastic_bands/elastic_bands_main.rst +++ b/docs/modules/5_path_planning/elastic_bands/elastic_bands_main.rst @@ -67,7 +67,7 @@ Dynamic Path Maintenance .. math:: b_i^{\text{new}} = b_i^{\text{old}} + \alpha (f_c + f_r), - where :math:`\alpha` is a step-size parameter, which often proportional to :math:`\rho(b_i^{\text{old}})` + where :math:`\alpha` is a step-size parameter, which is often proportional to :math:`\rho(b_i^{\text{old}})` 2. **Overlap Enforcement**: - Insert new nodes if adjacent nodes are too far apart diff --git a/docs/modules/5_path_planning/grid_base_search/grid_base_search_main.rst b/docs/modules/5_path_planning/grid_base_search/grid_base_search_main.rst index e2f4d8832d..b7450107b6 100644 --- a/docs/modules/5_path_planning/grid_base_search/grid_base_search_main.rst +++ b/docs/modules/5_path_planning/grid_base_search/grid_base_search_main.rst @@ -91,7 +91,7 @@ This is a 2D grid based shortest path planning with Theta star algorithm. It offers an optimization over the A star algorithm to generate any-angle paths. Unlike A star, which always assigns the current node as the parent of the successor, Theta star checks for a line-of-sight (unblocked path) from an earlier node (typically the parent of the current node) to the successor, and directly assigns it as a parent if visible. This reduces cost by replacing staggered segments with straight lines. -Checking for line of sight involves verifying that no obstacles block the straight line between two nodes. On a grid, this means identifying all the discrete cells that the line passes through to determine if they are empty. Bresenham’s line algorithm is commonly used for this purpose. Starting from one endpoint, it incrementally steps along one axis, while considering the gradient to determine the position on the other axis. Because it relies only on integer addition and subtraction, it is both efficient and precise for grid-based visibility checks in Theta*. +Checking for line of sight involves verifying that no obstacles block the straight line between two nodes. On a grid, this means identifying all the discrete cells that the line passes through to determine if they are empty. Bresenham’s line algorithm is commonly used for this purpose. Starting from one endpoint, it incrementally steps along one axis, while considering the gradient to determine the position on the other axis. Because it relies only on integer addition and subtraction, it is both efficient and precise for grid-based visibility checks in Theta star. As a result, Theta star produces shorter, smoother paths than A star, ideal for ground or aerial robots operating in continuous environments where smoother motion enables higher acceleration and reduced travel time. diff --git a/docs/modules/5_path_planning/reeds_shepp_path/reeds_shepp_path_main.rst b/docs/modules/5_path_planning/reeds_shepp_path/reeds_shepp_path_main.rst index 4dd54d7c97..bedcfc33d8 100644 --- a/docs/modules/5_path_planning/reeds_shepp_path/reeds_shepp_path_main.rst +++ b/docs/modules/5_path_planning/reeds_shepp_path/reeds_shepp_path_main.rst @@ -17,7 +17,7 @@ Here is an overview of mathematical derivations of formulae for individual path In all the derivations below, radius of curvature of the vehicle is assumed to be of unit length and start pose is considered to be at origin. (*In code we are removing the offset due to start position and normalising the lengths before passing the values to these functions.*) -Also, (t, u, v) respresent the measure of each motion requried. Thus, in case of a turning maneuver, they represent the angle inscribed at the centre of turning circle and in case of straight maneuver, they represent the distance to be travelled. +Also, (t, u, v) represent the measure of each motion required. Thus, in case of a turning maneuver, they represent the angle inscribed at the centre of turning circle and in case of straight maneuver, they represent the distance to be travelled. 1. **Left-Straight-Left** diff --git a/docs/modules/5_path_planning/vrm_planner/vrm_planner_main.rst b/docs/modules/5_path_planning/vrm_planner/vrm_planner_main.rst index a9a41aab74..46b86123f3 100644 --- a/docs/modules/5_path_planning/vrm_planner/vrm_planner_main.rst +++ b/docs/modules/5_path_planning/vrm_planner/vrm_planner_main.rst @@ -9,7 +9,7 @@ In the animation, blue points are Voronoi points, Cyan crosses mean searched points with Dijkstra method, -The red line is the final path of Vornoi Road-Map. +The red line is the final path of Voronoi Road-Map. Code Link ~~~~~~~~~~~~~~~ diff --git a/docs/modules/6_path_tracking/model_predictive_speed_and_steering_control/model_predictive_speed_and_steering_control_main.rst b/docs/modules/6_path_tracking/model_predictive_speed_and_steering_control/model_predictive_speed_and_steering_control_main.rst index 76a6819a46..cc5a6812ca 100644 --- a/docs/modules/6_path_tracking/model_predictive_speed_and_steering_control/model_predictive_speed_and_steering_control_main.rst +++ b/docs/modules/6_path_tracking/model_predictive_speed_and_steering_control/model_predictive_speed_and_steering_control_main.rst @@ -34,17 +34,17 @@ Input vector is: .. math:: u = [a, \delta] -a: accellation, δ: steering angle +a: acceleration, δ: steering angle -The MPC cotroller minimize this cost function for path tracking: +The MPC cotroller minimizes this cost function for path tracking: .. math:: min\ Q_f(z_{T,ref}-z_{T})^2+Q\Sigma({z_{t,ref}-z_{t}})^2+R\Sigma{u_t}^2+R_d\Sigma({u_{t+1}-u_{t}})^2 -z_ref come from target path and speed. +z_ref comes from target path and speed. subject to: -- Linearlied vehicle model +- Linearized vehicle model .. math:: z_{t+1}=Az_t+Bu+C diff --git a/docs/modules/6_path_tracking/move_to_a_pose/move_to_a_pose_main.rst b/docs/modules/6_path_tracking/move_to_a_pose/move_to_a_pose_main.rst index 19bb0e4c14..b3d23ab2be 100644 --- a/docs/modules/6_path_tracking/move_to_a_pose/move_to_a_pose_main.rst +++ b/docs/modules/6_path_tracking/move_to_a_pose/move_to_a_pose_main.rst @@ -32,7 +32,7 @@ Constructor PathFinderController(Kp_rho, Kp_alpha, Kp_beta) -Constructs an instantiate of the PathFinderController for navigating a 3-DOF wheeled robot on a 2D plane. +Constructs an instance of the PathFinderController for navigating a 3-DOF wheeled robot on a 2D plane. Parameters: diff --git a/docs/modules/7_arm_navigation/n_joint_arm_to_point_control_main.rst b/docs/modules/7_arm_navigation/n_joint_arm_to_point_control_main.rst index 56900acde1..6c1db7d2a5 100644 --- a/docs/modules/7_arm_navigation/n_joint_arm_to_point_control_main.rst +++ b/docs/modules/7_arm_navigation/n_joint_arm_to_point_control_main.rst @@ -3,7 +3,7 @@ N joint arm to point control N joint arm to a point control simulation. -This is a interactive simulation. +This is an interactive simulation. You can set the goal position of the end effector with left-click on the plotting area. diff --git a/docs/modules/7_arm_navigation/planar_two_link_ik_main.rst b/docs/modules/7_arm_navigation/planar_two_link_ik_main.rst index 5b2712eb48..8d3b709e47 100644 --- a/docs/modules/7_arm_navigation/planar_two_link_ik_main.rst +++ b/docs/modules/7_arm_navigation/planar_two_link_ik_main.rst @@ -7,7 +7,7 @@ Two joint arm to point control This is two joint arm to a point control simulation. -This is a interactive simulation. +This is an interactive simulation. You can set the goal position of the end effector with left-click on the plotting area.