Skip to content
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

Questions on dual arm control #38

Open
RexDrac opened this issue Sep 11, 2020 · 2 comments
Open

Questions on dual arm control #38

RexDrac opened this issue Sep 11, 2020 · 2 comments

Comments

@RexDrac
Copy link

RexDrac commented Sep 11, 2020

Hi,

I have a few questions on dual arm control.

  1. I would like to ask if it is possible to control dual arms in mode 0 through rosservice commands? Or is the dual arm control only possible in mode 1 using moveit?

  2. Is it possible to let the dual arm work and switch to different modes seperately from each other? For example, having the left arm working in mode 2, while the right arm is working in mode 1.

Thanks.

@penglongxiang
Copy link
Contributor

penglongxiang commented Sep 14, 2020

Hi,

  1. If you are not planning to use moveit, you can manage to control two xArms in mode 0 separately by writing a new launch file which calls xarm_bringup/xarm6_server.launch twice in different namespaces, refer to this file. The reason to recommend Moveit in this example is that collision can be avoided in dual arm motion planning in Moveit framework.

  2. It is possible theoretically, but you have to use the way introduced above to launch and control them separately, it is not recommended to switch to mode 2 with Moveit controller running in the background.

@gibernas
Copy link
Contributor

gibernas commented Mar 9, 2021

Hi @penglongxiang , I am setting up a system so that it works as intented in the first part of your reply, as multiple robot should be launched simultaneously but in different working areas.

I tried with simply using a namespace group and passing ext_ns as done in the first file, but then some other launch files are included using a different namespace, coming from xarm_hw_namespace, resulting in a nested namespace with ext_ns/xarm_hw_namespace.

As a result i get for example the joint_state_publisher to be published at /ext_ns/xarm_hw_namespace/joint_states but subscribed at /ext_ns/joint_states. However if I try to remove the innermost namespace, the driver node dies at launch.

What is the difference between the two namespace arguments? I don't get what I am doing wrong...

Thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants