In some embodiments, apparatus and systems for controlling exoskeleton devices, and more particularly, smart crutches configured for sensing an environment and processing the sensed data to control the movement of exoskeleton devices over various types of surfaces are presented. In some embodiments, the smart crutches may comprise sensors configured to sense the state of the exoskeleton, the crutches and the surrounding environment, and to transmit such measurements to various components of the crutch and/or exoskeleton such as processing units, user interfaces, etc. In some embodiments, the processing unit may generate instructions for the exoskeleton and/or the crutches to carry out based on the measurements.