The ROS package for Airbotics.

Overview

airbotics

The ROS package for Airbotics:

  • Developed for ROS 1 and Python 3.8.

  • The package has not been officially released on ROS yet so manual installation is still required.

  • The package contains a single node called airbotics that either: 1) subscribes to a map topic on the robot and sends it to the cloud to be saved, or 2) loads a map from the cloud and serves it to rest of the robot over a topic.

To install

mkdir -p catkin_ws/src
cd catkin_ws/src
git clone https://github.com/Airbotics/airbotics
cd airbotics
pip3 install -r requirements.txt
cd ../..
catkin_make
source devel/setup.sh

To run

Firstly, you must set your API Key as an environment variable so the client can authenticate with the backend. Your API key can be generated by using the web console, API, CLI or SDKs.

export AIR_API_KEY=<insert-api-key-here>

The Airbotics node must be started using the launch file and can be run in two modes: save or serve. You must provide a map_slug as a parameter to the launch file.

Send a map from the robot to the cloud

The map must exist in your account before you run this command.

roslaunch airbotics save.launch map_slug:=<some-map-slug>

Load a map from the cloud and serve it to the robot

The map must exist in your account and have at least one version before you run this command.

roslaunch airbotics serve.launch map_slug:=<some-map-slug>

Parameters

You may provide other optional parameters to the launch file:

Name ROS Parameter Type Default Description
map_version /air/map_version str latest Which map version to load from the cloud. Must be a postive int or 'latest'. Only used when serving.
map_topic /air/map_topic str /map Name of the topic to which maps are published.
map_metadata_topic /air/map_metadata_topic str /map_metadata Name of the topic to which map metadata is published.
map_throttling /air/map_throttling int 5 Whether to throttle sending updates. Will send every x map updates received. Set to 0 to send every update.
map_origin /air/map_origin [float] [0.0, 0.0, 0.0] The 2-D pose of the lower-left pixel in the map, as (x, y, yaw). Only used when serving.
map_resolution /air/map_resolution float 0.1 Resolution of the map. Only used when serving.
map_frame_id /air/map_frame_id str map Frame of the map. Only used when serving.

Example of running the Airbotics node in save mode with all relevant parameters:

roslaunch airbotics serve.launch map_slug:=<some-map-slug> \
    map_topic:=/robot/map \
    map_metadata_topic:=/robot/map_metadata \
    map_throttling:=5

Example of running the Airbotics node in serve mode with all relevant parameters:

roslaunch airbotics serve.launch map_slug:=<some-map-slug> \
    map_version:=42 \
    map_topic:=/robot/map \
    map_metadata_topic:=/robot/map_metadata \
    map_origin:=[10.0,10.0,0.0] \
    map_resolution:=0.05 \
    map_frame_id:=map

Contributing

We love contributions! Please see our Contributing guide for more information.

License

The software in this repository is licensed under the Apache 2.0 License. Copyright 2021 Airbotics.

Owner
Airbotics
Open Source Cloud Robotics
Airbotics
Tools, guides, and resources for blockchain analysts to interface with data on the Ergo platform.

Ergo Intelligence Objective Provide a suite of easy-to-use toolkits, guides, and resources for blockchain analysts and data scientists to quickly unde

Chris 5 Mar 15, 2022
Terrible sudoku solver with spaghetti code and performance issues

SudokuSolver Terrible sudoku solver with spaghetti code and performance issues - if it's unable to figure out next step it will stop working, it never

Kamil Bizoń 1 Dec 05, 2021
Multi-Probe Attention for Semantic Indexing

Multi-Probe Attention for Semantic Indexing About This project is developed for the topic of COVID-19 semantic indexing. Directories & files A. The di

Jinghang Gu 1 Dec 18, 2022
MinimalGearDisplay, Assetto Corsa app

MinimalGearDisplay MinimalGearDisplay, Assetto Corsa app. Just displays the current gear you are on. Download and Install To use this app, clone or do

1 Jan 10, 2022
propuestas electorales de los candidatos a constituyentes, Chile 2021

textos-constituyentes propuestas electorales de los candidatos a constituyentes, Chile 2021 Programas descargados desde https://elecciones2021.servel.

Sergio Lucero 6 Nov 19, 2021
Replite - An embeddable REPL powered by JupyterLite

replite An embeddable REPL, powered by JupyterLite. Usage To embed the code cons

Jeremy Tuloup 47 Nov 09, 2022
A Python program for calculating the 95%CI for GNSS-derived site velocities

GNSS_Vel_95%CI A Python program for calculating the 95%CI for GNSS-derived site velocities Function_GNSS_95CI.py is a Python function for calculating

<a href=[email protected]"> 4 Dec 16, 2022
Desenvolvendo as habilidades básicas de programação visando a construção de aplicativos por meio de bibliotecas apropriadas à Ciência de Dados.

Algoritmos e Introdução à Computação Ementa: Conceitos básicos sobre algoritmos e métodos para sua construção. Tipos de dados e variáveis. Estruturas

Dyanna Cruz 1 Jan 06, 2022
Script Repository for the ICGM-CNRS FRANCE

Here you will find my Python Work repesitory for the ICGM institute - Montpellier - France.

CABOS Matthieu 1 Apr 13, 2022
Automated rop chain generation

This is the accompanying code to the blog post talking about automated rop chain generation. Build the test file with: make Install the dependencies:

Christopher Roberts 14 Nov 22, 2022
Vaksina - Vaksina COVID QR Validation Checker With Python

Vaksina COVID QR Validation Checker Vaksina is a general purpose library intende

Michael Casadevall 33 Aug 20, 2022
Information about a signed UEFI Shell that can be used when Secure Boot is enabled.

SignedUEFIShell During our research of the BootHole vulnerability last year, we tried to find as many signed bootloaders as we could. We searched all

Mickey 61 Jan 03, 2023
Simple python code for compile brainfuck program.

py-brainf*ck Just a basic compiled that compiles your brainf*ck codes and gives you informations about memory, used cells, dumped version, logs etc...

4 Jun 13, 2021
ChainJacking is a tool to find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack.

ChainJacking is a tool to find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack.

Checkmarx 36 Nov 02, 2022
tagls is a language server based on gtags.

tagls tagls is a language server based on gtags. Why I wrote it? Almost all modern editors have great support to LSP, but language servers based on se

daquexian 31 Dec 01, 2022
🎅🏻 Helping santa understand ✨ python ✨

☃️ Advent of code 2021 ☃️ Helping santa understand ✨ python ✨

Fluffy 2 Dec 25, 2021
Find all solutions to SUBSET-SUM, including negative, positive, and repeating numbers

subsetsum The subsetsum Python module can enumerate all combinations within a list of integers which sums to a specific value. It works for both negat

Trevor Phillips 9 May 27, 2022
Бэкапалка таблиц mysql 8 через брокер сообщений nats

nats-mysql-tables-backup Бэкап таблиц mysql 8 через брокер сообщений nats (проверено и работает в ubuntu 20.04, при наличии python 3.8) ПРИМЕРЫ: Ниже

Constantine 1 Dec 13, 2021
Commodore 64 OS running on Atari 8-bit hardware

This is the Commodre 64 KERNAL, modified to run on the Atari 8-bit line of computers. They're practically the same machine; why didn't someone try this 30 years ago?

Nick Bensema 133 Nov 12, 2022
Clackety Keyboards Powered by Python

KMK: Clackety Keyboards Powered by Python KMK is a feature-rich and beginner-friendly firmware for computer keyboards written and configured in Circui

KMK Firmware 780 Jan 03, 2023