controllerclientcpp  0.6.1
 全て クラス ネームスペース ファイル 関数 変数 型定義 列挙型 列挙型の値 マクロ定義 ページ
構成 | Public 型 | Public メソッド | Protected 変数 | すべてのメンバ一覧
クラス mujinclient::BinPickingTaskResource

#include <binpickingtask.h>

mujinclient::BinPickingTaskResourceに対する継承グラフ
Inheritance graph
[凡例]
mujinclient::BinPickingTaskResourceのコラボレーション図
Collaboration graph
[凡例]

構成

struct  DetectedObject
struct  PointCloudObstacle
struct  ResultAABB
struct  ResultBase
struct  ResultGetBinpickingState
struct  ResultGetInstObjectAndSensorInfo
struct  ResultGetJointValues
struct  ResultGetPickedPositions
struct  ResultHeartBeat
struct  ResultIsRobotOccludingBody
struct  ResultMoveJoints
struct  ResultOBB
struct  ResultTransform
struct  SensorOcclusionCheck

Public 型

typedef boost::shared_ptr
< ResultBase
ResultBasePtr

Public メソッド

 BinPickingTaskResource (ControllerClientPtr controller, const std::string &pk, const std::string &scenepk, const std::string &tasktype="binpicking")
virtual ~BinPickingTaskResource ()
virtual void Initialize (const std::string &defaultTaskParameters, const double commandtimeout=0, const std::string &userinfo="{}", const std::string &slaverequestid="")
 Initializes binpicking task.
virtual boost::property_tree::ptree ExecuteCommand (const std::string &command, const double timeout=0.0, const bool getresult=true)
virtual void GetJointValues (ResultGetJointValues &result, const double timeout=0)
virtual void MoveJoints (const std::vector< Real > &jointvalues, const std::vector< int > &jointindices, const Real envclearance, const Real speed, ResultMoveJoints &result, const double timeout=0)
virtual void GetTransform (const std::string &targetname, Transform &result, const std::string &unit="mm", const double timeout=0)
virtual void SetTransform (const std::string &targetname, const Transform &transform, const std::string &unit="mm", const double timeout=0)
virtual void GetManipTransformToRobot (Transform &result, const std::string &unit="mm", const double timeout=0)
virtual void GetManipTransform (Transform &result, const std::string &unit="mm", const double timeout=0)
virtual void GetAABB (const std::string &targetname, ResultAABB &result, const std::string &unit="mm", const double timeout=0)
virtual void GetOBB (ResultOBB &result, const std::string &targetname, const std::string &linkname="", const std::string &unit="mm", const double timeout=0)
virtual void GetInnerEmptyRegionOBB (ResultOBB &result, const std::string &targetname, const std::string &linkname="", const std::string &unit="mm", const double timeout=0)
virtual void UpdateObjects (const std::string &basename, const std::vector< Transform > &transformsworld, const std::vector< std::string > &confidence, const std::string &state, const std::string &unit="mm", const double timeout=0)
 Update objects in the scene.
virtual void InitializeZMQ (const double reinitializetimeout=0, const double timeout=0)
 Establish ZMQ connection to the task.
virtual void AddPointCloudObstacle (const std::vector< Real > &vpoints, const Real pointsize, const std::string &name, const unsigned long long starttimestamp=0, const unsigned long long endtimestamp=0, const bool executionverification=false, const std::string &unit="mm", int isoccluded=-1, const double timeout=0)
 Add a point cloud collision obstacle with name to the environment.
virtual void UpdateEnvironmentState (const std::string &objectname, const std::vector< DetectedObject > &detectedobjects, const std::vector< Real > &vpoints, const std::string &resultstate, const Real pointsize, const std::string &pointcloudobstaclename, const std::string &unit="mm", const double timeout=0)
virtual void VisualizePointCloud (const std::vector< std::vector< Real > > &pointslist, const Real pointsize, const std::vector< std::string > &names, const std::string &unit="m", const double timeout=0)
 Visualize point cloud on controller.
virtual void ClearVisualization (const double timeout=0)
 Clear visualization made by VisualizePointCloud.
virtual void IsRobotOccludingBody (const std::string &bodyname, const std::string &sensorname, const unsigned long long starttime, const unsigned long long endtime, bool &result, const double timeout=0)
 Check if robot is occluding the object in the view of sensor between starttime and endtime.
virtual void GetPickedPositions (ResultGetPickedPositions &result, const std::string &unit="m", const double timeout=0)
 Get the picked positions with corresponding timestamps.
