Home - foolofato0k/Robo-Studio2 GitHub Wiki

Welcome to the Robo-Da-Vinci wiki!

Introduction

Project Background

Have you ever been minding your own business as you go about your daily life before suddenly BAM, someone has robbed you blind in broad daylight? Fortunately, it was caught on cameras with a clear view of the perpetrator's face, however, you are an art student, the image is oh so boring, it is almost worse than the robbery. We are here to help! We can create artistic interpretations of any portrait automatically with our state-of-the-art UR3. It can even assign a bounty to your assailant (“Wanted, dead or alive ”)!

*Disclaimer we do not condone violence of any kind

Wiki Format

This wiki is intended mainly for technical users of the Robo-Da-Vinci project. The home page contains some general information and how to get started. The remaining pages contain technical descriptions of how each subsystem functions and how to effectively interact with the code.

Wanted Poster

Project Scope

  • Image Processing to obtain splines from an image obtained from webcam / camera
  • Path Planning Algorithm that calculates the optimal paths to draw given splines.
  • Control and Localisation program that will identify the page, stay within its boundary and control UR3 to complete the given trajectory.
  • Simulation in Gazebo of the UR3 running through the localisation and path planning of the project.
  • End Effector Design that is an optimal attachment for pen and camera.
  • GUI with a clear interface for users that implements the camera input and supports image customisation.

Requirements

Requirements

Software Requirements:

Hardware Requirements

  • UR3 / UR3e
  • Webcam
  • Custom Pen Gripper

Dependencies

To install other dependencies:

Navigate to the root of the git repository:

pip install -r src/requirements.txt

Getting Started

Getting Started

Initial Setup

Create a ROS2 workspace (Creating a ROS2 workspace tutorial) or use an existing one.

Copy this git to the src folder of your ROS2 workspace:

git clone https://github.com/foolofato0k/Robo-Studio2.git

In the root of your workspace run

colcon build --symlink-install

Ensure you souce your workspace

source install/setup.bash

You are now ready to run the project


Running The Project In Simulation

Running the Project In Simulation

To run test nodes code in SIMULTATION, run in separate terminals:

This demonstrates the ur3_control_node subscribing to geometry::PoseArray and then completing the cartesian movements of the array.

In your First terminal, run the Simulation:

ros2 launch ur_simulation_gazebo ur_sim_moveit.launch.py

In your Second terminal, run the Control node:

ros2 run control ur3_control_node

In your Third terminal, run the Processing node:

ros2 run py_planning processing_node

In your Fourth terminal, run the GUI node:

ros2 run gui gui_node

Running The Project On A Real Robot

Running Project On A Real Robot

To run the ACTUAL UR3e robot, run in Five separate terminals:

In the First terminal, run the Robot Driver:

ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur3 robot_ip:=192.168.0.194 launch_rviz:=true

In the Second terminal, run MoveIt:

ros2 launch ur_moveit_config ur_moveit.launch.py ur_type:=ur3e launch_rviz:=true

In your Third terminal, run the Control node:

ros2 run control ur3_control_node

In your Fourth terminal, run the Processing node:

ros2 run py_planning processing_node

In your Fifth terminal, run the GUI node:

ros2 run gui gui_node

Running The Project With A Launch File

Running In Simulation:

If you'd like to launch a full drawing simulation - including the GUI interface, image processing, path planning and UR3e Control Follow the instructions below:

In your First terminal, run the Simulation:

ros2 launch ur_simulation_gazebo ur_sim_moveit.launch.py

In your Second terminal, run the Launch File:

ros2 launch gui bringup.launch.py

This launch file automatically starts:

  • processing_node (for image-based path planning)
  • gui_node (for user photo capture and confirmation)
  • ur3_control_node (for connection with the robot)

Running On The Real Robot:

If you'd like to launch a full drawing demonstration- including the GUI interface, image processing, path planning and UR3e Control Follow the instructions below:

In the First terminal, run the Robot Driver:

ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur3 robot_ip:=192.168.0.194 launch_rviz:=true

In the Second terminal, run MoveIt:

ros2 launch ur_moveit_config ur_moveit.launch.py ur_type:=ur3e launch_rviz:=true

In your Third terminal, run the Launch File:

ros2 launch gui bringup.launch.py

This launch file automatically starts:

  • processing_node (for image-based path planning)
  • gui_node (for user photo capture and confirmation)
  • ur3_control_node (for connection with the robot)

Troubleshooting

Troubleshooting Common Issues

Failing to connect to UR3e

  1. Check UR3e IP address is correct in the following command:
ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur3 robot_ip:=192.168.0.194 launch_rviz:=true
  1. Check the UR3e is searching for the correct device IP:
ip a

OR

ifconfig
  1. The network may be causing issues
  • Disable wifi

OR

  • Open ~/.bashrc in your preferred code editor and add the following line at the bottom of the file:
export ROS_LOCALHOST_ONLY=1
Subsystems

Subsystems

Use these links to navigate directly to each subsystem’s documentation page.

⚠️ **GitHub.com Fallback** ⚠️