Sequential Monte Carlo parameters estimation for the iCub Humanoid Robot Version: v2.0.
More...
Sequential Monte Carlo parameters estimation for the iCub Humanoid Robot Version: v2.0.
- Author
- Pedro Vicente pvice.nosp@m.nte@.nosp@m.isr.t.nosp@m.ecni.nosp@m.co.ul.nosp@m.isbo.nosp@m.a.pt
- Copyright
- License terms, for example: released under the terms of the GNU GPL v3.0 .
Description
The hand pose estimation module belongs to the online body schema adaptation architecture. This module generates several samples (particles) to compared with the real images received from the robot. The new particles are generated according to the likelihood received from the internal model after rendering hallucinated images for the right and left images according to the proprioception and estimated angular offsets.
Parameters
- –name: Name of the module (default='hpe')
- –arm: Arm which the module should connect to. (default='right')
- –initialMean: Mean for the initial distribution of the particles [in degrees]. (default=0.0)
- –initialStdDev: Standard Deviation of the initial distribution of the particles [in degrees]. (default=3.5)
- –artificialNoiseStdDev: Initial (standard deviation of) Artificial Noise to spread the particles after each iteration [in degrees]. (default=3.0)
- –lowerBound: Artificial Noise lower bound (StdDev). Should be greater than Zero to prevent the particles to collapse in one simples value [in degrees]. (default=0.04)
- –upperBound: Artificial Noise upper bound (StdDev). The artificial noise should have a upper bound to prevent the particles to diverge after each resampling stage (default=3.5)
- –minimumLikelihood: MinimumLikelihood [0,1] in order to resample the particles (default=0.55)
- –increaseMultiplier: increase the artificial noise of a certain value (currentValue*increaseMultiplier) if the maximum likihood is lower than the minimumLikelihood (default=1.15)
- –decreaseMultiplier: decrease the artificial noise of a certain value (currentValue*decreaseMultiplier) if the maximum likihood is greater than the minimumLikelihood (default=0.85)
- –KDEStdDev: Standard deviation of each kernel in the Kernel Density Estimation algorithm [in degrees]. (default=1.0)
- –minIteration: number of iterations before output estimated Offsets (default=35)
Input Ports
- /hpe/rightCam:i [image] [default carrier:udp]: This port should receive the right image
- /hpe/leftCam:i [image] [default carrier:udp]: This port should receive the left image
- /hpe/rightArm:i [Bottle] [default carrier:udp]: This port should receive the encoders of the right (DEFAULT) arm.
- /hpe/head:i [Bottle] [default carrier:udp]: This port should receive the encoders of the head.
- /hpe/likelihood:i [Bottle] [default carrier:udp]: This port will receive the likelihood Bottle containing the likelihood for each particles generated in the internal model.
- /hpe/fingerPosition:i [Bottle] [default carrier:udp]: This port will receive a Bottle containing the fingertips position on the left image for each particles generated in the internal model.
Output Ports
- /hpe/LRimage:o [image] [default carrier:udp]: This port sends the concatenation of the pre-processed left and right image to the internal model.
- /hpe/head:o [Bottle] [default carrier:udp]: This port sends the encoders of the head to the internal model.
- /hpe/particles:o [Bottle] [default carrier:udp]: This port sends the encoders of the arm + the estimated offsets to be generated by the internal model
- /hpe/bestOffsets:o [Bottle] [default carrier:udp]: This port outputs the best set of Offsets after each iteration of the Sequential Monte Carlo parameter estimation algorithm
- /hpe/imageCorrected:o [image] [default carrier:udp]: This port sends the left camera image with the fingertips positions superimposed according with the best estimated set of offsets.
- /hpe/imageCanonical:o [image] [default carrier:udp]: This port sends the left camera image with the fingertips positions superimposed according with the canonical model (i.e. without angular offsets in the arm)
Services
- /hpe/rpc:i [rpc-server]: service port . This service is described in handPoseEstimation_IDL (handPoseEstimation.thrift)