Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

Question ROS2 pick and place demo ?

Discussion in 'Robotics' started by seifmostafa7347, Mar 4, 2023.

  1. seifmostafa7347

    seifmostafa7347

    Joined:
    Nov 2, 2021
    Posts:
    22
    I've been struggling to duplicate the Pick and place demo using ROS2 instead of one.
    I found no previous attempts to do this, so I started from scratch using moveit2, was wondering if anyone could guide me on an easier path or an article that adapts unity's Pick and place tutorial from ROS1 to ROS2.
    any help would be much appreciated.
     
  2. Envilon

    Envilon

    Joined:
    Aug 8, 2020
    Posts:
    42
    Hi. I haven't tried to do this, but I think there are two ways to do it. Either migrate all the packages from ROS 1 to ROS 2 (as you are trying to do, I assume) or try using a ros1_bridge. Using the ROS 1 bridge should be a quicker but dirtier solution, if possible at all in Unity. However, a ROS 1 / ROS 2 hybrid solution won't work presumably.

    Even though I am not trying to migrate the pick and place demo to ROS 2, I am currently working on a custom robotic arm simulation that is running on ROS 2 and is similar to the pick and place demo. I am currently also stuck on the moveit2.
     
  3. seifmostafa7347

    seifmostafa7347

    Joined:
    Nov 2, 2021
    Posts:
    22
    I was planning on testing the ROS bridge but was afraid it might cause more issues, and from the thread you posted it seems that it actually not supported.
    so now I'm back to moveit2, Did you find any good documentation describing the Moveit2 topics and how to request a trajectory from python? I think I can just build the whole thing on python and running an RPC from C# to call those functions [I know, still not the best solution]
     
  4. Envilon

    Envilon

    Joined:
    Aug 8, 2020
    Posts:
    42
    Sorry I didn't get far and it was some time ago. I might have another look at it. As far as I remember, I was going through some course on moveit2, but the course said that the moveit setup asistant was not migrated to ROS2 yet, so they were creating a ROS 1 package using the moveit setup assistant for ROS 1 and then migrating the package somehow. However the moveit setup assistant should be already migrated, so I tried to use it directly.

    This tutorial might be useful if you run ROS 2 Humble. I probably followed the steps from a course I was enroled in, and tried to apply them on my custom robotic arm, but at the end it did not work for me. In my case I can't define a planning group for a gripper and I wanted moveit to use JointTrajectoryController instead of the FollowJointTrajectory. So maybe I made a mistake somewhere as I was trying to wing it. I will probably give it another go soon.
     
  5. seifmostafa7347

    seifmostafa7347

    Joined:
    Nov 2, 2021
    Posts:
    22
    Thanks for the help, can you tell me the name of the course as well? Or any other link that provides a clear documentation for python moveit2 interaction
     
  6. Envilon

    Envilon

    Joined:
    Aug 8, 2020
    Posts:
    42
    It was a course on TheConstruct called "ROS2 Manipulation Basics" and you can find it here: https://app.theconstructsim.com/Course/81

    Unfortunately, the link is accessible only when you create an account, and the course itself is locked behind a paid subscription. And unless you are a complete beginner with ROS, I cannot recommend paying for the subscription.

    Other than that, I only went through the official tutorials for moveit2 and the tutorial for moveit setup guide I linked above.
     
  7. seifmostafa7347

    seifmostafa7347

    Joined:
    Nov 2, 2021
    Posts:
    22
    I've followed the moveit2 tutorials but they don't really give enough insight of the topics and architecture for the pick and place package, neither do they provide any Python alternative.
    Anyways I really appreciate your replies, and I'll keep digging.
     
  8. Envilon

    Envilon

    Joined:
    Aug 8, 2020
    Posts:
    42
    I am clueless about the python alternative myself, but yesterday I watched this talk from 8 months ago, and they mentioned that they only now found some student to work on python bindings for Moveit2. So it might not be available at the moment.
     
  9. Envilon

    Envilon

    Joined:
    Aug 8, 2020
    Posts:
    42
    You said you were able to follow the moveit2 tutorials? I just got back to them and I'm struggeling... They still use catkin and roslaunch commands even that it's supposed to be a tutorial for ROS Humble.

    Were you able to follow this tutorial in particular? Since I'm struggeling to set it up with my custom robotic arm I wanted to go through the tutorial as is (using the Panda robotic arm), but I can't even get through the several first steps.
     
  10. seifmostafa7347

    seifmostafa7347

    Joined:
    Nov 2, 2021
    Posts:
    22
    Yeah, same here, couldn't change the default robot model.
    And still couldn't find a clear python documentation.
    Trying another route to calculate the robot IK directly from unity, if that didn't work I'll be forced to get back to moveit2.
    However what I concluded is that their documents haven't been fully migrated ( still seeing a lot of "TODO: migrate to ROS2" in their repo
     
    Envilon likes this.
  11. seifmostafa7347

    seifmostafa7347

    Joined:
    Nov 2, 2021
    Posts:
    22
    @Envilon hey, I've been working on my own implementation of pick and place demo in unity. I'll be using unity as simulation to calculate trajectory of robot arm instead of moveit2 since it still has a long way to come through migration , the project is not fully finished but here's a sneak peak for anyone still interested in this :)
     

    Attached Files:

    Envilon and medinafb01 like this.
  12. Envilon

    Envilon

    Joined:
    Aug 8, 2020
    Posts:
    42
    Looks great, @seifmostafa7347! :) I agree that Moveit2 seems to be in a broken state right now. Their repository is overflowing with open issues, and it just does not work for me. I had some minor progress with it by migrating my robot description package to ROS 1, and using Moveit1. That seems to work fine, but it's not what we wanted. Then I tried migrating the Moveit1 configuration to ROS 2 and Moveit2, and I was able to at least run moveit demo with Moveit2 and my custom robot in RViz2. However, Moveit2 has some issues with running controllers and whatnot, so the planning did not work anyway...

    Unfortunately, I gave up on Moveit for now as I have some important deadlines coming up, and motion planning is not one of the main goals of the project at this stage.
     
    seifmostafa7347 likes this.
  13. seifmostafa7347

    seifmostafa7347

    Joined:
    Nov 2, 2021
    Posts:
    22
    I'll be more than happy to share my solution once I think it's stable enough.
    And Good luck with your project
     
    Envilon likes this.