Control Subsystem - foolofato0k/Robo-Studio2 GitHub Wiki

Control

Summary

Summary and Scope

This subsystem handles trajectory execution for the UR3 robot using Cartesian motion based on received goal poses. It subscribes to a topic with pose arrays, transforms them into a motion-friendly format, and performs execution via MoveIt. This is essential for translating drawing instructions into actual robot arm movements.

Scope:

  • Generate Cartesian trajectory paths
  • Send trajectory commands to UR3 / UR3e
  • Visually identify A4 canvas location and adjust trajectory accordingly (WIP)
  • Adaptively adjust velocity based on trajectory complexity (WIP)
  • Allow optional motion planning to the first pose.
Architecture

Architecture

UR3Control Node

The UR3Control class is defined in ur3_control.cpp. It is a ROS 2 node responsible for:

  1. Receiving target pose arrays.
  2. Optionally adjusting the poses (lift height, orientation).
  3. Executing the poses using MoveIt.

The execution occurs through Cartesian paths for smooth, linear motion between drawing waypoints.

Tests

Tests

Simple Trajectory

Test Simple Trajectory

To test the functionality of the control functionality in simulation: This demonstrates the ur3_control_node subscribing to geometry::PoseArray and then completing the cartesian movements of the array.

ros2 launch ur_simulation_gazebo ur_sim_moveit.launch.py
ros2 run control ur3_control_node
ros2 run py_planning test_publish_node

Control Test

Harder Trajectory

Test Harder Trajectory

This Test demonstrates the control of a UR3e performing the more complex task of drawing a face.

The path plan will display before execution giving a preview of expected actions.

To run the test for the UR3e robot, run in separate terminals:

ros2 launch ur_robot_driver ur_control.launch.py ur_type:=ur3 robot_ip:=192.168.0.194 launch_rviz:=true
ros2 launch ur_moveit_config ur_moveit.launch.py ur_type:=ur3e launch_rviz:=true
ros2 run control ur3_control_node
ros2 run robo_da_vinci processing_node

UR3e

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