8 #include <boost/thread/thread.hpp>
12 using namespace mujinclient;
14 int main(
int argc,
char ** argv)
17 std::cout <<
"need username:password. Example: mujinclienttest myuser:mypass [url]\n\nurl - [optional] For example https://controller.mujin.co.jp/" << std::endl;
30 else if( argc == 3 ) {
36 std::cout <<
"connected to controller v" << controller->GetVersion() << std::endl;
38 controller->SetDefaultSceneType(
"wincaps");
39 controller->SetDefaultTaskType(
"itlplanning");
40 controller->SetLanguage(
"ja");
42 std::string sceneuri =
"mujin:/vs060a3_test0/test0.WPJ";
43 std::string scenepk = controller->GetScenePrimaryKeyFromURI_UTF8(sceneuri);
46 controller->SyncUpload_UTF8(
"../share/mujincontrollerclient/densowave_wincaps_data/vs060a3_test0/test0.WPJ",
"mujin:/vs060a3_test0/",
"wincaps");
49 SceneResourcePtr scene = controller->RegisterScene_UTF8(sceneuri,
"wincaps");
53 TaskResourcePtr task = scene->GetOrCreateTaskFromName_UTF8(
"grabtest",
"itlplanning");
57 task->GetTaskParameters(taskparameters);
59 task->SetTaskParameters(taskparameters);
64 std::cout <<
"waiting for task result" << std::endl;
68 int iterations = 0, maxiterations = 4000;
70 result = task->GetResult();
74 task->GetRunTimeStatus(status);
75 std::cout <<
"current job status=" << status.
code <<
": " << status.
message << std::endl;
81 if( iterations > 3 ) {
82 std::cout <<
"task won't start for some reason" << std::endl;
87 std::cout <<
"task failed execution " << std::endl;
91 std::cout <<
"unexpected job status so quitting " << std::endl;
95 boost::this_thread::sleep(boost::posix_time::milliseconds(5000));
97 if( iterations > maxiterations ) {
98 controller->CancelAllJobs();
103 std::string errormessage = result->Get(
"errormessage");
104 if( errormessage.size() > 0 ) {
105 std::cout <<
"task failed with: " << errormessage << std::endl;
111 result->GetPrograms(programs);
112 std::cout <<
"found " << programs.
programs.size() <<
" programs" << std::endl;
113 for(std::map<std::string, RobotProgramData>::iterator it = programs.
programs.begin(); it != programs.
programs.end(); ++it ) {
114 std::cout <<
"[" << it->first <<
"]" << std::endl << it->second.programdata << std::endl << std::endl;
116 std::string sOriginalTaskTime = result->Get(
"task_time");
117 std::cout <<
"final task_time is " << sOriginalTaskTime << std::endl;
124 optparams.
unit =
"mm";
142 optimization->SetOptimizationParameters(optparams);
144 optimization->Execute();
146 std::vector< PlanningResultResourcePtr > results;
150 optimization->GetRunTimeStatus (status);
152 std::cout <<
"current job status=" << status.
code <<
": " << status.
message << std::endl;
158 if( iterations > 3 ) {
159 std::cout <<
"task won't start for some reason" << std::endl;
164 std::cout <<
"task failed execution " << std::endl;
168 std::cout <<
"unexpected job status so quitting " << std::endl;
172 optimization->GetResults(results, 0, 1);
173 if( results.size() > 0 ) {
174 std::cout <<
"top result task_time=" << results.at(0)->Get(
"task_time") <<
" seconds, original task = " << sOriginalTaskTime <<
" seconds" << std::endl;
176 boost::this_thread::sleep(boost::posix_time::milliseconds(5000));
179 if( iterations > maxiterations ) {
180 controller->CancelAllJobs();
185 std::cout <<
"optimiation completed!" << std::endl;
188 std::cout <<
"exception thrown: " << ex.
message() << std::endl;