> For the complete documentation index, see [llms.txt](https://nxp.gitbook.io/mr-b3rb/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://nxp.gitbook.io/mr-b3rb/software/mr-b3rb-software-developer-guide.md).

# MR-B3RB Software developer guide

## Introduction

The full robotics reference design experience on MR-B3RB relies on the Linux NavQPlus companion computer working in concert with the real time controller MR-CANHUBK344. \
\
CogniPilot is the preferred opensource example framework that works hand in hand with ROS2 to provide a fully robotic vehicle, and sets up and configures the majority of the associated host companion computer, and development PC tools. \
\
The CogniPilot based "system" is therefore more than just the Cerebri real time vehicle control module.<br>

{% hint style="success" %}
Other frameworks including bare metal code can be used on B3RB when used in NXP-CUP or AIM. Those competitions may also just use a subset of CogniPilot or even alternative software.

\
Note however that the combination of Zephyr + Cognipilot is valuable even for when you don't intend to take advantage of the full implementation environment and setup. You can choose to not run Cognipilot Cerebri or other Cognipilot modules.&#x20;

The development process can be repurposed. Because Cognipilot sits cleanly as an application on top of Zephyr RTOS various aspects of it's implementation such as sensor drivers can be leveraged.&#x20;

This may be true especially for NXP-CUP or AIM India systems which are less complex of a robotics implementation.
{% endhint %}

## Installation and setup overview

{% hint style="warning" %}
Below is "high level" overview of installation. The details are well covered in the Cognipilot webpages themselves.
{% endhint %}

### <mark style="color:purple;">A) Prepare your Linux development PC</mark>

Follow this section of Cognipilot to prepare your Linux development PC with ROS, Zephyr and Cognipilot development tools:\
<https://airy.cognipilot.org/getting_started/install/>

NEW <https://brave.cognipilot.org/getting_started/install/>

### <mark style="color:purple;">B) Prepare NavQPlus</mark>

Follow this section of to prepare Cognipilot-Cranium on NavQPlus : <https://airy.cognipilot.org/cranium/compute/navqplus/setup/>

NEW <https://brave.cognipilot.org/cranium/compute/navqplus/setup/>

### <mark style="color:purple;">C) Prepare MR-CANHUBK344 real time vehicle controller</mark>

Follow this section of CogniPilot to prepare Cognipilot-Cerebri software on MR-CANHUBK344: \
<https://airy.cognipilot.org/reference_systems/b3rb/setup/>

NEW <https://brave.cognipilot.org/cranium/compute/navqplus/setup/>

NEW <https://brave.cognipilot.org/reference_systems/b3rb/about/>

<https://airy.cognipilot.org/reference_systems/b3rb/about/>

{% hint style="success" %}
The definitive guide is the CogniPilot website, but you can also follow the additional sub-pages for additional guidance details&#x20;
{% endhint %}

## Next Steps

After installation, you are ready to use the MR-B3RB.&#x20;

* You can log into the NavQPlus and even into the MR-CANHUBK344 running CogniPilot/Zephyr
* You can run ROS SIL or "real hardware" examples using RVIZ or Foxglove as a control station.
* The vehicle is capable of being safely armed through several steps and autonomously navigating to a position and pose as specified/pointed to on the control station software. &#x20;

\
Links
-----

The developer guide for Cognipilot can be found here:\
<https://airy.cognipilot.org/>

NEW [https://brave.cognipilot.org](https://brave.cognipilot.org/reference_systems/b3rb/about/)<br>

{% embed url="<https://airy.cognipilot.org/>" %}

{% embed url="<https://brave.cognipilot.org>" %}