virtual PlanningResultResourcePtr GetResult ()
 gets the result of the task execution. If no result has been computed yet, will return a NULL pointer.
virtual void GetInstObjectAndSensorInfo (const std::vector< std::string > &instobjectnames, const std::vector< std::string > &sensornames, ResultGetInstObjectAndSensorInfo &result, const std::string &unit="m", const double timeout=0)
 Gets inst object.
virtual void GetBinpickingState (ResultGetBinpickingState &result, const std::string &robotname, const std::string &unit="m", const double timeout=0)
 Get state of bin picking.
virtual void GetPublishedTaskState (ResultGetBinpickingState &result, const std::string &robotname, const std::string &unit="m", const double timeout=0)
 Get published state of bin picking except for initial call, this returns cached value.
virtual void SetJogModeVelocities (const std::string &jogtype, const std::vector< int > &movejointsigns, const std::string &robotname="", const std::string &toolname="", const double robotspeed=-1, const double robotaccelmult=-1.0, const double timeout=1)
 Jogs robot in joint or tool space.
virtual void MoveToolLinear (const std::string &goaltype, const std::vector< double > &goals, const std::string &robotname="", const std::string &toolname="", const double robotspeed=-1, const double timeout=10)
 Moves hand to specified posistion linearly.
virtual void MoveToHandPosition (const std::string &goaltype, const std::vector< double > &goals, const std::string &robotname="", const std::string &toolname="", const double robotspeed=-1, const double timeout=10)
 Moves hand to specified posistion.
virtual void _HeartbeatMonitorThread (const double reinitializetimeout, const double commandtimeout)
 Monitors heartbeat signals from a running binpicking ZMQ server, and reinitializes the ZMQ server when heartbeat is lost.
virtual const std::string & GetSlaveRequestId () const
 returns the slaverequestid used to communicate with the controller. If empty, then no id is used.
- Public メソッド inherited from mujinclient::TaskResource
 TaskResource (ControllerClientPtr controller, const std::string &pk)
virtual ~TaskResource ()
virtual bool Execute ()
 execute the task.
virtual void Cancel ()
 if the task is currently executing, send a cancel request
virtual void GetRunTimeStatus (JobStatus &status, int options=1)
 get the run-time status of the executed task.
virtual OptimizationResourcePtr GetOrCreateOptimizationFromName_UTF8 (const std::string &optimizationname, const std::string &optimizationtype=std::string("robotplacement"))
 Gets or creates the a optimization part of the scene.
virtual OptimizationResourcePtr GetOrCreateOptimizationFromName_UTF16 (const std::wstring &optimizationname, const std::string &optimizationtype=std::string("robotplacement"))
virtual void GetOptimizationPrimaryKeys (std::vector< std::string > &optimizationkeys)
 gets a list of all the scene primary keys currently available to the user
virtual void GetTaskParameters (ITLPlanningTaskParameters &taskparameters)
 Get the task info for tasks of type itlplanning
virtual void SetTaskParameters (const ITLPlanningTaskParameters &taskparameters)
 Set new task info for tasks of type itlplanning
- Public メソッド inherited from mujinclient::WebResource
 WebResource (ControllerClientPtr controller, const std::string &resourcename, const std::string &pk)
virtual ~WebResource ()
ControllerClientPtr GetController () const
const std::string & GetResourceName () const
const std::string & GetPrimaryKey () const
virtual std::string Get (const std::string &field)
 gets an attribute of this web resource
virtual void Set (const std::string &field, const std::string &newvalue)
 sets an attribute of this web resource
virtual void Delete ()
 delete the resource and all its child resources
virtual void Copy (const std::string &newname, int options)
 copy the resource and all its child resources to a new name

Protected 変数

std::stringstream _ss
std::map< std::string,
std::string > 
_mapTaskParameters
 set of key value pairs that should be included
std::string _mujinControllerIp
boost::mutex _mutexTaskState
ResultGetBinpickingState _taskstate
int _zmqPort
int _heartbeatPort
std::string _userinfo_json
 userinfo json
std::string _sceneparams_json
std::string _slaverequestid
 \ parameters of the scene to run tasks on the backend zmq slave
std::string _scenepk
 scene pk
const std::string _tasktype
 the specific task type to create internally. As long as the task supports the binpicking interface, it can be used.
