-
Notifications
You must be signed in to change notification settings - Fork 222
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Dual UR16e arms #1016
Comments
This seems like there's something wrong with the controller configuration passed to the controller manager. The Note: I would recommend using one controller manager for both robots. This way, you would only have to provide one description containing both arms and then start the control node as usual. This would require one common controller file containing all controllers for both arms. I haven't tried this myself, yet, though. We are currently working on a dual-arm setup tutorial, but this will be targeting rolling/jazzy. Most of that should be backportable to humble, though. |
@eladpar Let me know if you still need help. We have an running dual-arm setup for more than a year now. So it is definitely possible. But there are quite a few things you have to take care of. As @fmauch said I would recommend to use a single controller manager. But then you need to make sure that you set from my launch.py
Other than that I would recommend you to write your own minimal launch file that just starts the controller manager at the beginning. If that works you can continue! |
Thank you guys I will keep track with the tutorial in the making.. |
Did you make sure to set different ports for both arms ? These are the reverse ports (on your PC) that are used for the communication afterwards. You need to make sure that for both arms you use different ports.
|
yes you can see at my first file (launch file ) |
It is way easier and less error prone to build your own urdf with both arms. There you make sure to use the correct parameters and instantiate the controller manager with that urdf. What you are trying to do reminds me of my first try. There I had the issue that it looked fine with mocked hardware but it did not properly propagate the parameter to the correct instance in the urdf. Just as a reminder: ros2control takes the parameter from the urdf. What we do in the example launch script is passing all arm parameters as xacro args. But they are not unique for both arms as far as I can remember |
Hi firesurfer! |
Hi @levmarki I can explain how I managed to get multiarm support running:
The list of parameters that have to unique for both arms:
As I wrote above: You need to select different ports for both arms! Additionally you need to set:
Furthermore I only managed to get it running in headless_mode By adjusting the use_fake_hardware parameter you select if ros2control loads the mocked hardware interface or the real hardware interface. I have to admit btw. that after failing to configure it via the launch file (not sure if that is even possible at the moment) I directly went to: Write my own urdf + own launch file. For debugging purposes it can also help to directly call xarco on your urdf.xacro file and check the outcome. In the launch file it is btw. important I think to use the
Additionally for testing (if you just want to make sure not to accidentially move the robot) you can just turn it on but not completely start it on the touch panel: It will then report its joint states but will not allow you to move it. EDIT: Btw. I also started to add some documentation here: https://github.com/UniversalRobots/Universal_Robots_ROS2_Description/pull/70/files but @fmauch decided to rather implement a full example. |
@firesurfer |
Affected ROS2 Driver version(s)
2.2.10
Used ROS distribution.
Humble
Which combination of platform is the ROS driver running on.
Ubuntu Linux with standard kernel
How is the UR ROS2 Driver installed.
Build both the ROS driver and UR Client Library from source
Which robot platform is the driver connected to.
UR E-series robot
Robot SW / URSim version(s)
5.16
How is the ROS driver used.
Through the robot teach pendant using External Control URCap
Issue details
Summary
Hey, iv'e been trying to make 2 UR arms work together on moveit2 and ros2.
I tried doing similar to this:
https://github.com/catmulti7/dual_ur_ros_2
but I guess Im using a newer driver than that project..
im trying to load both ur arms but I get failed to load controllers
this is my launch file:
dual.launch.py:
and this launchs a modified ur_control.launch.py called
ur_control_dual.launch.py
any ideas?
Relevant log output
Accept Public visibility
The text was updated successfully, but these errors were encountered: