A control system for controlling an exoskeleton comprising at least one powered joint associated with lower limbs of a user and a plurality of sensors associated with the lower limbs, the control system comprising: a sensor interface for receiving sensor signals from the plurality of sensors; a power interface for transmitting control signals to the at least one powered joint; a processor communicatively coupled to the sensor interface and the power interface; and a computer-readable medium having stored thereon a computer program executable by the processor, the computer program comprising a plurality of code sections for causing the processor device to perform a method for the control of-the exoskeleton, the method comprising: estimating a configuration of a body of the user associated with the exoskeleton with respect to an inertia reference frame and an angular velocity of each of the powered joints, the estimating of the configuration comprising determining whether configuration corresponds to a single-support phase or a double-support phase; computing a first control torque for the at least one powered joint that at least partially reduces the effect of gravity on an associated lower limb of the user based on the configuration; calculating a gravitational energy gradient for the at least one powered joint based on a product of the respective angular velocity and the respective first control torque; selectively attenuating the first control torque for each of the powered joints by an attenuation amount selected according to a sign of the gravitational energy gradient to yield a second control torque, wherein an attenuation amount is calculated according to at least one of the configuration, an activity type, and a type of the at least one powered joint; and applying a final control torque at the at least one powered joint, the final control torque based, at least in part, on the second control torque. a sensor interface for receiving sensor signals from the plurality of sensors; a power interface for transmitting control signals to the at least one powered joint; a processor communicatively coupled to the sensor interface and the power interface; and a computer-readable medium having stored thereon a computer program executable by the processor, the computer program comprising a plurality of code sections for causing the processor device to perform a method for the control of-the exoskeleton, the method comprising: estimating a configuration of a body of the user associated with the exoskeleton with respect to an inertia reference frame and an angular velocity of each of the powered joints, the estimating of the configuration comprising determining whether configuration corresponds to a single-support phase or a double-support phase; computing a first control torque for the at least one powered joint that at least partially reduces the effect of gravity on an associated lower limb of the user based on the configuration; calculating a gravitational energy gradient for the at least one powered joint based on a product of the respective angular velocity and the respective first control torque; selectively attenuating the first control torque for each of the powered joints by an attenuation amount selected according to a sign of the gravitational energy gradient to yield a second control torque, wherein an attenuation amount is calculated according to at least one of the configuration, an activity type, and a type of the at least one powered joint; and applying a final control torque at the at least one powered joint, the final control torque based, at least in part, on the second control torque. estimating a configuration of a body of the user associated with the exoskeleton with respect to an inertia reference frame and an angular velocity of each of the powered joints, the estimating of the configuration comprising determining whether configuration corresponds to a single-support phase or a double-support phase; computing a first control torque for the at least one powered joint that at least partially reduces the effect of gravity on an associated lower limb of the user based on the configuration; calculating a gravitational energy gradient for the at least one powered joint based on a product of the respective angular velocity and the respective first control torque; selectively attenuating the first control torque for each of the powered joints by an attenuation amount selected according to a sign of the gravitational energy gradient to yield a second control torque, wherein an attenuation amount is calculated according to at least one of the configuration, an activity type, and a type of the at least one powered joint; and applying a final control torque at the at least one powered joint, the final control torque based, at least in part, on the second control torque.