A Review of Essential Technologies for Autonomous and Semi-autonomous Articulated Heavy Vehicles