Project Structure - main architecture

Contextualization

This project aims to relieve human operators of repetitive work that causes multiple back injuries for the workers, by replacing one person for a collaborative robot.

At the moment, the task in hand requires two human operators to:

  1. lift a relatively large board (one person on each side) 
  2. Check that side of the board
  3. Turn the board around
  4. Check that other side of the board
  5. If both sides are approved, place the board on the automatic treadmill

For this, it will be developed a ROS based project, working with a Universal Robot 10 e-series. The workflow of this project is detailed right below.

Structure

For future development purposes, this task will be built in a modular way, where each step can occur independently of the other steps. This way, it will be possible to start from a simple and fully working job and only then develop and implement more advanced tools that will contribute for the robustness of the project. 

The proposed workflow main structure can be visualized by the following node graph:

Along this, it will also exist a global ROS parameter called state. 

State rosparam can have one of the four following values (all strings):

  1. picking_object
  2. approaching_human
  3. human_decision
  4. object_placing 

As we can see, the project has 6 main nodes:

  • object_tracker
  • human_tracker
  • object_picker
  • human_approach
  • human_decision
  • object_placer

Where we can separate the two first mentioned nodes (object_tracker and human_tracker) as the ones that are completely unconscious of the state global parameter. These 2 nodes, will be continuously detecting and tracking the object/human and publishing its pose for the respective topic (object_pose and human_pose). 

Because of this independent way of working, I chose to create a group called /trackers to encompass in it these 2 nodes and 2 topics.

The other 4 nodes will work one at a time, successively, by getting and setting the /state parameter value:

 

The 3 topics shown on the node graph are:

  • object_pose
  • human_pose
  • decision 
The object_pose and human_pose topics will have messages passing through continuously. Contrarily, the decision topic will only have on single message each time a decision is made.

This project will need, at least, 2 cameras: one for tracking the object and the other for tracking the human pose/decision.

Further details on how each node (process) will work are presented on the next pages of this same blog.

Comments

Popular posts from this blog

Remote Control of UR10e via MoveIt (ROS)

UR10e control architecture

Installing External Control URCap on robot Teach Pendant