A comprehensive toolchain for high-performance robotic motion planning, featuring a deterministic C++ S-curve library, a modern PySide6 HMI, and real-time visualization in CoppeliaSim.
Video.mp4
Real-time trajectory smoothing with S-curve motion profiles visualized in CoppeliaSim
A high-performance library for real-time trajectory planning with 7-segment S-curve motion profiles.
- O(1) Deterministic Sampling: State evaluation in constant time, suitable for 1kHz+ control loops.
- Multi-Axis Synchronization: Coordinated motion across multiple degrees of freedom.
- Mid-Motion Replanning: Seamlessly update targets from any non-zero state.
Extends Cartesian planning to support complex paths through up to 10 user-defined waypoints.
- Catmull-Rom Interpolation: Ensures C1 continuity (smooth velocity) through all points.
- Piecewise Cubic Splines: Generates optimal Cartesian paths with customizable arc heights.
- Real-Time IK Solver: Damped Least Squares IK for the UR5 robot arm.
A premium dark-themed dashboard for real-time monitoring and control.
- Interactive Previews: 4-panel projection (Main 3D + Top/Front/Side views).
- Adaptive UI: Responsive layouts using
QSplitterand adaptive widgets. - Live Simulation Bridge: Streams joint-space states via UDP to CoppeliaSim.
- C++: CMake 3.14+, C++17 compiler.
- Python: PySide6, NumPy, Matplotlib.
- Robotics: CoppeliaSim (for simulation).
- Libraries: Eigen3, Robotics Library (RL) 0.7.0.
Important: You must build the project before running the GUI.
mkdir build && cd build
cmake ..
make -j$(nproc)This compiles the S-curve library and test runners needed by the GUI.
pip install PySide6 numpy matplotlib
# For CoppeliaSim bridge integration:
pip install coppeliasim-zmqremoteapi-clientNote: Make sure you've built the project first (see Building section above).
- Launch CoppeliaSim: Open the provided scene in
coppeliasim scene/. - Launch the HMI:
python3 gui.py
- Enable Bridge: In the GUI, check "Enable Integrated Bridge" in the CoppeliaSim Bridge section.
- Plan & Execute:
- Use the Joint-Space tab for simple point-to-point motion.
- Use the Cartesian Spline Planner tab to define a complex 3D path with multiple waypoints and execute it on the simulated UR5.
- Launch CoppeliaSim: Open the provided scene in
coppeliasim scene/. - Start the Sim Bridge (in a separate terminal):
python3 rt_sim_runner.py
- Launch the HMI:
python3 gui.py
- Plan & Execute: Use the GUI tabs as described above.
src/: C++ S-Curve library source.tests/: Performance tests, IK solvers, and path runners.gui.py: Main PySide6 HMI application.rt_sim_runner.py: ZeroMQ/UDP bridge to CoppeliaSim.models/: Robot kinematics and simulation models.
- C++17 compatible compiler
- CMake 3.14 or later
- GoogleTest (automatically fetched)
Distributed under the MIT License. See LICENSE for more information.