Skip to main content


Free and Open Source Simple Software and Interface for Your Robot DIY Robot Arm

Easy to Use Interface

Powerful User Interface that allows you to control your robot arm with just a few clicks.

Controller Library

There is space for growth, first learn the GUI and then use the controller library to control your robot arm from your own code.

Focus on What Matters

Powered by Docker, RiBot allows you to focus on your robot arm and not the infrastructure.

Easy to use Web Interface

The web interface allows you to control the robot arm from any device with a web browser. The interface is designed to be easy to use and understand regardless of your experience level.

General Page

Python Development Library

The python library allows you to control the robot arm from your own python scripts. The library is designed to be easy to use and understand, perfect for beginners and experts alike.

from ribot.control.arm_kinematics import ArmParameters, ArmPose
from ribot.controller import ArmController, Settings

if __name__ == "__main__":
# Arm parameters (Physical dimensions of the arm)
arm_params: ArmParameters = ArmParameters()
arm_params.a2x = 0
arm_params.a2z = 172.48
arm_params.a3z = 173.5
arm_params.a4z = 0
arm_params.a4x = 126.2
arm_params.a5x = 64.1
arm_params.a6x = 169

controller = ArmController(arm_parameters=arm_params)
controller.start(websocket_server=False, wait=True)

controller.set_setting_joints(Settings.STEPS_PER_REV_MOTOR_AXIS, 400)

# Move to a position
position = ArmPose(x=320, y=0, z=250, pitch=0, roll=0, yaw=0)

# Move to angles (rads)
angles = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0]

# Move the tool (rads)

print("Homed:", controller.is_homed)