Skip to main content

This package serves as the entry point for embedded applications using Python on Blue Robotics's Navigator

Project description

Navigator Library

Actions PyPI

This library serves as the entry point for applications that want to use Navigator with Python or C++.

1 . How-to setup the Raspberry Pi computer, please read Instructions. 2 . For Rust 🦀, please check the navigator-rs library.

Features

  • LEDs (User and RGB) access
  • PWM (Pulse Width Modulation) control
  • ADC (Analog Digital Converter) reading
  • Magnetometer / Accelerometer / Gyroscope sampling
  • Temperature reading
  • Pressure estimation

📖 Documentation:

Check the examples folder for further information and guide.

🐍 Python:

Install the library.

pip install bluerobotics_navigator

With that, you'll bee able to run the examples, or creating your own:

#!/usr/bin/env python

import bluerobotics_navigator as navigator

print("Initializing navigator module.")
navigator.init()

print("Setting led on!")
navigator.set_led(navigator.UserLed.Led1, True)

print(f"Temperature: {navigator.read_temp()}")
print(f"Pressure: {navigator.read_pressure()}")

print(
    f"Data ADC Channels: {navigator.read_adc_all().channel}"
)

print(f"Data ADC Channel: 1 = {navigator.read_adc(navigator.AdcChannel.Ch1)}")

data = navigator.read_mag()
print(f"Magnetic field: X = {data.x}, Y = {data.y}, Z = {data.z}")

🛠️ C++:

Follow our example folder as a template to create your own project. To compile and run the examples, you can run:

cd examples/cpp
cmake -B build -DCMAKE_BUILD_TYPE=Debug && cmake --build build --config Debug --parallel
# Run one of the examples
./build/simple
./build/rainbow

For an example of C++ code, you can check the following code:

#include "bindings.h"
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

int main() {
  printf("Initiating navigator module.\n");
  init();

  printf("Setting led on!\n");
  set_led(UserLed::Led1, true);

  printf("Temperature: %f\n", read_temp());
  printf("Pressure: %f\n", read_pressure());

  ADCData adc = read_adc_all();
  printf("Reading ADC Channels: 1 = %f, 2 = %f, 3 = %f, 4 = %f\n",
         adc.channel[0], adc.channel[1], adc.channel[2], adc.channel[3]);
  printf("Data ADC Channels: 1 = %f\n", read_adc(AdcChannel::Ch1));

  AxisData mag = read_mag();
  printf("Magnetic field: X = %f, Y = %f, Z = %f\n", mag.x, mag.y, mag.z);

  return 0;
}

Note: The CMakeLists_Standalone.txt is a self-contained CMake project file example. Users can use it as a template to create their standalone projects based on the navigator-lib.

🏗️ Supported Architectures

Currently, the library supports armv7 and aarch64 architectures, which are the official defaults for BlueOS. The library also provides C++ .so files for both gnu and musl.

For more detailed information, including installation instructions, schematics, and hardware specifications, please refer to the navigator hardware setup guide.

:ocean: Instructions for BlueOS (Recommended)

  1. Open the Autopilot Firmware page, enable Pirate Mode, and "change board" to SITL
    • This stops the autopilot firmware from trying to operate while the WebAssistant is in use
  2. Reboot the vehicle computer, and wait for the interface to re-connect

Note: Since this library access the Navigator hardware, it can´t run in parallel with ArduPilot. If you are running ArduPilot, be sure to disable it or set the board as SITL (Software Simulation) before running Navigator WebAssistant

:cherries: Instructions for Raspberry Pi OS

  1. Download the Raspberry OS image (32 or 64 bits)

Note: To use a kernel that matches with the BlueOS and avoid incompatilities, please use: 32 Bits: raspios_lite_armhf-2023-02-22 64 Bits: raspios_lite_arm64-2023-02-22

  1. Install the Raspberry Pi Imager and flash the image

Note: You can also automatically setup the ssh, user, hostname and wi-fi settings.

  1. Execute the following command to setup the overlay required for Navigator ( I2C, SPI, GPIOs & others)
sudo su -c 'curl -fsSL https://raw.githubusercontent.com/bluerobotics/blueos-docker/master/install/boards/configure_board.sh | bash'
sudo reboot

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

bluerobotics_navigator-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARMv7l

bluerobotics_navigator-0.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

File details

Details for the file bluerobotics_navigator-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for bluerobotics_navigator-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 4079e303f83afc028e2b3fd99f9b0609396c515c04f3b8efcc66d983e9698e1b
MD5 148b72143a79df5e3f330aa7a4e38611
BLAKE2b-256 2d704c985a16c57b40806901679a658c440396742db03e4fa8ca7241887ca23b

See more details on using hashes here.

Provenance

The following attestation bundles were made for bluerobotics_navigator-0.1.2-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: action.yml on bluerobotics/navigator-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bluerobotics_navigator-0.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for bluerobotics_navigator-0.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e8760e417446348218d7a06fccc7f011af1ac652937eb7ca9c827bf31ca9ca8d
MD5 ca5a36fe4bc5b155d4b297170657e1ae
BLAKE2b-256 53da587eef8258929545f10f2aa462ea8c89a594c319f31dea283d3a022a61b2

See more details on using hashes here.

Provenance

The following attestation bundles were made for bluerobotics_navigator-0.1.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: action.yml on bluerobotics/navigator-lib

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page