An exoskeleton (100) includes a first link (215, 216) that pivots in a transverse plane about a first vertical axis and a second link (220, 221) that pivots in a transverse plane about a second vertical axis. The second link (220, 221) is coupled to the first link (215, 216). An arm support assembly (230, 231) is coupled to the second link and pivots about a horizontal axis. The arm support assembly (230, 231) includes a spring (410) that generates an assistive torque that counteracts gravity. The arm support assembly (230, 231) provides the assistive torque to an arm of a wearer to support the arm of the wearer. The arm support assembly (230, 231) further includes a cam profile (400) and a cam follower (405). Contact between the spring, cam follower and cam profile determines an amount of the assistive force provided by the arm support assembly (230, 231). A cuff is coupled to the arm support assembly (230, 231) and the arm of the wearer.