boost::shared_ptr< boost::thread > _pHeartbeatMonitorThread
bool _bIsInitialized
bool _bShutdownHeartbeatMonitor
- Protected 変数 inherited from mujinclient::TaskResource
std::string _jobpk
 the job primary key used to track the status of the running task after Execute is called

説明

binpickingtask.h39 行で定義されています。

型定義

binpickingtask.h76 行で定義されています。

コンストラクタとデストラクタ

mujinclient::BinPickingTaskResource::BinPickingTaskResource ( ControllerClientPtr  controller,
const std::string &  pk,
const std::string &  scenepk,
const std::string &  tasktype = "binpicking" 
)
virtual mujinclient::BinPickingTaskResource::~BinPickingTaskResource ( )
virtual

関数

virtual void mujinclient::BinPickingTaskResource::_HeartbeatMonitorThread ( const double  reinitializetimeout,
const double  commandtimeout 
)
virtual

Monitors heartbeat signals from a running binpicking ZMQ server, and reinitializes the ZMQ server when heartbeat is lost.

引数
reinitializetimeoutseconds to wait before re-initializing the ZMQ server after the heartbeat signal is lost
execfnfunction to use to execute the InitializeZMQ command
virtual void mujinclient::BinPickingTaskResource::AddPointCloudObstacle ( const std::vector< Real > &  vpoints,
const Real  pointsize,
const std::string &  name,
const unsigned long long  starttimestamp = 0,
const unsigned long long  endtimestamp = 0,
const bool  executionverification = false,
const std::string &  unit = "mm",
int  isoccluded = -1,
const double  timeout = 0 
)
virtual

Add a point cloud collision obstacle with name to the environment.

引数
vpointslist of x,y,z coordinates in meter
stateadditional information about the objects
pointsizesize of each point in meter
namename of the obstacle
isoccludedocclusion status of robot with the container: -1 if unknown, 0 if not occluding, 1 if robot is occluding container in camera
timeoutseconds until this command times out
virtual void mujinclient::BinPickingTaskResource::ClearVisualization ( const double  timeout = 0)
virtual

Clear visualization made by VisualizePointCloud.

virtual boost::property_tree::ptree mujinclient::BinPickingTaskResource::ExecuteCommand ( const std::string &  command,
const double  timeout = 0.0,
const bool  getresult = true 
)
virtual
virtual void mujinclient::BinPickingTaskResource::GetAABB ( const std::string &  targetname,
ResultAABB result,
const std::string &  unit = "mm",
const double  timeout = 0 
)
virtual
virtual void mujinclient::BinPickingTaskResource::GetBinpickingState ( ResultGetBinpickingState result,
const std::string &  robotname,
const std::string &  unit = "m",
const double  timeout = 0 
)
virtual

Get state of bin picking.

引数
resultstate of bin picking
robotnamename of robot
unitunit to receive values in, either "m" (indicates radian for angle) or "mm" (indicates degree for angle)
timeouttimeout of communication
virtual void mujinclient::BinPickingTaskResource::GetInnerEmptyRegionOBB ( ResultOBB result,
const std::string &  targetname,
const std::string &  linkname = "",
const std::string &  unit = "mm",
const double  timeout = 0 
)
virtual
virtual void mujinclient::BinPickingTaskResource::GetInstObjectAndSensorInfo ( const std::vector< std::string > &  instobjectnames,
const std::vector< std::string > &  sensornames,
ResultGetInstObjectAndSensorInfo result,
const std::string &  unit = "m",
const double  timeout = 0 
)
virtual

Gets inst object.

引数
unitinput unit
resultunit is always in meter
virtual void mujinclient::BinPickingTaskResource::GetJointValues ( ResultGetJointValues result,
const double  timeout = 0 
)
virtual
virtual void mujinclient::BinPickingTaskResource::GetManipTransform ( Transform result,
const std::string &  unit = "mm",
const double  timeout = 0 
)
virtual
virtual void mujinclient::BinPickingTaskResource::GetManipTransformToRobot ( Transform result,
const std::string &  unit = "mm",
const double  timeout = 0 
)
virtual
virtual void mujinclient::BinPickingTaskResource::GetOBB ( ResultOBB result,
const std::string &  targetname,
const std::string &  linkname = "",
const std::string &  unit = "mm",
const double  timeout = 0 
)
virtual
virtual void mujinclient::BinPickingTaskResource::GetPickedPositions ( ResultGetPickedPositions result,
const std::string &  unit = "m",
const double  timeout = 0 
)
virtual

Get the picked positions with corresponding timestamps.

