Skip to content

Conversation

@Dwilliestyle
Copy link

Wrong RPLidar Executable Name

In bumperbot/src/Bumper-Bot/bumperbot_bringup/launch/real_robot.launch.py

Change line 24:

executable="rplidar_node",

To:

executable="rplidar_composition",

There was a syntax error in udev 90-bumperbot.rules file (period instead of comma).

KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0666", SYMLINK+="rplidar"
KERNEL=="ttyUSB*", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", MODE:="0666", SYMLINK+="arduino"
SUBSYSTEM=="tty", GROUP="dialout", MODE="0660"

Note: The second line had a period (.) instead of comma (,) after GROUP="plugdev" which broke the rules.

Right Motor Not Moving (Critical Timing Issue)
Symptoms:

  • Left wheel moves normally
  • Right wheel doesn't move or moves intermittently
  • Controller shows overrun warnings:

This is what showed up during the run...
[WARN] [controller_manager]: Overrun might occur, Total time : 22226.370 us (Expected < 10000.000 us) --> Read time : 22099.427 us
[WARN] [controller_manager]: Overrun detected! The controller manager missed its desired rate of 100 Hz.

Arduino was sending encoder data at 10 Hz (every 100ms), but ROS2 controller expected data at 100 Hz (every 10ms). This caused massive timing delays in the hardware interface read() function, making motor control unreliable.

Find this line:

const unsigned long interval = 100;

Change to:

const unsigned long interval = 10;  // Send every 10ms = 100 Hz

Re-upload the modified code to the Arduino Nano.

This was the KEY fix - without matching the Arduino update rate to the controller rate, motor control was completely unreliable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant