-
Notifications
You must be signed in to change notification settings - Fork 1
Home
Welcome to the Arm_Robot Wiki! This educational robotic arm is designed to teach ROS (Robot Operating System) concepts. It interfaces with a Raspberry Pi via the PCA9685 servo HAT to control a physical robotic arm.
The Arm_Robot project provides a hands-on, practical approach to learning ROS by allowing users to control a real robotic arm through software.
- ROS Integration: Real-time robot control using standard ROS tools and nodes.
- Cross-language Support: Source code available in Python and C++.
- Hardware Control: Uses the PCA9685 servo controller via Raspberry Pi GPIO.
- Raspberry Pi (3B+ or newer recommended)
- PCA9685 Servo HAT
- ROS Noetic (or Melodic, if applicable)
- Python 3.8+
- C++11 compatible compiler
- Internet access to install dependencies
git clone https://github.com/GUT-Aachen/Arm_Robot.git
cd Arm_RobotEnsure your Raspberry Pi is connected, and then run:
python3 setup.pyThis script will configure the servo controller and prepare your system for running the robot.
roslaunch arm_robot_moveit full_arm_robot_sim.launchroslaunch arm_robot_moveit real_arm_robot.launchWait a few seconds for RViz to launch with the robot model loaded.
In another terminal (with the same ROS environment sourced):
rosrun arm_robot_moveit sync_plan.pyThis script sends planned joint movements to the physical robot based on your MoveIt planning interface. After this you can run ROS Nodes forward or backward kinematics based MoveIt Planning Interface.
- Set the robot base height to 40mm for correct pose planning.
- Avoid using the IkFast plugin for planning as it is not supported.
- Ensure your servo power supply is stable, typically between 5-6V.
- If running into errors, check the connection between the Raspberry Pi and the servo HAT.
- Wiring flow goes from base motor to gripper motor -> base motor wire goes in the 0th pin of the servo Hat and the final gripper motor wire goes in the 4th pin. Please keep in mind the wiring pattern and the gnd, v++, and pwm pins.
We welcome contributions from students, educators, and developers interested in educational robotics!
- Fork the repository
-
Create a branch for your feature or fix:
git checkout -b feature-name
- Make your changes and commit:
git commit -m "Add new feature" - Push to your fork:
git push origin feature-name
- Open a Pull Request on GitHub.
Contribution Guidelines
- Follow ROS and Python/C++ best practices.
- Include comments and documentation for any new features.
- Test your changes on hardware if possible.
This project is licensed under the MIT License.