引数
timeoutseconds until this command times out
virtual void mujinclient::BinPickingTaskResource::GetPublishedTaskState ( ResultGetBinpickingState result,
const std::string &  robotname,
const std::string &  unit = "m",
const double  timeout = 0 
)
virtual

Get published state of bin picking except for initial call, this returns cached value.

引数
resultstate of bin picking
robotnamename of robot
unitunit to receive values in, either "m" (indicates radian for angle) or "mm" (indicates degree for angle)
timeouttimeout of communication
virtual PlanningResultResourcePtr mujinclient::BinPickingTaskResource::GetResult ( )
virtual

gets the result of the task execution. If no result has been computed yet, will return a NULL pointer.

mujinclient::TaskResourceを再定義しています。

virtual const std::string& mujinclient::BinPickingTaskResource::GetSlaveRequestId ( ) const
virtual

returns the slaverequestid used to communicate with the controller. If empty, then no id is used.

virtual void mujinclient::BinPickingTaskResource::GetTransform ( const std::string &  targetname,
Transform result,
const std::string &  unit = "mm",
const double  timeout = 0 
)
virtual
virtual void mujinclient::BinPickingTaskResource::Initialize ( const std::string &  defaultTaskParameters,
const double  commandtimeout = 0,
const std::string &  userinfo = "{}",
const std::string &  slaverequestid = "" 
)
virtual

Initializes binpicking task.

引数
commandtimeoutseconds until this command times out
userinfojson string user info, such as locale
slaverequestidid of mujincontroller planning slave to connect to
virtual void mujinclient::BinPickingTaskResource::InitializeZMQ ( const double  reinitializetimeout = 0,
const double  timeout = 0 
)
virtual

Establish ZMQ connection to the task.

引数
reinitializetimeoutseconds to wait before re-initializing the ZMQ server after the heartbeat signal is lost if reinitializetimeout is 0, then this does not invoke heartbeat monitoring thread
timeoutseconds until this command times out
virtual void mujinclient::BinPickingTaskResource::IsRobotOccludingBody ( const std::string &  bodyname,
const std::string &  sensorname,
const unsigned long long  starttime,
const unsigned long long  endtime,
bool &  result,
const double  timeout = 0 
)
virtual

Check if robot is occluding the object in the view of sensor between starttime and endtime.

引数
sensornamename of the sensor to be checked, example names: "sensor_kinbodyname/sensor_name" or "sensor_kinbodyname", in the latter case the first attached sensor will be used
timeoutseconds until this command times out
virtual void mujinclient::BinPickingTaskResource::MoveJoints ( const std::vector< Real > &  jointvalues,
const std::vector< int > &  jointindices,
const Real  envclearance,
const Real  speed,
ResultMoveJoints result,
const double  timeout = 0 
)
virtual
virtual void mujinclient::BinPickingTaskResource::MoveToHandPosition ( const std::string &  goaltype,
const std::vector< double > &  goals,
const std::string &  robotname = "",
const std::string &  toolname = "",
const double  robotspeed = -1,
const double  timeout = 10 
)
virtual

Moves hand to specified posistion.

引数
goaltypewhether to specify goal in full six degrees of freedom (transform6d) or three dimentional position and two dimentional angle (translationdirection5d)
goalswhere to move hand to [X, Y, Z, RX, RY, RZ] in mm and deg
robotnamename of the robot to move
toolnamename of the tool to move
robotspeedspeed at which to move
timeouttimeout of communication
virtual void mujinclient::BinPickingTaskResource::MoveToolLinear ( const std::string &  goaltype,
const std::vector< double > &  goals,
const std::string &  robotname = "",
const std::string &  toolname = "",
const double  robotspeed = -1,
const double  timeout = 10 
)
virtual

Moves hand to specified posistion linearly.

引数
goaltypewhether to specify goal in full six degrees of freedom (transform6d) or three dimentional position and two dimentional angle (translationdirection5d)
goalswhere to move hand to [X, Y, Z, RX, RY, RZ] in mm and deg
robotnamename of the robot to move
toolnamename of the tool to move
robotspeedspeed at which to move. this is a ratio to maximum speed and thus valid range is 0 to 1.
timeouttimeout of communication
virtual void mujinclient::BinPickingTaskResource::SetJogModeVelocities ( const std::string &  jogtype,
const std::vector< int > &  movejointsigns,
const std::string &  robotname = "",
const std::string &  toolname = "",
const double  robotspeed = -1,
const double  robotaccelmult = -1.0,
const double  timeout = 1 
)
virtual

Jogs robot in joint or tool space.

引数
jogtypetype of jogging, either "joints" or "tool"
goalswhere to move hand to [X, Y, Z, RX, RY, RZ] in mm and deg
robotnamename of the robot to move
toolnamename of the tool to move
robotspeedspeed at which to move. this is a ratio to maximum speed and thus valid range is 0 to 1.
robotaccelmultacceleration multiplier at which to move. this is a ratio to maximum acceleration and thus valid range is 0 to 1.
timeouttimeout of communication
例:
mujinjog.cpp.
virtual void mujinclient::BinPickingTaskResource::SetTransform ( const std::string &  targetname,
const Transform transform,
const std::string &  unit = "mm",
const double  timeout = 0 
)
virtual
virtual void mujinclient::BinPickingTaskResource::UpdateEnvironmentState ( const std::string &  objectname,
const std::vector< DetectedObject > &  detectedobjects,
const std::vector< Real > &  vpoints,
const std::string &  resultstate,
const Real  pointsize,
const std::string &  pointcloudobstaclename,
const std::string &  unit = "mm",
const double  timeout = 0 
)
virtual
virtual void mujinclient::BinPickingTaskResource::UpdateObjects ( const std::string &  basename,
const std::vector< Transform > &  transformsworld,
const std::vector< std::string > &  confidence,
const std::string &  state,
const std::string &  unit = "mm",
const double  timeout = 0 
)
virtual

Update objects in the scene.

引数
basenamebase name of the object. e.g. objects will have name basename_0, basename_1, etc
transformsworldlist of transforms in world frame
confidencelist of confidence of each detection
stateadditional information about the objects
unitunit of detectedobject info
timeoutseconds until this command times out
virtual void mujinclient::BinPickingTaskResource::VisualizePointCloud ( const std::vector< std::vector< Real > > &  pointslist,
const Real  pointsize,
const std::vector< std::string > &  names,
const std::string &  unit = "m",
const double  timeout = 0 
)
virtual

Visualize point cloud on controller.

引数
pointslistvector of x,y,z coordinates vector in meter
pointsizesize of each point in meter
namesvector of names for each point cloud
unitof points
timeoutseconds until this command times out

変数

bool mujinclient::BinPickingTaskResource::_bIsInitialized
protected

binpickingtask.h350 行で定義されています。

bool mujinclient::BinPickingTaskResource::_bShutdownHeartbeatMonitor
protected

binpickingtask.h351 行で定義されています。

int mujinclient::BinPickingTaskResource::_heartbeatPort
protected

binpickingtask.h342 行で定義されています。

std::map<std::string, std::string> mujinclient::BinPickingTaskResource::_mapTaskParameters
protected

set of key value pairs that should be included

binpickingtask.h334 行で定義されています。

std::string mujinclient::BinPickingTaskResource::_mujinControllerIp
protected

binpickingtask.h335 行で定義されています。

boost::mutex mujinclient::BinPickingTaskResource::_mutexTaskState
protected

binpickingtask.h336 行で定義されています。

boost::shared_ptr<boost::thread> mujinclient::BinPickingTaskResource::_pHeartbeatMonitorThread
protected

binpickingtask.h348 行で定義されています。

std::string mujinclient::BinPickingTaskResource::_sceneparams_json
protected

binpickingtask.h344 行で定義されています。

std::string mujinclient::BinPickingTaskResource::_scenepk
protected

scene pk

binpickingtask.h346 行で定義されています。

std::string mujinclient::BinPickingTaskResource::_slaverequestid
protected

\ parameters of the scene to run tasks on the backend zmq slave

to ensure the same slave is used for binpicking task

binpickingtask.h345 行で定義されています。

std::stringstream mujinclient::BinPickingTaskResource::_ss
protected

binpickingtask.h332 行で定義されています。

ResultGetBinpickingState mujinclient::BinPickingTaskResource::_taskstate
protected

binpickingtask.h337 行で定義されています。

const std::string mujinclient::BinPickingTaskResource::_tasktype
protected

the specific task type to create internally. As long as the task supports the binpicking interface, it can be used.

binpickingtask.h347 行で定義されています。

std::string mujinclient::BinPickingTaskResource::_userinfo_json
protected

userinfo json

binpickingtask.h343 行で定義されています。

int mujinclient::BinPickingTaskResource::_zmqPort
protected

binpickingtask.h341 行で定義されています。


このクラスの説明は次のファイルから生成されました: