Ardupilot Rover Movement without GPS

I’m trying to move position the rover without GPS using Raspberry-Pi. It’s supposed to follow a red marker by using the camera to detect a target from which the position can be determined.

I want to implement it indoors where GPS is not available. I am trying to use set_position_target_local_ned_encode on vehicle.message_factory to implement movement. However, it does not work.


  1. Does set_position_target_local_ned_encode only work on effective GPS readings and not on situations where Mission Planner sometime say GPS: NoFix
  2. Are there any alternatives to implement rover movement without being GPS dependent?


ArduPilot needs a sensor source for position and velocity information. Normally that is GPS, but other sensors can be used - see Non-GPS Navigation — Rover documentation

1 Like

I can see here that a camera is used. But is it possible to use OpenCV and R-Pi’s camera as substitute for the camera used in here?

Monocular SLAM algorithms may work here, but you likely need to write your own software to take in the Pi Camera’s images and determine a position and velocity output to send to ArduPilot.

Hello, is it possible to send an RC signal from raspberry pi to pixhawk via mavlink? I want to try implementing rover movement using this RC signal