controllerclientcpp  0.6.1
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義 ページ
handeyecalibrationtask.h
説明を見る。
1 // -*- coding: utf-8 -*-
2 // Copyright (C) 2012-2013 MUJIN Inc. <rosen.diankov@mujin.co.jp>
3 //
4 // Licensed under the Apache License, Version 2.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 #ifndef MUJIN_CONTROLLERCLIENT_HANDEYECALIBRATIONTASK_H
15 #define MUJIN_CONTROLLERCLIENT_HANDEYECALIBRATIONTASK_H
16 
18 
19 namespace mujinclient {
20 
22 class MUJINCLIENT_API HandEyeCalibrationTaskParameters
23 {
24 public:
26  SetDefaults();
27  }
28 
29  virtual void SetDefaults();
30 
31  std::string command;
32  std::string cameraname;
33  std::vector<Real> halconpatternparameters;
34 
35  std::vector<Real> conedirection;
38  std::vector<Real> distances;
39 
41 
42  std::string toolname;
44  std::string targetarea;
45  std::string samplingmethod;
46 
47  /*
48  goals["command"] = "ComputeCalibrationPoses"
49  goals["cameraname"] = "camera2"
50  goals["halconpatternparameters"] = [7, 7, 0.015875, 0.5]
51  goals["patternvisibility"] = {"conedirection": [0, 0, -1], "coneangle" : 45, "orientationdensity" : 1, "distances": [0.6, 0.9, 0.1]}
52  goals["numsamples"] = 15
53  goals["patternposition"] = {"toolname": "Flange", "translation": [-170,0,0], "axisangle": [0,0,-numpy.pi/2]}
54  */
55 };
56 
58 typedef boost::shared_ptr<HandEyeCalibrationTaskResource> HandEyeCalibrationTaskResourcePtr;
59 typedef boost::weak_ptr<HandEyeCalibrationTaskResource> HandEyeCalibrationTaskResourceWeakPtr;
60 
62 {
63 public:
65  {
66 public:
67  std::vector<std::vector<Real> > poses;
68  std::vector<std::vector<Real> > configs;
69  std::vector<int> jointindices;
70  };
71 
72  HandEyeCalibrationResultResource(ControllerClientPtr controller, const std::string& pk);
74  }
75 
76  void GetCalibrationPoses(HandEyeCalibrationResultResource::CalibrationResult& result);
77 };
78 typedef boost::shared_ptr<HandEyeCalibrationResultResource> HandEyeCalibrationResultResourcePtr;
79 
80 class MUJINCLIENT_API HandEyeCalibrationTaskResource : public TaskResource
81 {
82 public:
83  HandEyeCalibrationTaskResource(const std::string& taskname, ControllerClientPtr controller, SceneResourcePtr scene);
84 
86  }
87 
88  virtual void ComputeCalibrationPoses(int timeout, HandEyeCalibrationTaskParameters& params, HandEyeCalibrationResultResource::CalibrationResult& result);
89  virtual PlanningResultResourcePtr GetResult();
90 
92  virtual void GetTaskParameters(HandEyeCalibrationTaskParameters& taskparameters);
93 
95  virtual void SetTaskParameters(const HandEyeCalibrationTaskParameters& taskparameters);
96 private:
97  std::string _GetOrCreateTaskAndGetPk(SceneResourcePtr scene, const std::string& taskname);
98  std::string _taskname;
99 };
100 
101 }
102 
103 #endif