- 作者
- Rosen Diankov
Shows how to load a robot into the openrave environment and start a viewer in a separate thread.
Usage:
orloadviewer [--num n] [--scene filename] viewername
- –num - Number of environments/viewers to create simultaneously
- –scene - The filename of the scene to load.
Example:
./orloadviewer --scene data/lab1.env.xml qtcoin
Full Example Code:
#include <vector>
#include <cstring>
#include <sstream>
#include <boost/thread/thread.hpp>
#include <boost/bind.hpp>
using namespace OpenRAVE;
using namespace std;
{
BOOST_ASSERT(!!viewer);
penv->Add(viewer);
bool showgui = true;
viewer->main(showgui);
}
int main(
int argc,
char ** argv)
{
string scenefilename = "data/lab1.env.xml";
string viewername = "qtcoin";
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)) {
RAVELOG_INFO(
"orloadviewer [--num n] [--scene filename] viewername\n");
return 0;
}
else if( strcmp(argv[i], "--scene") == 0 ) {
scenefilename = argv[i+1];
i += 2;
}
else
break;
}
if( i < argc ) {
viewername = argv[i++];
}
boost::thread thviewer(boost::bind(
SetViewer,penv,viewername));
penv->Load(scenefilename);
thviewer.join();
penv->Destroy();
return 0;
}