Skip to content

Commit

Permalink
pybricks.robotics.DriveBase: Add clarifying comments.
Browse files Browse the repository at this point in the history
  • Loading branch information
laurensvalk committed Dec 6, 2022
1 parent 6640fba commit 4da4ce8
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 1 deletion.
7 changes: 7 additions & 0 deletions doc/main/robotics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,20 @@

.. automethod:: pybricks.robotics.DriveBase.stalled

.. _measuring:

.. rubric:: Measuring and validating the robot dimensions

As a first estimate, you can measure the ``wheel_diameter`` and the
``axle_track`` with a ruler. Because it is hard to see where the wheels
effectively touch the ground, you can estimate the ``axle_track`` as
the distance between the midpoint of the wheels.

If you don't have a ruler, you can use a LEGO beam to measure. The
center-to-center distance of the holes is 8 mm. For some tyres, the
diameter is printed on the side. For example, 62.4 x 20 means that the
diameter is 62.4mm and that the width is 20 mm.

In practice, most wheels compress slightly under the weight of your robot.
To verify, make your robot drive 1000 mm using ``my_robot.straight(1000)``
and measure how far it really traveled. Compensate as follows:
Expand Down
10 changes: 9 additions & 1 deletion src/pybricks/robotics.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,12 @@ class DriveBase:
**Positive** angles and turn rates mean turning **right**.
**Negative** means **left**. So when viewed from the top,
positive means clockwise and negative means counterclockwise.
positive means clockwise and negative means counterclockwise. If desired,
you can flip this convention by reversing the ``left_motor`` and
``right_motor`` when you initialize this class.
See the `measuring`_ section for tips to measure and adjust the diameter
and axle track values.
"""

distance_control = _common.Control()
Expand Down Expand Up @@ -139,6 +143,10 @@ def settings(self, *args):
If you give no arguments, this returns the current values as a tuple.
The default values are automatically configured based on your wheel
diameter and axle track. They are selected such that your robot
drives at about 40% of its maximum speed.
Arguments:
straight_speed (Number, mm/s): Straight-line speed of the robot.
straight_acceleration (Number, mm/s²): Straight-line
Expand Down

0 comments on commit 4da4ce8

Please sign in to comment.