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
STAC in Jupyter Notebooks

stac-nb STAC in Jupyter Notebooks Install pip install stac-nb Usage To use stac-nb in a project, start Jupyter Lab (jupyter lab), create a new noteboo

Darren Wiens 32 Oct 04, 2022
Force you (or your user) annotate Python function type hints.

Must-typing Force you (or your user) annotate function type hints. Notice: It's more like a joke, use it carefully. If you call must_typing in your mo

Konge 13 Feb 19, 2022
Sorter makes file organisation and management easier.

Sorter Sorter makes file organisation easier. It simply helps you organise several files that contain similar characteristics into a single folder. Yo

Aswa Paul 34 Aug 14, 2022
Jack Morgan's Advent of Code Solutions

Advent-of-Code Jack Morgan's Advent of Code Solutions Usage Run . initiate.sh year day To initiate a day. This sets up a template python file, and pul

Jack Morgan 1 Dec 10, 2021
Identify unused production dependencies and avoid a bloated virtual environment.

creosote Identify unused production dependencies and avoid a bloated virtual environment. Quickstart # Install creosote in separate virtual environmen

Fredrik Averpil 7 Dec 29, 2022
This is the core of the program which takes 5k SYMBOLS and looks back N years to pull in the daily OHLC data of those symbols and saves them to disc.

This is the core of the program which takes 5k SYMBOLS and looks back N years to pull in the daily OHLC data of those symbols and saves them to disc.

Daniel Caine 1 Jan 31, 2022
Projeto de Jogo de dados em Python 3 onde é definido o lado a ser apostado e número de jogadas, pontuando os acertos e exibindo se ganhou ou perdeu.

Jogo de DadoX Projeto de script que simula um Jogo de dados em Python 3 onde é definido o lado a ser apostado (1, 2, 3, 4, 5 e 6) ou se vai ser um núm

Estênio Mariano 1 Jul 10, 2021
When should you berserk in lichess arena tournament games?

When should you berserk in a lichess arena tournament game? 1+0 arena tournament 3+0 arena tournament Explanation For details on how I arrived at the

18 Aug 03, 2022
Lectures for Udemy - Complete Python Bootcamp Course

Complete-Python-Bootcamp Welcome to the Repository for the Complete Python Bootcamp! This is the Repository for the Udemy course - "Complete Python Bo

Marci 2k Dec 28, 2022
Pyhexdmp - Python hex dump module

Pyhexdmp - Python hex dump module

25 Oct 23, 2022
A Classroom Engagement Platform

Project Introduction This is project introduction Setup Setting up Postgres This is the most tricky part when setting up the application. You will nee

Santosh Kumar Patro 1 Nov 18, 2021
Beancount Importers for DKB (Deutsche Kredit Bank) CSV Exports

Beancount DKB Importer beancount-dkb provides an Importer for converting CSV exports of DKB (Deutsche Kreditbank) account summaries to the Beancount f

Siddhant Goel 24 Aug 06, 2022
This repo is for scripts to run various clients at the merge f2f

merge-f2f This repo is for scripts to run various clients at the merge f2f. Tested with Lighthouse! Tested with Geth! General dependecies sudo apt-get

Parithosh Jayanthi 2 Apr 03, 2022
A Python script to parse Fortinet products serial numbers, and detect the associated model and version.

ParseFortinetSerialNumber A Python script to parse Fortinet products serial numbers, and detect the associated model and version. Example $ ./ParseFor

Podalirius 10 Oct 28, 2022
Cloth Simulation via Taichi

Cloth Simulation via Taichi

37 Nov 22, 2022
Robotic hamster to give you financial advice

hampp Robotic hamster to give you financial advice. I am not liable for any advice that the hamster gives. Follow at your own peril. Description Hampp

1 Nov 17, 2021
Airplane reservation system python 2

airplane-reservation-system-python-2 Announcement 🔊 : 🔴 IMPORTANT 🔴 : Few new things have been added into the code [16/05/2021] different names is

voyager2005 1 Dec 06, 2021
Remote execution of a simple function on the server

FunFetch Remote execution of a simple function on the server All types of Python support objects.

Decave 4 Jun 30, 2022
An example using debezium and mysql with docker-compose

debezium-mysql An example using debezium and mysql with docker-compose The docker compose starts the Zookeeper, Kafka, Mysql and Debezium Connect. Aft

Horácio Dias Baptista Neto 4 May 21, 2022
Module for remote in-memory Python package/module loading through HTTP/S

httpimport Python's missing feature! The feature has been suggested in Python Mailing List Remote, in-memory Python package/module importing through H

John Torakis 220 Dec 17, 2022