This repository contains the simulation, control and documentation material developed for the thesis Non-sequential Task Execution with Two Industrial Robots. The project coordinates a UR3e and a UR5e through RoboDK, CoppeliaSim, ROS 2 Humble and the Universal Robots ROS 2 Driver.
Author and primary developer: Damjan Drobac
GitHub: DamjanDrobac999
Institution: University of Zagreb, Faculty of Mechanical Engineering and Naval Architecture
Laboratory: CRTA – Regional Center of Excellence for Robotic Technology
- RoboDK dot following
- RoboDK path following and configuration analysis
- ABB CoppeliaSim path following
- Dual-UR forward-position execution
- Dual-UR recorded JointTrajectory execution
- Installation
- Hardware and network setup
- Forward-position start-up
- JointTrajectory start-up
- URDF preparation
- Troubleshooting
- ROS 2 workspace
| Role | Robot | IP address | ROS namespace | External Control port |
|---|---|---|---|---|
| Robot 1 | UR3e | 192.168.40.50 |
/robot1 |
50102 |
| Robot 2 | UR5e | 192.168.40.14 |
/robot2 |
50002 |
| Control computer | Ubuntu 22.04 | 192.168.40.51 |
— | — |
All ROS 2 processes use ROS_DOMAIN_ID=7. See the
hardware and network guide before
connecting to physical robots.
After installing the prerequisites, build and inspect the workspace:
export ROS_DOMAIN_ID=7
source /opt/ros/humble/setup.bash
source "$HOME/ur_ws/install/setup.bash"
cd "$HOME/zavrsni_nonsequential_task_execution/ros2_ws"
rosdep install --from-paths src --ignore-src -r -y
colcon build --symlink-install
source install/setup.bash
ros2 pkg list | grep nonsequential_task
ros2 launch nonsequential_task_bringup dual_ns.launch.py --show-argsThe physical-robot procedures are intentionally separated by controller:
Do not run both procedures at the same time.
The repository contains:
- RoboDK stations and Python scripts
- CoppeliaSim scenes
- separate readable copies of embedded Lua scripts
- ROS 2 metapackage and project subpackages
- URDF files used during robot-model preparation
- bridge and trajectory-execution scripts
- Markdown installation and execution instructions
- Final thesis PDF
Generated recordings, ROS bags, plots, CSV files and videos are excluded from
Git by .gitignore. They are experimental outputs rather than required source
files.