Presets
Home
Reach
Wave
Fold
Pick
Place
Environment0 objects
Mode Simulate
FPS 60
Objects 0
Episode 0
Reward —
End Effector
X 0.00
Y 0.00
Z 0.00
Drag · Scroll · Right-drag pan
Algorithm
Q-Learning
DQN
Policy Grad
Task
Pick Object
Reach Target
Patrol
Training Progress
▶ Train
■ Stop
Reset
▶ Policy
Reward Shaping
Pick success+10
Proximity bonus+dist
Step penalty−0.1
Drop penalty−2
ARMCTL 3.1 Documentation
Quick start: Console tab to script the arm, RL Train to let it learn automatically.
Arm API
| Method | Description |
arm.setJoint(n, deg) | Move joint 1–6 |
arm.setGripper(s) | 'open' or 'close' |
arm.preset(name) | home · reach · wave · pick · place |
Chassis API
| Method | Description |
chassis.move(dir, dist) | 'fwd' 'bwd' 'lt' 'rt' |
chassis.rotate(deg) | Rotate by degrees |
Environment API
| Method | Description |
env.add(type, opts) | Add object (x, z, color) |
env.clear() | Remove all objects |
RL API
| Method | Description |
rl.train(config) | Start Q-learning training |
rl.stop() | Stop training |
rl.runPolicy() | Execute learned policy |
Example — Pick & Place
async function pick() {
arm.preset('home');
await sleep(500);
arm.setJoint(1, 60);
arm.setJoint(2, -50);
arm.setJoint(3, 80);
await sleep(600);
arm.setGripper('close');
await sleep(400);
arm.setJoint(2, -10);
await sleep(400);
arm.setJoint(1, -60);
await sleep(500);
arm.setGripper('open');
}
pick();
Joint Limits
| Joint | Range | Motion |
| J1 Base | −180° to 180° | Yaw (Y-axis) |
| J2 Shoulder | −90° to 90° | Pitch (Z-axis) |
| J3 Elbow | −135° to 135° | Pitch (Z-axis) |
| J4 Forearm | −180° to 180° | Roll (Y-axis) |
| J5 Wrist | −90° to 90° | Pitch (Z-axis) |
| J6 Wrist | −180° to 180° | Roll (Y-axis) |
Camera
Orbit: Left-drag · Zoom: Scroll · Pan: Right-drag