The ardupilot features are already numerous and I already worked on helping ardupilot to have good compatibility with ROS. Ardupilot rover version (APMRover2) is well behind Arduplane and ArduCopter in capabilities as they attract more attention from developers. One obvious example is that Rover has only a very basic avoidance system (turn 45° on obstacle). It is also missing some autonomous features (on spot turn etc.), and more significantly is missing a proper motor configuration abstraction layer. While ArduCopter is capable of being configured in 4,6,8 motors copter with brushed (PWM) or brushless motor (RC PWM), the rover version is still limited to two modes: rover with propulsion and a steering servo (normal mode) and tank mode (skid steering mode), with only support on brushless motor. My proposal to this GSOC is split in two parts. Firstly, reduce the gap between the APMRover2 and the other vehicles to provide a good generic UGV platform capable of multiple configurations, with advance feature such as avoidance. Secondly, provide a good set of tutorials on the usage of ROS and ardupilot either for single unit control or on simulated unit on Gazebo simulator!