EricssonResearch / scott-eu

SCOTT – Secure Connected Trustable Things

Home Page:https://scottproject.eu/uc04-logistics-management-using-collaborative-robots-and-devops-methodologies/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Make robot arm able to pick products

jramadeu opened this issue · comments

On #116 I'm facing some problems with v-rep scene when I try to pick a product.

In the scene warehouse_turtlebot2i_v3_recharge.ttt we have the following issues:

  • the dynamic masks configuration make possible a dynamic interaction between the robot arm and shelf bounding box [solved]
  • the shelf layout make the pick task hard.
    -- here, I guess the previous kuka robot had a smaller tool to execute pickup
  • the products dynamic's is disable to save processing power. Is this making the arm unable to grasp the product?
commented

Hi @jramadeu , commenting on those questions:

  • the shelf layout make the pick task hard.
    Yes, it worked with youbot, but we can change the shelf to be better suited for the new robot.

  • the products dynamic's is disable to save processing power. Is this making the arm unable to grasp the product?
    True, there was a script in the scene that disabled products' dynamics if they are not being manipulated

commented

I'm working on this issue in branch "make_product_pickable" (still local).
Which script(s) are you @jramadeu running to create products on the shelves, move the robot and attempt the picking?

@KRaizer,

  • To create products on shelves: there is a script on the scene warehouse_turtlebot2i_v3_recharge_2.ttt on branch issue-116. On this scene a childscript on the shelf shape do this job.

  • To move the robot: I'm working on this on branch issue-116. You need to execute the script plan_interpreter.py inside turtlebot_warehouse/src.

  • The above mentioned script also manage the picking.

I suggest you to control the robot via V-REP while you're debugging on this task. The branch issue-116 is not stable, but if you want to use it I can help you.

commented

@jramadeu ,
I've modified the scene "warehouse_turtlebot2i_v3_recharge.ttt" as follows:

  • Modified Shelf to fix bounding box issue
  • Modified Shelf to make it easier to access with robot arm.
  • Externalized ShelfBody script to turtlebot2i_ShelfBody.lua file.
  • Resized product boxes so the gripper can pick them.
  • Made product boxes always dynamic for now (in time I'll take another look at it on how to use the previous feature that disabled their dynamics when not needed in order to save processing power)

Modifications are available at the following branch:
make_product_pickable

Could you please take a look at it before we attempt merging them to master?

@klaus, I've tried as much as possible to make the pick stable and I failed miserably. The arm can interact with the product, but when it picks the product usually the product slips or the arm gets quite unstable.

Another note: when the robot is centralized with a shelf, perfectly in front of product red, is quite hard for the hard to grasp product green or yellow. This happen due to a DOF limitation.

image

How can we solve this issue? Modifying the scene or make the robot move to a better position to pick products in this situation

@jramadeu on the previous scene (with the youBot) we would move the robot`s base to a better pose to pick up the object. As such, the arm movement would be the same, regardless of the object, but for each type we would have a specific pose for the pick operation.

the arm movement would be the same, regardless of the object

Sometimes I fell like moveit it's a overkill for our scenario

commented

the arm movement would be the same, regardless of the object

Sometimes I fell like moveit it's a overkill for our scenario

For our toy problem scenario that is probably the case. But since we are striving at having something as generic as possible that can be applied to other scenarios, having it working seems good investment.

commented

@jramadeu ,
I just made a bunch of modifications to the scene and its scripts. They are at branch make_product_pickable

Major changes:

  • Altered Turttlebot's gripper to have movement of both pieces.
  • They are now controlled by joint 5.;
  • Externalized the corresponding script to a lua file;
  • Implemented mechanism that adds picked up product to gripper's body in order to circunvent some limitations with the solver that let to instabilities;
  • Todo: write code to avoid full closure of gripper;
  • Todo: re-enable script to disable products' dynamics when not needed to save processing

Still have a few things to do in it, but I believe they help with making the pick operation more stable and reliable.

Let's take a look at it together this week.

commented

Hi @jramadeu , I've fixed the issue with products being created at the wrong position. Also, I've changed joint5 from revolution to prismatic as requested. Please see if it is working there for you.

Worked like a charm! Thanks Klaus.

The changes done here were merged into #116.

I'm closing this.