xarm_ros
xarm_ros copied to clipboard
Questions on dual arm control
Hi,
I have a few questions on dual arm control.
-
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?
-
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.
Hi,
-
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.
-
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.
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!