|
From: <rdi...@us...> - 2008-12-17 08:32:35
|
Revision: 8251
http://personalrobots.svn.sourceforge.net/personalrobots/?rev=8251&view=rev
Author: rdiankov
Date: 2008-12-17 08:32:24 +0000 (Wed, 17 Dec 2008)
Log Message:
-----------
several bug fixes/feature additions for openraveros server, added pr2_gripper robot-model generation, beginning of manipulation scripts in ormanipulation package
Modified Paths:
--------------
pkg/trunk/3rdparty/openrave/Makefile
pkg/trunk/openrave_planning/openraveros/msg/RobotInfo.msg
pkg/trunk/openrave_planning/openraveros/octave/openraveros_getrobotinfo.m
pkg/trunk/openrave_planning/openraveros/octave/openraveros_startup.m
pkg/trunk/openrave_planning/openraveros/octave/orEnvLoadScene.m
pkg/trunk/openrave_planning/openraveros/src/openraveros.cpp
pkg/trunk/openrave_planning/openraveros/src/rosserver.h
pkg/trunk/openrave_planning/openraveros/src/session.h
pkg/trunk/openrave_planning/orcollision/orcollision.cpp
pkg/trunk/robot_descriptions/openrave_robot_description/CMakeLists.txt
pkg/trunk/robot_descriptions/wg_robot_description/CMakeLists.txt
Added Paths:
-----------
pkg/trunk/openrave_planning/ormanipulation/
pkg/trunk/openrave_planning/ormanipulation/data/
pkg/trunk/openrave_planning/ormanipulation/data/pr2table.env.xml
pkg/trunk/openrave_planning/ormanipulation/data/pr2table_real.env.xml
pkg/trunk/openrave_planning/ormanipulation/data/ricebox.kinbody.xml
pkg/trunk/openrave_planning/ormanipulation/data/riceboxf.kinbody.xml
pkg/trunk/openrave_planning/ormanipulation/data/willow_table.kinbody.xml
pkg/trunk/openrave_planning/ormanipulation/manifest.xml
pkg/trunk/openrave_planning/ormanipulation/octave/
pkg/trunk/openrave_planning/ormanipulation/startopenrave.ros.xml
Modified: pkg/trunk/3rdparty/openrave/Makefile
===================================================================
--- pkg/trunk/3rdparty/openrave/Makefile 2008-12-17 08:26:44 UTC (rev 8250)
+++ pkg/trunk/3rdparty/openrave/Makefile 2008-12-17 08:32:24 UTC (rev 8251)
@@ -2,7 +2,7 @@
SVN_DIR = openrave_svn
# Should really specify a revision
-SVN_REVISION = -r 560
+SVN_REVISION = -r 562
SVN_URL = https://openrave.svn.sourceforge.net/svnroot/openrave
include $(shell rospack find mk)/svn_checkout.mk
Modified: pkg/trunk/openrave_planning/openraveros/msg/RobotInfo.msg
===================================================================
--- pkg/trunk/openrave_planning/openraveros/msg/RobotInfo.msg 2008-12-17 08:26:44 UTC (rev 8250)
+++ pkg/trunk/openrave_planning/openraveros/msg/RobotInfo.msg 2008-12-17 08:32:24 UTC (rev 8251)
@@ -7,6 +7,9 @@
# total active dof
uint8 activedof
+# current active manipulator
+uint8 activemanip
+
# information about the active dofs
ActiveDOFs active
Modified: pkg/trunk/openrave_planning/openraveros/octave/openraveros_getrobotinfo.m
===================================================================
--- pkg/trunk/openrave_planning/openraveros/octave/openraveros_getrobotinfo.m 2008-12-17 08:26:44 UTC (rev 8250)
+++ pkg/trunk/openrave_planning/openraveros/octave/openraveros_getrobotinfo.m 2008-12-17 08:32:24 UTC (rev 8251)
@@ -26,6 +26,7 @@
'type',si.type);
end
+robot.activemanip = robotinfo.activemanip+1;
robot.activedof = robotinfo.activedof;
robot.affinedof = robotinfo.active.affine;
robot.activejoints = robotinfo.active.joints;
Modified: pkg/trunk/openrave_planning/openraveros/octave/openraveros_startup.m
===================================================================
--- pkg/trunk/openrave_planning/openraveros/octave/openraveros_startup.m 2008-12-17 08:26:44 UTC (rev 8250)
+++ pkg/trunk/openrave_planning/openraveros/octave/openraveros_startup.m 2008-12-17 08:32:24 UTC (rev 8251)
@@ -35,7 +35,6 @@
end
if( isempty(openraveros_initialized))
- openraveros_initialized = 1;
[status,rosoctpath] = system('rospack find rosoct');
rosoctpath = strtrim(rosoctpath);
addpath(fullfile(rosoctpath,'octave'));
@@ -44,6 +43,7 @@
rosoct_add_srvs('openraveros');
rosoct('shutdown'); % restart the client
+ openraveros_initialized = 1;
end
if( ~exist('sessionserver','var') )
Modified: pkg/trunk/openrave_planning/openraveros/octave/orEnvLoadScene.m
===================================================================
--- pkg/trunk/openrave_planning/openraveros/octave/orEnvLoadScene.m 2008-12-17 08:26:44 UTC (rev 8250)
+++ pkg/trunk/openrave_planning/openraveros/octave/orEnvLoadScene.m 2008-12-17 08:32:24 UTC (rev 8251)
@@ -8,7 +8,7 @@
% scene alone and loads in addition to it.
function success = orEnvLoadScene(filename, ClearScene)
-session = openraveros_getglobalsession()
+session = openraveros_getglobalsession();
req = openraveros_env_loadscene();
req.filename = filename;
if( exist('ClearScene','var') )
Modified: pkg/trunk/openrave_planning/openraveros/src/openraveros.cpp
===================================================================
--- pkg/trunk/openrave_planning/openraveros/src/openraveros.cpp 2008-12-17 08:26:44 UTC (rev 8250)
+++ pkg/trunk/openrave_planning/openraveros/src/openraveros.cpp 2008-12-17 08:32:24 UTC (rev 8251)
@@ -32,8 +32,76 @@
boost::shared_ptr<ros::node> s_pmasternode;
boost::shared_ptr<SessionServer> s_sessionserver;
+void printhelp()
+{
+ wprintf(L"openraveros [--list] [--debuglevel [level]]\n"
+ " Starts the OpenRAVE ROS server\n"
+ "--list List all the loadable interfaces (ie, collision checkers).\n"
+ "-d, --debuglevel [level] Set a debug level, higher numbers are more verbose (default is 3)\n");
+}
+
+void printinterfaces(EnvironmentBase* penv)
+{
+ PLUGININFO info;
+ penv->GetLoadedInterfaces(info);
+
+ vector<wstring>::const_iterator itnames;
+ vector<string> names;
+ vector<string>::iterator itname;
+ wstringstream ss;
+
+ ss << endl << L"Loadable interfaces: " << endl;
+
+ ss << L"Collision Checkers (" << info.collisioncheckers.size() << "):" << endl;
+ for(itnames = info.collisioncheckers.begin(); itnames != info.collisioncheckers.end(); ++itnames)
+ ss << " " << itnames->c_str() << endl;
+
+ ss << L"Controllers (" << info.controllers.size() << "):" << endl;
+ for(itnames = info.controllers.begin(); itnames != info.controllers.end(); ++itnames)
+ ss << " " << itnames->c_str() << endl;
+
+ ss << L"Inverse Kinematics Solvers (" << info.iksolvers.size() << "):" << endl;
+ for(itnames = info.iksolvers.begin(); itnames != info.iksolvers.end(); ++itnames)
+ ss << " " << itnames->c_str() << endl;
+
+ ss << L"Physics Engines (" << info.physicsengines.size() << "):" << endl;
+ for(itnames = info.physicsengines.begin(); itnames != info.physicsengines.end(); ++itnames)
+ ss << " " << itnames->c_str() << endl;
+
+ ss << L"Planners (" << info.planners.size() << "):" << endl;
+ for(itnames = info.planners.begin(); itnames != info.planners.end(); ++itnames)
+ ss << " " << itnames->c_str() << endl;
+
+ ss << L"Problems (" << info.problems.size() << "):" << endl;
+ for(itnames = info.problems.begin(); itnames != info.problems.end(); ++itnames)
+ ss << " " << itnames->c_str() << endl;
+
+ ss << L"Robots (" << info.robots.size() << "):" << endl;
+ for(itnames = info.robots.begin(); itnames != info.robots.end(); ++itnames)
+ ss << " " << itnames->c_str() << endl;
+
+ ss << L"Sensors (" << info.sensors.size() << "):" << endl;
+ for(itnames = info.sensors.begin(); itnames != info.sensors.end(); ++itnames)
+ ss << " " << itnames->c_str() << endl;
+
+ ss << L"Sensor Systems (" << info.sensorsystems.size() << "):" << endl;
+ for(itnames = info.sensorsystems.begin(); itnames != info.sensorsystems.end(); ++itnames)
+ ss << " " << itnames->c_str() << endl;
+
+ ss << L"Trajectories (" << info.trajectories.size() << "):" << endl;
+ for(itnames = info.trajectories.begin(); itnames != info.trajectories.end(); ++itnames)
+ ss << " " << itnames->c_str() << endl;
+
+ wprintf(ss.str().c_str());
+}
+
int main(int argc, char ** argv)
{
+ // Set up the output streams to support wide characters
+ if (fwide(stdout,1) < 0) {
+ printf("Unable to set stdout to wide characters\n");
+ }
+
signal(SIGINT,sigint_handler); // control C
ros::init(argc,argv);
@@ -46,7 +114,30 @@
if( !s_sessionserver->Init() )
return -1;
- s_sessionserver->spin();
+ // parse the command line options
+ bool bExit = false;
+ int i = 1;
+ while(i < argc) {
+ if( strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "-?") == 0 || strcmp(argv[i], "/?") == 0 || strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "-help") == 0 ) {
+ printhelp();
+ bExit = true;
+ break;
+ }
+ else if( strcmp(argv[i], "--debuglevel") == 0 || strcmp(argv[i], "-d") == 0 ) {
+ RaveSetDebugLevel((DebugLevel)atoi(argv[i+1]));
+ i += 2;
+ }
+ else if( strcmp(argv[i], "--list") == 0 ) {
+ printinterfaces(s_sessionserver->GetParentEnvironment().get());
+ bExit = true;
+ break;
+ }
+ else
+ break;
+ }
+
+ if( !bExit )
+ s_sessionserver->spin();
s_sessionserver.reset();
ros::fini();
s_pmasternode.reset();
Modified: pkg/trunk/openrave_planning/openraveros/src/rosserver.h
===================================================================
--- pkg/trunk/openrave_planning/openraveros/src/rosserver.h 2008-12-17 08:26:44 UTC (rev 8250)
+++ pkg/trunk/openrave_planning/openraveros/src/rosserver.h 2008-12-17 08:32:24 UTC (rev 8251)
@@ -158,6 +158,7 @@
}
virtual ~ROSServer() {
Destroy();
+ GetEnv()->AttachServer(NULL);
}
virtual void Destroy()
@@ -733,6 +734,7 @@
FillKinBodyInfo(probot,info.bodyinfo,options);
info.activedof = probot->GetActiveDOF();
+ info.activemanip = probot->GetActiveManipulatorIndex();
if( options & RobotInfo::Req_Manipulators ) {
info.manips.resize(probot->GetManipulators().size()); int index = 0;
Modified: pkg/trunk/openrave_planning/openraveros/src/session.h
===================================================================
--- pkg/trunk/openrave_planning/openraveros/src/session.h 2008-12-17 08:26:44 UTC (rev 8250)
+++ pkg/trunk/openrave_planning/openraveros/src/session.h 2008-12-17 08:32:24 UTC (rev 8251)
@@ -36,7 +36,7 @@
{ \
SessionState state = getstate(req); /* need separate copy in order to guarantee thread safety */ \
if( !state._pserver ) { \
- ROS_INFO("failed to find session for service %s", #srvname); \
+ RAVELOG_INFOA("failed to find session for service %s", #srvname); \
return false; \
} \
return state._pserver->srvname##_srv(req,res); \
@@ -250,6 +250,8 @@
return !!_pviewer;
}
+ boost::shared_ptr<EnvironmentBase> GetParentEnvironment() const { return _pParentEnvironment; }
+
private:
map<int,SessionState> _mapsessions;
boost::mutex _mutexsession;
@@ -328,7 +330,7 @@
boost::mutex::scoped_lock lock(_mutexsession);
if( _mapsessions.find(req.sessionid) != _mapsessions.end() ) {
_mapsessions.erase(req.sessionid);
- ROS_INFO("destroyed openrave session: %d", req.sessionid);
+ RAVELOG_INFOA("destroyed openrave session: %d", req.sessionid);
return true;
}
@@ -350,14 +352,14 @@
}
if( !clonestate._penv )
- ROS_INFO("failed to find session %d", req.clone_sessionid);
+ RAVELOG_INFOA("failed to find session %d", req.clone_sessionid);
else
state._penv.reset(clonestate._penv->CloneSelf(req.clone_options));
}
if( !state._penv ) {
// cloning from parent
- ROS_DEBUG("cloning from parent");
+ RAVELOG_DEBUGA("cloning from parent");
state._penv.reset(_pParentEnvironment->CloneSelf(0));
}
@@ -366,7 +368,7 @@
_mapsessions[id] = state;
res.sessionid = id;
- ROS_INFO("started openrave session: %d, total: %d", id, _mapsessions.size());
+ RAVELOG_INFOA("started openrave session: %d, total: %d", id, _mapsessions.size());
return true;
}
Modified: pkg/trunk/openrave_planning/orcollision/orcollision.cpp
===================================================================
--- pkg/trunk/openrave_planning/orcollision/orcollision.cpp 2008-12-17 08:26:44 UTC (rev 8250)
+++ pkg/trunk/openrave_planning/orcollision/orcollision.cpp 2008-12-17 08:32:24 UTC (rev 8251)
@@ -137,7 +137,7 @@
printf("or_collision [--list] [--checker checker_name] [--joints #values [values]] robot_model\n"
" Load a robot into the openrave environment, set it at [joint values] and\n"
" check for self collisions. Returns number of contact points.\n"
- "--list Will list all the loadable interfaces (ie, collision checkers).\n"
+ "--list List all the loadable interfaces (ie, collision checkers).\n"
"--checker name Load a different collision checker instead of the default one\n"
"--joints #values [values] Set the robot to specific joint values\n");
}
Added: pkg/trunk/openrave_planning/ormanipulation/data/pr2table.env.xml
===================================================================
--- pkg/trunk/openrave_planning/ormanipulation/data/pr2table.env.xml (rev 0)
+++ pkg/trunk/openrave_planning/ormanipulation/data/pr2table.env.xml 2008-12-17 08:32:24 UTC (rev 8251)
@@ -0,0 +1,44 @@
+<Environment>
+ <bkgndcol>0.3 0.7 0.8</bkgndcol>
+ <camtrans>0.792115 1.544696 2.088982</camtrans>
+ <camrotaxis>-0.092050 -0.490650 -0.866481 211</camrotaxis>
+
+ <Robot file="robots/pr2full.robot.xml">
+ <translation>-0.708 0.005 0.012</translation>
+ <jointvalues> 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 1.582704 1.081165 0.000000 2.299995 -0.000000 0.000000 0.000000 -0.000000 0.000000 0.000000 0.000000 0.000000 0.000000 -0.979114 -0.400000 0.000000 1.535151 0.000000 0.000000 0.000000 0.000000 0.000000</jointvalues>
+ </Robot>
+
+ <Kinbody name="floor">
+ <Body>
+ <Geom type="box">
+ <extents>4 4 0.01</extents>
+ <translation>0 0 -0.01</translation>
+ <diffusecolor>0.8 0.6 0.1</diffusecolor>
+ </Geom>
+ </Body>
+ </Kinbody>
+
+ <Kinbody file="willow_table.kinbody.xml"/>
+
+ <Kinbody name="floor">
+ <Body>
+ <Geom type="box">
+ <extents>2 2 0.01</extents>
+ <translation>0 0 -0.01</translation>
+ <diffusecolor>0.8 0.6 0.1</diffusecolor>
+ </Geom>
+ </Body>
+ </Kinbody>
+
+ <Kinbody name="ricebox0" file="ricebox.kinbody.xml">
+ <translation>-0.1728 -0.41104 0.747</translation>
+ </Kinbody>
+ <Kinbody name="ricebox1" file="ricebox.kinbody.xml">
+ <rotationmat>0.7917 -0.61092 0 0.61092 0.7917 0 0 0 1</rotationmat>
+ <translation>-0.04727 -0.36746 0.747</translation>
+ </Kinbody>
+ <Kinbody name="ricebox2" file="ricebox.kinbody.xml">
+ <rotationmat>1 0 0 0 0 -1 0 1 0</rotationmat>
+ <translation>-0.177 -0.10672 0.807</translation>
+ </Kinbody>
+</Environment>
Added: pkg/trunk/openrave_planning/ormanipulation/data/pr2table_real.env.xml
===================================================================
--- pkg/trunk/openrave_planning/ormanipulation/data/pr2table_real.env.xml (rev 0)
+++ pkg/trunk/openrave_planning/ormanipulation/data/pr2table_real.env.xml 2008-12-17 08:32:24 UTC (rev 8251)
@@ -0,0 +1,19 @@
+<Environment>
+ <bkgndcol>0.3 0.7 0.8</bkgndcol>
+ <camtrans>0.792115 1.544696 2.088982</camtrans>
+ <camrotaxis>-0.092050 -0.490650 -0.866481 211</camrotaxis>
+
+ <Robot file="robots/pr2full.robot.xml">
+ <translation>-0.708 0.005 0.0</translation>
+ </Robot>
+
+ <Kinbody name="floor">
+ <Body>
+ <Geom type="box">
+ <extents>4 4 0.01</extents>
+ <translation>0 0 -0.01</translation>
+ <diffusecolor>0.8 0.6 0.1</diffusecolor>
+ </Geom>
+ </Body>
+ </Kinbody>
+</Environment>
Added: pkg/trunk/openrave_planning/ormanipulation/data/ricebox.kinbody.xml
===================================================================
--- pkg/trunk/openrave_planning/ormanipulation/data/ricebox.kinbody.xml (rev 0)
+++ pkg/trunk/openrave_planning/ormanipulation/data/ricebox.kinbody.xml 2008-12-17 08:32:24 UTC (rev 8251)
@@ -0,0 +1,9 @@
+<Kinbody name="ricebox">
+ <Body>
+ <Geom type="box">
+ <extents>0.03 0.0525 0.1125</extents>
+ <translation>0 0 0.1125</translation>
+ <diffusecolor>0.1 0.6 1</diffusecolor>
+ </Geom>
+ </Body>
+</Kinbody>
Added: pkg/trunk/openrave_planning/ormanipulation/data/riceboxf.kinbody.xml
===================================================================
--- pkg/trunk/openrave_planning/ormanipulation/data/riceboxf.kinbody.xml (rev 0)
+++ pkg/trunk/openrave_planning/ormanipulation/data/riceboxf.kinbody.xml 2008-12-17 08:32:24 UTC (rev 8251)
@@ -0,0 +1,9 @@
+<Kinbody name="ricebox">
+ <Body>
+ <Geom type="box">
+ <extents>0.04 0.06 0.12</extents>
+ <translation>0 0 0.1125</translation>
+ <diffusecolor>0.1 0.6 1</diffusecolor>
+ </Geom>
+ </Body>
+</Kinbody>
Added: pkg/trunk/openrave_planning/ormanipulation/data/willow_table.kinbody.xml
===================================================================
--- pkg/trunk/openrave_planning/ormanipulation/data/willow_table.kinbody.xml (rev 0)
+++ pkg/trunk/openrave_planning/ormanipulation/data/willow_table.kinbody.xml 2008-12-17 08:32:24 UTC (rev 8251)
@@ -0,0 +1,16 @@
+<KinBody name="willow_table">
+ <Body>
+ <Geom type="box">
+ <extents>0.38 0.62 0.035</extents>
+ <translation>0 0 0.711</translation>
+ </Geom>
+ <Geom type="box">
+ <extents>0.14 0.015 0.35</extents>
+ <translation>0 -0.555 0.35</translation>
+ </Geom>
+ <Geom type="box">
+ <extents>0.14 0.015 0.35</extents>
+ <translation>0 0.555 0.35</translation>
+ </Geom>
+ </Body>
+</KinBody>
Added: pkg/trunk/openrave_planning/ormanipulation/manifest.xml
===================================================================
--- pkg/trunk/openrave_planning/ormanipulation/manifest.xml (rev 0)
+++ pkg/trunk/openrave_planning/ormanipulation/manifest.xml 2008-12-17 08:32:24 UTC (rev 8251)
@@ -0,0 +1,10 @@
+<package>
+ <description brief="OpenRAVE Manipulation">
+ Scripts to perform manipulation tasks and other contains data resources.
+ </description>
+ <author>Rosen Diankov (rdi...@cs...)</author>
+ <license>BSD</license>
+ <depend package="boost"/>
+ <depend package="openraveros"/>
+ <depend package="orplugins"/>
+</package>
Added: pkg/trunk/openrave_planning/ormanipulation/startopenrave.ros.xml
===================================================================
--- pkg/trunk/openrave_planning/ormanipulation/startopenrave.ros.xml (rev 0)
+++ pkg/trunk/openrave_planning/ormanipulation/startopenrave.ros.xml 2008-12-17 08:32:24 UTC (rev 8251)
@@ -0,0 +1,7 @@
+<launch>
+ <!-- start openraveros server and set all the correct paths -->
+ <node pkg="openraveros" type="openraveros">
+ <env name="OPENRAVE_DATA" value="$(env OPENRAVE_DATA):$(find openrave)/share/openrave:$(find openrave_robot_description):$(find ormanipulation)"/>
+ <env name="OPENRAVE_PLUGINS" value="$(env OPENRAVE_PLUGINS):$(find openrave)/share/openrave/plugins:$(find orplugins)"/>
+ </node>
+</launch>
Modified: pkg/trunk/robot_descriptions/openrave_robot_description/CMakeLists.txt
===================================================================
--- pkg/trunk/robot_descriptions/openrave_robot_description/CMakeLists.txt 2008-12-17 08:26:44 UTC (rev 8250)
+++ pkg/trunk/robot_descriptions/openrave_robot_description/CMakeLists.txt 2008-12-17 08:32:24 UTC (rev 8251)
@@ -14,6 +14,8 @@
# process all urdf files
set(PR2_OUTPUT ${openrave_robot_description_PACKAGE_PATH}/robots/pr2.robot.xml)
set(PR2_INPUT ${wg_robot_description_PACKAGE_PATH}/pr2/pr2.xml)
+set(PR2_GRIPPER_OUTPUT ${openrave_robot_description_PACKAGE_PATH}/robots/pr2_gripper.robot.xml)
+set(PR2_GRIPPER_INPUT ${wg_robot_description_PACKAGE_PATH}/pr2_gripper/pr2_gripper.xml)
set(MODELS ${openrave_robot_description_PACKAGE_PATH}/models)
## create the models directory
@@ -27,7 +29,12 @@
COMMAND ${urdf2openrave_exe}
ARGS ${PR2_INPUT} ${PR2_OUTPUT} ../models
DEPENDS ${PR2_INPUT} ${MODELS} urdf2openrave)
-set(robot_files ${robot_files} ${PR2_OUTPUT})
+add_custom_command(
+ OUTPUT ${PR2_GRIPPER_OUTPUT}
+ COMMAND ${urdf2openrave_exe}
+ ARGS ${PR2_GRIPPER_INPUT} ${PR2_GRIPPER_OUTPUT} ../models
+ DEPENDS ${PR2_GRIPPER_INPUT} ${MODELS} urdf2openrave)
+set(robot_files ${robot_files} ${PR2_OUTPUT} ${PR2_GRIPPER_OUTPUT})
add_custom_target(urdf_robots ALL DEPENDS ${robot_files})
add_dependencies(urdf_robots urdf2openrave)
Modified: pkg/trunk/robot_descriptions/wg_robot_description/CMakeLists.txt
===================================================================
--- pkg/trunk/robot_descriptions/wg_robot_description/CMakeLists.txt 2008-12-17 08:26:44 UTC (rev 8250)
+++ pkg/trunk/robot_descriptions/wg_robot_description/CMakeLists.txt 2008-12-17 08:32:24 UTC (rev 8251)
@@ -38,6 +38,13 @@
ARGS ${pr2arm}.xacro.xml > ${pr2arm}.xml
DEPENDS ${pr2arm}.xacro.xml)
+set(pr2gripper "${CMAKE_CURRENT_SOURCE_DIR}/pr2_gripper/pr2_gripper")
+add_custom_command(
+ OUTPUT ${pr2gripper}.xml
+ COMMAND ${xacro_PACKAGE_PATH}/xacro.py
+ ARGS ${pr2gripper}.xacro.xml > ${pr2gripper}.xml
+ DEPENDS ${pr2gripper}.xacro.xml)
+
#iv files
# iterate through all the stl files and generate *.mesh and *.iv files
file(GLOB pr2_stl_files ${CMAKE_CURRENT_SOURCE_DIR}/models/pr2/*.stl)
@@ -58,4 +65,4 @@
endforeach(it)
-add_custom_target(media_files ALL DEPENDS ${pr2robot}.xml ${pr2prototype1}.xml ${pr2arm}.xml ${pr2_gen_files})
+add_custom_target(media_files ALL DEPENDS ${pr2robot}.xml ${pr2prototype1}.xml ${pr2arm}.xml ${pr2gripper}.xml ${pr2_gen_files})
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|