Motion of a body segment is assisted when the body segment is moving in a positive power mode but not when it is moving in a negative power mode. When the motion of the body segment is cyclical, for example during walking, assistance to the body segment is switched on and off throughout the cycle to correspond to positive and negative power modes respectively. Energy used to assist the body segment may be harvested from prior motion of the body segment, either in prior cycles and/or when the body segment is moving in a negative power mode. The energy used may also be harvested from other body segments. Assisting motion of a body segment may be used to reduce the metabolic cost of locomotion, or to reduce exertion, when walking, jogging, running or sprinting.