Brushed DC motor
Brushed DC motor – definition
A brushed DC motor is an electric machine that converts direct-current electrical power into rotary mechanical motion through mechanical commutation. Its rotor carries windings connected to a segmented commutator. Carbon or metal-graphite brushes contact the commutator and switch the current direction in rotor windings as the shaft rotates. This switching maintains torque in a consistent rotational direction.
In mobile robotics, brushed DC motors are commonly used as traction actuators in differential-drive UGVs. A motor is usually combined with a reduction gearbox, wheel hub or coupling, incremental encoder, motor driver, and battery supply. The complete actuator assembly determines wheel speed, available tractive force, odometry resolution, and the robot’s response to velocity commands.
For a platform such as Leo Rover or Raph Rover, a brushed DC motor should be treated as part of a closed-loop drive system rather than as an isolated component. The robot requires motor drivers, encoder feedback, a kinematic model, and software that converts commanded linear and angular velocity into left and right wheel motion.
Electrical and mechanical operating principle
The behaviour of a brushed DC motor can be described by standard electromechanical equations. The applied voltage must overcome winding resistance, winding inductance, and back electromotive force. Back EMF increases with shaft speed and limits motor current at higher rotational velocity.
V = L(di/dt) + Ri + Keω
τ = Kt i
In these equations, V is motor voltage, L is armature inductance, R is armature resistance, i is motor current, Ke is the back-EMF constant, ω is angular velocity, τ is electromagnetic torque at the motor shaft, and Kt is the torque constant. In SI units, Ke and Kt have numerically equivalent values for an ideal motor model.
Motor torque is approximately proportional to current. This makes current measurement useful for detecting excessive wheel load, blocked wheels, steep terrain, or drivetrain faults. Stall current should not be treated as a normal operating current. In a simplified steady-state model, it is calculated as Istall ≈ V / R; in practice, brush contact voltage drops, temperature, and supply-voltage sag also affect it. Stall current can exceed the continuous-current capability of the motor driver, wiring, connectors, or battery.
Key parameters for UGV drive integration
A motor datasheet alone is insufficient for selecting a UGV drivetrain. The gearbox, wheel radius, robot mass, terrain, supply voltage, driver current limits, and encoder position must be evaluated together. The following parameters are relevant when integrating brushed motors into a mobile base.
| Parameter | Meaning | UGV integration relevance |
|---|---|---|
| Nominal voltage | Supply voltage specified for continuous operation. | Must match the battery and motor-driver operating range. |
| No-load speed | Motor speed with negligible shaft load. | Sets an upper bound for wheel speed after gearbox reduction during normal motor-driven operation. |
| Stall torque and stall current | Torque and current at zero shaft speed. | Used to size the driver, fuse, wiring, and battery discharge capability. |
| Gear ratio | Ratio between motor and output-shaft speed. | Trades speed for output torque and affects backlash. |
| Encoder counts per revolution | Feedback resolution at the motor or output shaft. | Determines wheel-speed estimation and odometry granularity. |
| Continuous current | Current allowed without exceeding thermal limits. | More useful than stall current for sustained field operation. |
Wheel linear velocity is derived from wheel angular velocity using v = rω, where r is effective wheel radius. For a differential-drive platform, the left and right wheel velocities are calculated from the commanded robot velocity:
vleft = v - (b × ωz / 2)
vright = v + (b × ωz / 2)
Here, v is commanded linear velocity, ωz is commanded yaw rate, and b is wheel separation. REP 103 defines the standard ROS coordinate conventions used for mobile robots, including x forward, y left, and z upward.
Brushed DC motors in ROS 2 mobile bases
ROS 2 does not directly drive a brushed DC motor. A hardware interface sends commands to a motor controller, while encoders provide measured wheel position and velocity. The motor controller may implement low-level PWM, direction control, current limiting, and PID speed control on a microcontroller.
A typical ROS 2 differential-drive integration exposes wheel joints through ros2_control. The diff_drive_controller accepts velocity commands and publishes odometry based on wheel feedback. By default, the controller accepts geometry_msgs/msg/TwistStamped messages on its command topic and publishes odometry using nav_msgs/msg/Odometry.
diff_drive_controller:
ros__parameters:
left_wheel_names: ["left_front_wheel_joint", "left_rear_wheel_joint"]
right_wheel_names: ["right_front_wheel_joint", "right_rear_wheel_joint"]
wheel_separation: 0.320
wheel_radius: 0.065
publish_rate: 50.0
odom_frame_id: odom
base_frame_id: base_link
cmd_vel_timeout: 0.5
The values above are configuration examples only. Wheel separation, wheel radius, joint names, and update rates must be set from the actual platform documentation and measured drivetrain geometry. Incorrect values produce systematic odometry errors even when encoder readings are valid.
Use on Leo Rover and Raph Rover
Leo Rover is a four-wheel, differential-drive mobile platform with an integrated Raspberry Pi compute unit and support for ROS 2. The supported ROS 2 distribution depends on the installed software image and current platform documentation. A brushed DC drivetrain on this class of platform is normally controlled through a dedicated motor controller rather than directly from Raspberry Pi GPIO pins. GPIO cannot provide motor power and should only be used for logic-level interfaces where supported by the controller design.
Leo Rover is not autonomous out of the box. For navigation, its wheel encoder odometry can be fused with IMU, LiDAR, camera, GPS, or RTK measurements using ROS 2 packages such as robot_localization and Nav2. Encoder odometry remains useful for short-term motion estimation, but it drifts because of wheel slip, uneven ground, tyre deformation, gearbox backlash, and parameter errors.
Raph Rover uses BLDC wheel modules and Ackermann steering rather than brushed DC motors, and it is intended for higher-payload applications. A larger platform can impose higher sustained torque demands during acceleration, climbing, and operation on deformable terrain. Motor-driver current limits, thermal performance, gearbox load ratings, and battery voltage sag must therefore be verified against the complete payload and terrain profile.
Limitations and maintenance considerations
Mechanical brushes are the defining feature of this motor type and also a source of wear. Brush and commutator wear can generate electrical noise, conductive dust, and changes in contact resistance. This can affect encoder signals, power integrity, and onboard sensors if wiring and grounding are poorly designed.
For UGV integration, the following practices reduce common failures:
- Use a motor driver with continuous and peak current ratings appropriate for the motor and gearbox.
- Keep motor power wiring separate from encoder, IMU, USB, and camera cables where possible.
- Use common grounding and appropriate suppression components according to the driver manufacturer’s documentation.
- Monitor battery voltage and motor current during acceleration and obstacle contact.
- Calibrate wheel radius and wheel separation using measured odometry trajectories.
Normative references and technical sources
The ROS coordinate and frame conventions relevant to mobile-base motor integration are defined in REP 103 and REP 105. ROS 2 control interfaces and controller parameters are maintained in the official ros2_control documentation.
- ROS REP 103 – Standard Units of Measure and Coordinate Conventions
- ROS REP 105 – Coordinate Frames for Mobile Platforms
- ros2_control documentation
- diff_drive_controller documentation
- Leo Rover technical documentation