Spaces:
Running
Running
/** | |
* lerobot.js CLI | |
* | |
* Provides command-line interface for lerobot functionality | |
* Maintains compatibility with Python lerobot command structure | |
*/ | |
import { findPort } from "../lerobot/node/find_port.js"; | |
import { main as calibrateMain } from "../lerobot/node/calibrate.js"; | |
import { main as teleoperateMain } from "../lerobot/node/teleoperate.js"; | |
/** | |
* Show usage information | |
*/ | |
function showUsage() { | |
console.log("Usage: lerobot <command>"); | |
console.log(""); | |
console.log("Commands:"); | |
console.log( | |
" find-port Find the USB port associated with your MotorsBus" | |
); | |
console.log(" calibrate Recalibrate your device (robot or teleoperator)"); | |
console.log(" teleoperate Control a robot using keyboard input"); | |
console.log(""); | |
console.log("Examples:"); | |
console.log(" lerobot find-port"); | |
console.log( | |
" lerobot calibrate --robot.type=so100_follower --robot.port=COM4 --robot.id=my_follower_arm" | |
); | |
console.log( | |
" lerobot teleoperate --robot.type=so100_follower --robot.port=COM4 --teleop.type=keyboard" | |
); | |
console.log(""); | |
} | |
/** | |
* Main CLI function | |
*/ | |
async function main() { | |
const args = process.argv.slice(2); | |
if (args.length === 0) { | |
showUsage(); | |
process.exit(1); | |
} | |
const command = args[0]; | |
try { | |
switch (command) { | |
case "find-port": | |
await findPort(); | |
break; | |
case "calibrate": | |
// Pass remaining arguments to calibrate command | |
const calibrateArgs = args.slice(1); | |
await calibrateMain(calibrateArgs); | |
break; | |
case "teleoperate": | |
// Pass remaining arguments to teleoperate command | |
const teleoperateArgs = args.slice(1); | |
await teleoperateMain(teleoperateArgs); | |
break; | |
case "help": | |
case "--help": | |
case "-h": | |
showUsage(); | |
break; | |
default: | |
console.error(`Unknown command: ${command}`); | |
showUsage(); | |
process.exit(1); | |
} | |
} catch (error) { | |
console.error("Error:", error instanceof Error ? error.message : error); | |
process.exit(1); | |
} | |
} | |
// Run the CLI | |
main(); | |