This project simulates a robotic pick-and-place operation using two different control methods: Joint Space Control and Resolved Rate Motion Control (RRMC). The simulation involves planning and executing trajectories for a robotic arm to pick up objects and place them in designated locations, with dynamic tracking and visualization.
- Control Methods:
- Joint Space Control: Smooth trajectory planning in joint space using cubic splines.
- RRMC: Cartesian velocity control with resolved rate motion control.
- Dynamic Object Tracking: Real-time adjustments to track moving objects.
- Trajectory Planning: Automated planning of pick-and-place trajectories.
- Visualization: End-effector paths, joint angles, and workspace overview.
- Simulation Environment: Includes object creation, motion, and gravity simulation.
robot/
├── main.py # Entry point for the simulation
├── README.md # Project documentation
├── src/ # Source code directory
│ ├── joint_space_controller.py # Joint space trajectory control
│ ├── joint_space_executor.py # Joint space execution logic
│ ├── rrmc_controller.py # RRMC control logic
│ ├── object_manager.py # Object creation and management
│ ├── pick_and_place_executor.py # RRMC pick-and-place execution
│ ├── recorder.py # Data recording for visualization
│ ├── robot_environment.py # Robot simulation environment
│ ├── trajectory_planner.py # Trajectory planning logic
│ ├── visualizer.py # Visualization utilities
│ └── __init__.py # Package initialization
└── cubes_plot/ # Visualization outputs
- Clone the repository:
git clone https://github.com/ManuCa93/robots.git cd robots - Install dependencies:
pip install -r requirements.txt
- Run the simulation:
python main.py
- Choose the control method by modifying the
CONTROL_METHODvariable inmain.py:"joint_space"for Joint Space Control"rrmc"for Resolved Rate Motion Control
- Smooth trajectory planning using cubic splines.
- Direct control of joint angles.
- Suitable for tasks requiring smooth and predictable motion.
- Cartesian velocity control with damping to handle singularities.
- Real-time adjustments for dynamic environments.
- Suitable for precise Cartesian control.
- End-effector paths and joint angles over time.
- Workspace overview showing object positions and trajectories.
- Fork the repository.
- Create a new branch:
git checkout -b feature-branch
- Commit your changes:
git commit -m "Add new feature" - Push to the branch:
git push origin feature-branch
- Open a pull request.
- Libraries Used:
numpy: Numerical computationsscipy: Interpolation and optimizationspatialmath: Robotics transformationsroboticstoolbox: Environment
- Inspiration: Robotics control and simulation techniques.

