[0062] Where < ... > represents that a sub-space is spanned by the vectors . The null space is formed by: [0063] The whole vector space is then divided into the range space and the null space. [0064] This implies that the fingertip forces are confined in the range space R while performing a task. In most cases, the first 3~4 principal components may explain 80~90 % of the data. Truncating the components at a reasonable level, say k ~ 4 , leaves a large null space, which can be used for communication. Once appropriate command codes are defined within the null space based on individual and/or a combination of signals from the sensors, a user can communicate commands to a system while holding a tool, or interacting with other objects, by superimposing a particular combination of fingertip forces on the ones used for interacting with the object during normal performance of a given task. [0065] The basic concept of the Finger Code Communication is generalizable. The concept can be applied to many human-machine communication problems, where a user is busy performing a task yet needs to communicate with the system at the same time. The proposed method using finger force sensors may be able to be used whenever and wherever the user touches a surface with their hands. The method may be ubiquitous in this sense. [0066] Example: Distance Thresholding [0067] Command codes may exist within the range space of the combined exploration dataset (i.e., the dataset gathered during system calibration) and task dataset (i.e., the dataset gathered during execution of a task). As described above, command codes may also exist within the null space of the task dataset. That is: where is subspace in which codes may be stored, is the range space of the combined exploration and task datasets, and is the null space of the task dataset. [0068] To determine if a new force measurement contains a command input, may be projected into by constructing a projection matrix such that: