Smart robots and smart services using robots are promising research fields in academia and industry. However, those smart services are based on basic motions of the robot, such as grabbing objects, and moving them to a designated place. In this paper, we propose a way to produce new motions without programming, from existing motions, through a motion composition method. Our motion composition method utilizes an Action Petri net, which is a variance of a Petri net, with both interpolation and composition operations on a transition. In the Action Petri net, a place is a posture or a moving action of a robot, and it is represented as a diagonal matrix with the robot's joint motor values. Robot motions can be generated from one posture to another posture, and from composing different postures and moving actions. All operations performed to generate new motions are carried out as matrix manipulation operations. Our approach provides a formal method to generate new motions from existing motions, and a practical method to create new motions in low level motion control, without programming.