A cross-platform simulator for the iconic Mitsubishi RM-501 Movemaster II robot arm, popular in the 1980s for industrial assembly, handling, and inspection tasks.
- Five-axis robot arm simulation
- Interactive OpenGL GUI
- Real-time keyboard, gamepad, and 3D mouse control
- Forward and inverse kinematics
- Simple and portable C codebase
Working:
- OpenGL GUI
- Control via keyboard, gamepad, or 3D mouse
- Double-precision forward/inverse kinematics
- Minimal C source files for easy portability
Experimental/Unfinished:
- Trajectory planner (by Stefan Wilhelm)
- Command-line ncurses TUI
- LinuxCNC HAL integration
- Messaging: ØMQ, Eclipse MQTT, and others
- Required: OpenGL, SDL2, SDL2_ttf
- Optional: ncurses, libpng, ZeroMQ, Eclipse Mosquitto, LinuxCNC HAL
sudo apt -y install git mesa-common-dev libsdl2-dev libsdl2-ttf-dev libsdl2-image-dev freeglut3-dev sudo apt -y install fonts-dejavu-core sudo apt -y install libncursesw5-dev libpng-dev libzmq5 libzmq3-dev libpaho-mqtt-dev mosquitto linuxcnc-uspace-dev sudo usermod -aG input $USER # joystick access git clone https://github.com/koppi/rm501.gitcd rm501 make ./rm501| Key(s) | Action |
|---|---|
| Esc / Ctrl-C | Quit |
| Tab | Toggle 3D view |
| Q/W/E/R/T, A/S/D/F/G | +/- joint values (waist, shoulder, etc.) |
| I/K, arrow keys | Move end-effector |
| C/V | Circle motion / Reset circle |
| N/H | Move to nest/home positions |
| O/L | Open/close tool |
| Shift | Move all joints in parallel |
- SpaceNavigator: Enable
HAVE_SPACENAV - Gamepad: Enable
HAVE_JOYSTICK - Messaging (MQTT/ØMQ): Enable
HAVE_MQTT/HAVE_ZMQ - LinuxCNC: Enable
HAVE_HAL
LGPL-2.1-or-later. See LICENSE.