Home - foolofato0k/Robo-Studio2 GitHub Wiki
Introduction
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
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.
- 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
- Ubuntu 22.04 Jammy Jellyfish
- ROS2 humble
- Universal_Robots_ROS2_Driver
- Gazebo Fortress
- Universal_Robots_ROS2_Gazebo_Simulation
- OpenCV-Python
- PyPotrace - python API for the Potrace Library
- LKH-3 Installation
- UR3 / UR3e
- Webcam
- Custom Pen Gripper
To install other dependencies:
Navigate to the root of the git repository:
pip install -r src/requirements.txt
Getting Started
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
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
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
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)
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
- 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
- Check the UR3e is searching for the correct device IP:
ip a
OR
ifconfig
- 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
Use these links to navigate directly to each subsystem’s documentation page.