# BlueROV2 Autonomous Software

**URL:** <https://discuss.bluerobotics.com/t/bluerov2-autonomous-software/14595>\
**Category:** Blue Robotics Software\
**Tags:** ardusub, pymavlink, sitl\
**Created:** [June 30, 2023, 1:03am UTC](https://discuss.bluerobotics.com/t/bluerov2-autonomous-software/14595 "2023-06-30T01:03:01Z")\
**Posts on this page:** 1\
**Showing post:** 2

<div class="post-metadata">

**Author:** ![EliotBR](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.bluerobotics.com/eliotbr/32/6937_2.png) [@EliotBR](https://discuss.bluerobotics.com/u/EliotBR)\
**Post date:** [July 8, 2023, 12:39am UTC](https://discuss.bluerobotics.com/t/bluerov2-autonomous-software/14595/2 "2023-07-08T00:39:03Z")

</div>

Hi @AT1234567, welcome to the forum 🙂

> [@AT1234567](#):
>
> 1. Where do I put the code in (in mavproxy or BlueOS) and how would I do so? Is there a specific terminal?

mavproxy is a _proxy_ service for connecting different MAVLink-based services and devices together into a MAVLink network, and it (or its equivalent service in BlueOS) is not something you should be modifying for autonomous operation - if anything you should just be using it to set up an endpoint which your code can then talk to.

Code on the [Onboard Computer](https://blueos.cloud/docs/hardware/required/onboard-computer/) can be stored directly on the root filesystem, or within a [BlueOS Extension](https://blueos.cloud/docs/blueos/1.1/development/extensions/). The latter is recommended because it makes your program more shareable and restorable, and has management infrastructure built into BlueOS, but is potentially a bit more work to set up when first starting out.

> [@AT1234567](#):
>
> 1. How does BlueOS work …?

I’d recommend looking at the [development documentation](https://blueos.cloud/docs/blueos/1.1/development/overview/). Feel free to ask follow-up questions if there’s something that isn’t clear 🙂

> [@AT1234567](#):
>
> … what should be on the sim card that goes into the BlueROV2’s Raspberry Pi 4?

I assume you mean the SD card, which is typically used for both file storage and the operating system running the device (e.g. Raspberry Pi OS). For BlueOS,

> [@BlueOS compatible with Pixhawk?](https://discuss.bluerobotics.com/t/blueos-compatible-with-pixhawk/14636/4):
>
> The latest stable version is available [on the installation page](https://blueos.cloud/docs/blueos/1.0/installation/). Alternatively you could download a `BlueOS-raspberry.zip` image for a recent beta version from the Assets in the [GitHub releases](https://github.com/bluerobotics/BlueOS-docker/releases).

> [@AT1234567](#):
>
> 1. How does the code go onto the Raspberry Pi 4 and stay there, turning the robot autonomous?

You can put files onto the Raspberry Pi via the BlueOS [File Browser](https://blueos.cloud/docs/blueos/1.1/advanced-usage/#file-browser) or [Terminal](https://blueos.cloud/docs/blueos/1.1/advanced-usage/#terminal) (using `red-pill`), but you would need to do your own configuration to get those to run. BlueOS Extensions can be installed via the [Extensions Manager](https://blueos.cloud/docs/blueos/1.1/advanced-usage/#extensions-manager).

> [@AT1234567](#):
>
> 1. How do the software’s interact with one another? (how QGroundControl interacts with mavproxy, and how pymavlink interacts with both mavproxy and QGroundControl)?

At a high level, QGroundControl has a MAVLink telemetry connection with the vehicle, which is facilitated by a [MAVLink Endpoint](https://blueos.cloud/docs/blueos/1.1/advanced-usage/#mavlink-endpoints). If you write a Pymavlink program then it can connect to its own MAVLink endpoint to receive telemetry from the vehicle and send commands to it.

> [@AT1234567](#):
>
> Do I need to change specific settings in QGroundControl?

That depends what you’re trying to do, but if you want your program to have full control over the vehicle then you’ll likely need to disable QGC’s heartbeat messages.

> [@AT1234567](#):
>
> 1. Is SITL important to make the BlueROV2 autonomous?

SITL is a simulation program, and is unrelated to vehicle autonomy. It can however be used for testing autonomous functionalities in a virtual environment where there is no physical vehicle that could get damaged by poor operation.

---

_[View the full topic](https://discuss.bluerobotics.com/t/bluerov2-autonomous-software/14595)._
