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.
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.
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]
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.
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
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.
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.
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.
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.
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 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
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.
I’ll be more than happy to share my solution once I think it’s stable enough.
And Good luck with your project