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
Draw random mazes in python

a-maze Draw random mazes in python This program generates and draws a rectangular maze, with an entrance on one side and one on the opposite side. The

Andrea Pasquali 1 Nov 21, 2021
Notifies server owners of mod updates, also notifies of player deaths and player joins through Discord.

ProjectZomboid-ServerAssistant Notifies server owners of mod updates, also notifies of player deaths and player joins through Discord. A Python based

3 Sep 30, 2022
A Github Action for sending messages to a Matrix Room.

matrix-commit A Github Action for sending messages to a Matrix Room. Screenshot: Example Usage: # .github/workflows/matrix-commit.yml on: push:

3 Sep 11, 2022
Async timeit - Async version of python's timeit

Async Timeit Replica of default python timeit module with small changes to allow

Raghava G Dhanya 3 Apr 13, 2022
TallerStereoVision Convencion Python Chile 2021

TallerStereoVision Convencion Python Chile 2021 Taller Stereo Vision & Python PyCon.cl 2021 Instalación Se recomienta utilizar Virtual Environment pyt

2 Oct 20, 2022
A Python application that simulates the rolling of a dice, randomly picking one of the 6 faces and then displaying it.

dice-roller-app This is an application developed in Python that shuffles between the 6 faces of a dice, using buttons to shuffle and close the applica

Paddy Costelloe 0 Jul 20, 2021
DC619/DC858 Mainframe Environment/Lab

DC619 Training LPAR The file DC619 - Mainframe Overflows Hands On.pdf contains the labs and walks through how to perform them. Use docker You can use

Soldier of FORTRAN 9 Jun 27, 2022
SECRET SANTA / KRIS KINGLE

SECRET SANTA / KRIS KINGLE Note: Before executing the script, make sure to turn

DEV_FINWIZ 10 Dec 06, 2022
This speeds up PyCharm's package index processes and avoids CPU & memory overloading

This speeds up PyCharm's package index processes and avoids CPU & memory overloading

1 Feb 09, 2022
My custom Fedora ostree build with sway/wayland.

Ramblurr's Sway Desktop This is an rpm-ostree based minimal Fedora developer desktop with the sway window manager and podman/toolbox for doing develop

Casey Link 1 Nov 28, 2021
A calculator for common measurements used in sci-fi books.

Sci-fi-speed-calculator A calculator for common measurements used in sci-fi books. Author: Tyler Windmemuth Purpose: This program allows sci-fi author

Tyler Windemuth 0 Apr 22, 2022
Xkcd.py - Script to generate wallpapers based on XKCD comics

xkcd.py Script to generate wallpapers based on XKCD comics Usage python3 xkcd.py

Gideon Wolfe 11 Sep 06, 2022
Get a list of all offline/online members in a discord server

Discord server insights Get a list of all offline/online members in a discord server. Uses Selenium to crawl invite links. Config Download Chrome driv

Prakhar Gurunani 3 Oct 21, 2022
HomeAssistant Linux Companion

Application to run on linux desktop computer to provide sensors data to homeasssistant, and get notifications as if it was a mobile device.

Javier Lopez 10 Dec 27, 2022
ThinkPHP全日志扫描工具,命令行版和BurpSuite插件版

ThinkPHP3和5日志扫描工具,提供命令行版和BurpSuite插件版,尽可能全的发掘网站日志信息 命令行版 安装 git clone https://github.com/r3change/TPLogScan.git cd TPLogScan/ pip install -r requireme

119 Dec 27, 2022
Buggy script to play with GPOs

GPOwned /!\ This is a buggy PoC I made just to play with GPOs in my lab. Don't use it in production! /!\ The script uses impacket and ldap3 to update

45 Dec 15, 2022
Team10 backend - A service which accepts a VRM (Vehicle Registration Mark)

GreenShip - API A service which accepts a VRM (Vehicle Registration Mark) and re

3D Hack 1 Jan 21, 2022
An example of python package

An example of python package Why use packages? It is a good practice to not code the same function twice, and to reuse common code from one python scr

10 Oct 18, 2022
A rough GSL work DynSAGE of my graduation project

DynSAGE Codes w.r.t DynSAGE-Diffuse can be found in function apply_dyn_model_v2 of src/utils.py. The training entrance is Line 144 - 155 of src/main.p

Yuhan Wang 3 Mar 22, 2022
Scientific color maps and standardization tools

Scicomap is a package that provides scientific color maps and tools to standardize your favourite color maps if you don't like the built-in ones. Scicomap currently provides sequential, bi-sequential

Thomas Bury 14 Nov 30, 2022