Skip to content

Repository files navigation


Parol6 Robotic Arm (ROS 2 Humble)

The Parol6 project is a complete ROS 2 workspace for simulation, motion planning, and GUI-based control of a 6-DOF robotic arm. It integrates Gazebo, MoveIt 2, ros2_control, MoveIt Servo, perception nodes, conveyor belt simulation, and a custom Qt GUI.


✨ Features

  • Robot Model & Description
    • URDF/Xacro model (parol6_description)
    • Meshes and visuals for RViz & Gazebo
    • Integrated gripper and optional camera
  • Simulation (Gazebo)
    • Physics-based simulation with ros2_control
    • Conveyor belt simulation (velocity + distance services)
    • Object spawning and attach/detach services
  • Motion Planning (MoveIt 2)
    • Move group for joint & Cartesian planning
    • Collision-aware path planning
    • KDL kinematics plugin support
  • MoveIt Servo (Jogging)
    • Real-time jog control (X, Y, Z, Roll, Pitch, Yaw)
    • Adjustable speed scaling
    • Servo On/Off services
  • Perception Pipeline
    • Box detection node (vision)
    • Publishes detected box pose as PoseStamped
    • Triggerable pick-and-place pipeline
  • Custom GUI (parol6_gui)
    • Control Tab: Jog buttons, Servo On/Off toggle, Speed slider, Real-time joint values
    • Targets Tab: Save/load joint or pose targets, Execute stored targets

📦 Packages in This Repo

  • parol6_description → URDF, meshes, robot_state_publisher
  • parol6_moveit2_config → MoveIt 2 configuration & bringup launch files
  • parol6_gazebo → Gazebo worlds, conveyor belt simulation
  • parol6_gui → Qt C++ GUI for jogging & monitoring
  • parol6_pipeline → Perception + pick-and-place pipeline
  • msg_gazebo → Custom attach/detach service definitions

🚀 Launch Instructions

0. Set Environment Variables (Crucial for Gazebo)

Gazebo requires the model path to be set to find the robot's URDF and meshes. Run this before launching Gazebo:

  • Temporary Export (Current Terminal):
    export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:$(ros2 pkg prefix parol6_description)/share
    (Note: Replace $(ros2 pkg prefix parol6_description)/share with the hardcoded path /home/azif/projetcs/parol6/install/parol6_description/share if you prefer.)

1. Launch the robot, Gazebo, MoveIt 2, and RViz

This brings up the full simulation environment with controllers and planning:

ros2 launch parol6_moveit2_config bringup.launch.py

2. Launch the GUI

In a new terminal (after setting GAZEBO_MODEL_PATH):

ros2 run parol6_gui parol6_gui

🎬 Demonstrations 🚀

GUI Operations

Demonstration of the custom Qt GUI for real-time jogging and servo control.

GUI Operations GIF

Object Spawning

Illustrates the use of the Gazebo service to spawn a box object into the simulated environment.

GUI Operations GIF

Full Pipeline Execution

The complete pick-and-place sequence, from object detection to motion planning and gripper action.

GUI Operations GIF


3. Example Service Calls

  • Start/Stop Servo:

    ros2 service call /servo_node/start_servo std_srvs/srv/Trigger
    ros2 service call /servo_node/stop_servo std_srvs/srv/Trigger
  • Control Conveyor:

    ros2 service call /CONVEYORPOWER conveyorbelt_msgs/srv/ConveyorBeltControl "{power: 5.0}"
    ros2 service call /conveyor2/MoveDistance conveyorbelt_msgs/srv/MoveDistance "{distance: 0.35}"
  • Spawn & Attach Objects:

    ros2 service call /spawn_box std_srvs/srv/Trigger
    ros2 service call /AttachDetach msg_gazebo/srv/AttachDetach "{model1: 'parol6', link1: 'L6', model2: 'Red_1', link2: 'link', attach: true}"
  • Run Pipeline & Detection:

    ros2 run parol6_pipeline pipeline_node
    ros2 service call /start_detection std_srvs/srv/Trigger "{}"
    ros2 service call /start_picking std_srvs/srv/Trigger "{}"

⚙️ Dependencies

  • ROS 2 Humble
  • Gazebo 11
  • MoveIt 2
  • ros2_control + ros2_controllers
  • Qt 5 / Qt 6

Install common dependencies:

sudo apt install ros-humble-moveit ros-humble-gazebo-ros-pkgs ros-humble-ros2-control ros-humble-ros2-controllers qtbase5-dev

📂 Workspace Layout

parol6/
├── gif/                     # Animated demonstration GIFs (Requires box_spawning.gif, gui_operations.gif, pipeline-execution.gif)
├── parol6_description/      # URDF, xacro, meshes
├── parol6_moveit2_config/   # MoveIt 2 config + bringup.launch.py
├── parol6_gazebo/           # Gazebo worlds, conveyor
├── parol6_gui/              # Qt C++ GUI
├── parol6_pipeline/         # Vision & pick-place pipeline
└── msg_gazebo/              # Custom Gazebo services

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages