Skip to content

Commit 9396535

Browse files
committed
add YuMi SRDF w/ xacro build
1 parent 2c04a64 commit 9396535

File tree

2 files changed

+54
-15
lines changed

2 files changed

+54
-15
lines changed

yumi_description/CMakeLists.txt

+26-15
Original file line numberDiff line numberDiff line change
@@ -12,31 +12,42 @@ if(NOT YUMI_HARDWARE_INTERFACE)
1212
set(YUMI_HARDWARE_INTERFACE "EffortJointInterface")
1313
endif()
1414

15-
set(YUMI_XACRO ${CMAKE_CURRENT_SOURCE_DIR}/urdf/yumi.urdf.xacro)
1615
set(YUMI_URDF_DIR ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_SHARE_DESTINATION}/urdf)
16+
set(YUMI_URDF_XACRO ${CMAKE_CURRENT_SOURCE_DIR}/urdf/yumi.urdf.xacro)
1717
set(YUMI_URDF ${YUMI_URDF_DIR}/yumi.urdf)
18+
set(YUMI_SRDF_XACRO ${CMAKE_CURRENT_SOURCE_DIR}/urdf/yumi.srdf.xacro)
19+
set(YUMI_SRDF ${YUMI_URDF_DIR}/yumi.srdf)
1820

1921
file(MAKE_DIRECTORY "${YUMI_URDF_DIR}")
2022

2123
# Call out to xacro to get dependencies
22-
execute_process(COMMAND ${CATKIN_ENV} rosrun xacro xacro --deps ${YUMI_XACRO}
23-
ERROR_VARIABLE _xacro_err_ignore
24-
OUTPUT_VARIABLE _xacro_deps_result
25-
OUTPUT_STRIP_TRAILING_WHITESPACE)
24+
macro(build_xacro infile outfile argstring)
25+
execute_process(COMMAND ${CATKIN_ENV} rosrun xacro xacro --deps ${infile}
26+
ERROR_VARIABLE _xacro_err_ignore
27+
OUTPUT_VARIABLE _xacro_deps_result
28+
OUTPUT_STRIP_TRAILING_WHITESPACE)
2629

27-
separate_arguments(_xacro_deps_result)
30+
separate_arguments(_xacro_deps_result)
2831

29-
add_custom_command(OUTPUT ${YUMI_URDF}
30-
COMMENT "Generating YuMi URDF"
31-
COMMAND ${CATKIN_ENV} rosrun xacro xacro
32-
ARGS -o ${YUMI_URDF} ${YUMI_XACRO} ${_xacro_deps_result} prefix:=${YUMI_HARDWARE_INTERFACE}
33-
DEPENDS ${YUMI_XACRO} ${_xacro_deps_result})
32+
add_custom_command(OUTPUT ${outfile}
33+
COMMENT "Generating ${outfile}"
34+
COMMAND ${CATKIN_ENV} rosrun xacro xacro
35+
ARGS -o ${outfile} ${infile} ${_xacro_deps_result} ${argstring}
36+
DEPENDS ${infile} ${_xacro_deps_result})
37+
endmacro(build_xacro)
3438

35-
# add target to actually cause generation
36-
add_custom_target(description_files ALL DEPENDS ${YUMI_URDF})
39+
build_xacro(${YUMI_URDF_XACRO} ${YUMI_URDF} "prefix:=${YUMI_HARDWARE_INTERFACE}")
40+
build_xacro(${YUMI_SRDF_XACRO} ${YUMI_SRDF} "")
3741

38-
install(FILES ${YUMI_URDF}
39-
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/urdf/)
42+
# add target to actually cause generation
43+
add_custom_target(description_files ALL DEPENDS
44+
${YUMI_URDF}
45+
${YUMI_SRDF})
46+
47+
install(FILES
48+
${YUMI_URDF}
49+
${YUMI_SRDF}
50+
DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/urdf/)
4051

4152
install(
4253
DIRECTORY gazebo launch meshes

yumi_description/urdf/yumi.srdf.xacro

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<robot xmlns:xacro="http://www.ros.org/wiki/xacro" name="yumi">
2+
3+
<xacro:macro name="yumi_arm" params="side postfix">
4+
<group name="${side}">
5+
<chain base_link="yumi_body" tip_link="yumi_link_7_${postfix}"/>
6+
</group>
7+
8+
<group name="${side}_hand">
9+
<link name="gripper_${postfix}_base"/>
10+
<link name="gripper_${postfix}_finger_r"/>
11+
<link name="gripper_${postfix}_finger_l"/>
12+
</group>
13+
14+
<end_effector name="${side}_hand" group="${side}_hand"
15+
parent_link="yumi_link_7_${postfix}" parent_group="${side}"/>
16+
17+
<!-- Disable collisions between hand links -->
18+
<disable_collisions link1="gripper_${postfix}_base" link2="gripper_${postfix}_finger_r"/>
19+
<disable_collisions link1="gripper_${postfix}_base" link2="gripper_${postfix}_finger_l"/>
20+
<disable_collisions link1="gripper_${postfix}_finger_r" link2="gripper_${postfix}_finger_l"/>
21+
22+
<!-- Disable arm self-collisions -->
23+
<!-- TODO -->
24+
</xacro:macro>
25+
26+
<xacro:yumi_arm side="left" postfix="l"/>
27+
<xacro:yumi_arm side="right" postfix="r"/>
28+
</robot>

0 commit comments

Comments
 (0)