Romi Robot Arm Project Code

I assembled the Romi Robot Arm Kit with a Romi 32u4 board and a Raspberry Pi 4b. I used Cursor to help me build code for both the Romi and the Pi and put it in a public GitHub repository here: GitHub - jacknvegas/Romi_Project: Romi robot with arm/gripper · GitHub

The code on the Pi includes a small web page that allows you to control the robot via wifi. It gives you control of the wheels and arm so that you can pick up objects and lift them. It works pretty well, but there is still some jitter in the arm even when it is at rest. If anyone wants to take a look or try out my code, I would be happy to give you access to the repository to help me make this better.



Nice project! The arm jitter may come from repeatedly sending identical servo commands or from power-supply noise. Try updating the servos only when the target position changes, add a small deadband, and power them from a separate regulated supply with a common ground.

Hello.

That is a really cool project! Thank you for sharing!

As far as the jitter, could you clarify how you are powering the servos? If you are powering them from the 5V output on the Romi 32U4 Contorl Board, please note that it is not really powerful enough to handle the load from all 3 servos (especially when under load) and could be the source of the jitter you’re describing. A more robust way to power the servos would be power them from a dedicated 6V regulator such as the D24V22F6 or D30V30F6.

I do not expect this to be an issue when using the Arduino Servo library.

Brandon

Thanks for your respnses. I am using the Dvr regulator and it measures 6V when turned on. My grandson shot video yesterday so we will try to send it.

All power comes from the six AA batteries on Romi. I use a Pololu Dvr to maintain 6V for the 3 servos. In general I only operate one servo at a time.

We haven’t stopped the vibration of the arm but we are still working on it. Thanks for the suggestions so far.

If you haven’t done so already, I recommend trying one servo at a time (disconnecting the others) and seeing if the problem persists. Also, if you have access to an oscilloscope, you could try monitoring the servo power while the system is running.

Brandon