Skip to content

Commit 49dba3a

Browse files
committed
Tutorial for running multiple groups/arms moveit#465
1 parent d2458c1 commit 49dba3a

File tree

5 files changed

+65
-0
lines changed

5 files changed

+65
-0
lines changed

doc/multi_group/arm1.png

134 KB
Loading

doc/multi_group/arm2.png

133 KB
Loading

doc/multi_group/arm_joint.png

163 KB
Loading
307 KB
Loading
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
Run multiple robot arms
2+
===============================
3+
.. image:: multi_arm_tutorial.gif
4+
:width: 500px
5+
6+
7+
For running multiple robot arms in moveit, the following points need to be kept in mind -
8+
1. All robot arms should be defined in the same URDF.
9+
2. Each arm should have its own move_group.
10+
3. If arms need to move in sync, they can be defined in a combined move_group.
11+
12+
Robot model used
13+
----------------
14+
This tutorial will use the two panda arms for demonstration. The urdf of the two panda arms can be seen `here <https://github.com/frankaemika/franka_ros/blob/kinetic-devel/franka_description/robots/dual_panda_example.urdf.xacro>`_.
15+
16+
Configuring the robot through the setup assistant
17+
---------------------------------------------------
18+
19+
For moving the robot arms individually, we simply need to create two different move groups for each arm and then plan for the two groups separately. For synchronous movement, refer further down in the tutorial.
20+
21+
.. image:: arm1.png
22+
:width: 700px
23+
24+
Subsequently add the joints of each arm into their respective groups.
25+
26+
.. image:: arm_joint.png
27+
:width: 700px
28+
29+
30+
Moving the two arms in sync
31+
-----------------------------
32+
33+
For moving the two arms in sync we need to combine both the move groups into a common move group as shown below: ::
34+
35+
<group name="arm1">
36+
<joint name="panda_1_joint_base" />
37+
<joint name="panda_1_joint1" />
38+
<joint name="panda_1_joint2" />
39+
<joint name="panda_1_joint3" />
40+
<joint name="panda_1_joint4" />
41+
<joint name="panda_1_joint5" />
42+
<joint name="panda_1_joint6" />
43+
<joint name="panda_1_joint7" />
44+
<joint name="panda_1_joint8" />
45+
</group>
46+
<group name="arm2">
47+
<joint name="panda_2_joint_base" />
48+
<joint name="panda_2_joint1" />
49+
<joint name="panda_2_joint2" />
50+
<joint name="panda_2_joint3" />
51+
<joint name="panda_2_joint4" />
52+
<joint name="panda_2_joint5" />
53+
<joint name="panda_2_joint6" />
54+
<joint name="panda_2_joint7" />
55+
<joint name="panda_2_joint8" />
56+
</group>
57+
<group name="both_arm">
58+
<group name="arm1"/>
59+
<group name="arm2"/>
60+
</group>
61+
62+
Moving multiple arms asynchronously
63+
--------------------------------------
64+
65+
As of now, there is no accepted method provided by moveit to move multiple arms asynchronously. For more details kindly refer to this `issue <https://github.com/ros-planning/moveit/issues/2287>`_.

0 commit comments

Comments
 (0)