English | ็ฎไฝไธญๆ
OpenArmX Multi-Robot Motor Management System - A PySide6-based graphical control tool for dual-arm robots.
openarmx_motor_manager is a desktop application for managing and controlling OpenArmX dual-arm robots. The system supports simultaneous management of multiple robots, providing an intuitive graphical interface for motor control, status monitoring, and CAN interface management.
- Support for simultaneous connection and management of multiple dual-arm robots
- Each robot displayed in an independent tab
- Automatic detection and pairing of CAN interfaces (can0-can1, can2-can3, ...)
- Manual CAN channel configuration support
- One-click enable/disable all CAN interfaces
- Automatic detection of real CAN interfaces (filtering virtual interfaces)
- View CAN interface status and bitrate
- Support for automatic sudo password input
- Enable All Motors - Batch enable all motors on both arms
- Disable All Motors - Batch stop all motors on both arms
- Go Home - Command all motors to return to zero position
- Set Zero - Set current position as motor zero point
- Single Motor Test - Precise control of individual motors in MIT mode
- Test All Motors - Execute simple motion tests
- Real-time display of motor status (position, velocity, torque, temperature)
- Mode status indication (Motor mode/Reset mode/Cali mode)
- Fault status monitoring
- ไธญๆ (zh_CN)
- English (en_US)
- ๆฅๆฌ่ช (ja_JP)
- ะ ัััะบะธะน (ru_RU)
openarmx_motor_manager/
โโโ GUI_MultiRobot.py # Program entry point
โโโ __init__.py # Package initialization
โโโ requirements.txt # Dependency list
โโโ config/
โ โโโ config.yaml # Configuration file
โ โโโ config_manager.py # Configuration manager
โ โโโ script_finder.py # Script finder
โโโ ui/
โ โโโ MainUI_MultiRobot.py # Main interface
โ โโโ RobotPage.py # Robot control page
โ โโโ RobotWorker.py # Worker thread
โ โโโ SingleMotorTestDialog.py # Single motor test dialog
โ โโโ SettingsDialog.py # Settings dialog
โ โโโ ConfigDialog.py # Configuration dialog
โ โโโ translations.yaml # Multi-language translation file
โ โโโ ui/ # Qt Designer UI files
โ โ โโโ MainUI.ui
โ โ โโโ TestMotorUI.ui
โ โ โโโ ui_MainUI.py
โ โ โโโ ui_TestMotorUI.py
โ โโโ texture/ # Icon resources
โ โโโ icon.ico
โ โโโ icon.png
โโโ utils/
โ โโโ can_detector.py # CAN interface detector
โโโ scripts/ # Command-line scripts
โโโ en_all_can.py # Enable all CAN interfaces
โโโ dis_all_can.py # Disable all CAN interfaces
โโโ en_all_motors.py # Enable all motors
โโโ dis_all_motors.py # Stop all motors
โโโ check_motor_status.py # Check motor status
โโโ control_motor_gohome.py # Motor go home
โโโ set_motor_zero.py # Set zero point
โโโ test_motor_one_CSP.py # Single motor CSP mode test
โโโ test_motor_one_MIT.py # Single motor MIT mode test
โโโ test_motor_one_by_one.py # Test motors one by one
โโโ test_motor_all_random.py # Test all motors randomly
pip install -r requirements.txtMain dependencies:
- PySide6 >= 6.5.0
- PyYAML >= 6.0
- openarmx_arm_driver >= 1.1.5
- python-can >= 4.0.0
- Linux operating system (CAN interface support required)
- Python 3.8+
- CAN hardware device (e.g., USB-CAN adapter)
cd /path/to/openarmx_motor_manager
python3 GUI_MultiRobot.py-
Enable CAN Interfaces
- Menu bar โ CAN โ Enable CAN Interfaces
- First-time use requires sudo password input
-
Add Robot
- Menu bar โ Robot โ Add Robot
- Choose automatic or manual CAN channel configuration
- System requires at least 2 CAN interfaces to control one dual-arm robot
-
Control Motors
- Use motor control buttons in the robot page
- Check output panel for operation results
You can also use command-line scripts directly:
# Enable all CAN interfaces
python scripts/en_all_can.py
# Enable all motors
python scripts/en_all_motors.py
# Check motor status
python scripts/check_motor_status.py
# Motor go home
python scripts/control_motor_gohome.py
# Disable all motors
python scripts/dis_all_motors.py
# Disable all CAN interfaces
python scripts/dis_all_can.pyConfiguration file is located at config/config.yaml with the following settings:
version: 2.0.0
first_run: false # Whether it's the first run
language: zh_CN # Interface language
sudo_password: "" # sudo password (stored in plaintext, ensure security)
last_can_channels: # Last used CAN channels
right: can0
left: can1
scripts: # MoveIt script paths
moveit_sim: ""
moveit_can: ""When using single motor test function, please note:
- Ensure motors are securely mounted and no personnel are nearby
- Operator's hand should hover over the emergency stop button
- For initial testing, parameter values should be less than 10% of maximum
- Press emergency stop button immediately if any abnormality is detected
This system is based on the openarmx_arm_driver package, mainly using the following features:
Robot- Dual-arm robot control classget_all_can_interfaces()- Get all CAN interfacesget_available_can_interfaces()- Get enabled CAN interfacesenable_can_interface()- Enable CAN interfacedisable_can_interface()- Disable CAN interfacecheck_can_interface_type()- Check interface type (real/virtual)verify_can_interface()- Verify interface status
- Wei Lindong (้ญๆๆ )
- Company: Chengdu Changshu Robot Co., Ltd. (ๆ้ฝ้ฟๆฐๆบๅจไบบๆ้ๅ ฌๅธ)
- Website: https://openarmx.com/
v2.0.0
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License (CC BY-NC-SA 4.0).
Copyright (c) 2026 Chengdu Changshu Robot Co., Ltd. (ๆ้ฝ้ฟๆฐๆบๅจไบบๆ้ๅ ฌๅธ)
For more details, see the LICENSE file or visit: http://creativecommons.org/licenses/by-nc-sa/4.0/
| Contact | Information |
|---|---|
| ๐ง Email | openarmrobot@gmail.com |
| ๐ฑ Phone / WeChat | +86-17746530375 |
| ๐ Website | https://openarmx.com/ |
| ๐ Address | Huacheng Machinery Plant, No.11 Xinye 8th Street, West Area, Tianjin Economic-Technological Development Area |
| ๐ค Contact Person | Mr. Wang |