Flow Base is I2RT's omnidirectional holonomic mobile platform. Designed to pair with YAM arms, it enables precise whole-body mobile manipulation for tasks that demand exact positioning and free orientation.
"It likes to move it move it" — precise, omnidirectional control for tasks where positioning and stability are critical.
- Holonomic drive — simultaneous XY translation and rotation with no kinematic constraints
- On-board Raspberry Pi — pre-configured with i2rt SDK; SSH-accessible over Wi-Fi or Ethernet
- CAN bus motor control — same DM-series protocol as YAM arms
- Remote controller — joystick remote included for manual operation
- API control — full network Python API via
FlowBaseClient - Odometry — wheel odometry with reset; external sensor integration supported
- Safety — E-stop, velocity timeout (0.25 s), remote override
| Parameter | Value |
|---|---|
| Drive | Holonomic (4-wheel) |
| Communication (external) | Ethernet (static IP 172.6.2.20) / Wi-Fi |
| Communication (motors) | CAN bus |
| On-board computer | Raspberry Pi |
| Power | Internal battery |
| SSH credentials | i2rt / root |
| API port | 11323 |
| Velocity timeout | 0.25 s |
| Input | Function |
|---|---|
| Left joystick | XY translation |
| Right joystick X | Rotation (yaw) |
| Right joystick Y | Linear rail lift (if equipped) |
| Left1 | Reset odometry |
| Mode | Toggle local ↔ global frame |
| Left2 | Override API commands (safety) |
Follow the unboxing guide. Ensure:
- Battery is connected and charged
- E-stop is not pressed
- CAN selector switch is in the UP position
# Wired (Ethernet, static IP)
ssh i2rt@172.6.2.20
# Or find the Pi on your LAN after Wi-Fi setup
ssh i2rt@<pi-ip>
# Password: rootpython i2rt/flow_base/flow_base_controller.pyfrom i2rt.flow_base.flow_base_controller import Vehicle
import time
vehicle = Vehicle()
vehicle.start_control()
# Move forward at 0.1 m/s for 1 second
start = time.time()
while time.time() - start < 1.0:
vehicle.set_target_velocity((0.1, 0.0, 0.0), frame="local")The base supports two control frames toggled with the Mode button on the remote:
| Mode | Behaviour |
|---|---|
| Local | XY motion is relative to the base's current heading |
| Global | XY motion is relative to the world frame (headless mode) |
::: warning Odometry drift Wheel odometry accumulates error, especially during aggressive movements. For precise mobile manipulation, integrate a visual odometry sensor (RealSense T265, ZED Camera). Press Left1 to reset odometry at any time. :::
from i2rt.flow_base.flow_base_client import FlowBaseClient
client = FlowBaseClient(host="172.6.2.20")
# Read wheel odometry
odom = client.get_odometry()
# {'translation': array([x, y]), 'rotation': array([theta])}
# Reset odometry
client.reset_odometry()
# Command velocity [x, y, theta] in m/s and rad/s
client.set_target_velocity([0.1, 0.0, 0.0], frame="local")client = FlowBaseClient(host="172.6.2.20", with_linear_rail=True)
# Get rail state (position, velocity, limit switches)
state = client.get_linear_rail_state()
# Set rail velocity (rad/s)
client.set_linear_rail_velocity(0.5)
# Combined base + rail command [x, y, theta, rail_vel]
client.set_target_velocity([0.1, 0.0, 0.0, 0.2], frame="local")::: tip Linear rail safety
The rail homes to the lower limit on init and has hardware limit switches. Set velocity to 0.0 to stop — do not control the brake directly. Commands time out after 0.25 s of inactivity.
:::
To bypass the on-board Pi and control the base from an external computer:
- Connect your CAN adapter to the external CAN connector
- Set the CAN selector switch to the DOWN position
- Clone the i2rt repo on your external machine and control via CAN directly
| Symptom | Fix |
|---|---|
| Remote unresponsive | Toggle remote off and on to wake from sleep |
| Slow boot | Normal — screen firmware adds delay, SSH is available quickly |
| Inaccurate odometry | Expected with wheel odometry; use external visual sensor for precision |
| Linear rail not homing | Check GPIO connections and limit switches |
| Linear rail stuck at limit | Run get_linear_rail_state() to check switch status |
- Linear Bot — Flow Base + linear rail lift
- Flow Base API
- Hardware Setup