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
Run Python code right in your Telegram messages

Run Python code right in your Telegram messages Made with Telethon library, TGPy is a tool for evaluating expressions and Telegram API scripts. Instal

29 Nov 22, 2022
Security-related flags and options for C compilers

Getting the maximum of your C compiler, for security

135 Nov 11, 2022
This library attempts to abstract the handling of Sigma rules in Python

This library attempts to abstract the handling of Sigma rules in Python. The rules are parsed using a schema defined with pydantic, and can be easily loaded from YAML files into a structured Python o

Caleb Stewart 44 Oct 29, 2022
DSG - Source code for Digital Scholarship Grant project.

DSG Source code for Dr. Stephanie Tsang's Digital Scholarship Grant project. Work performed by Mr. Wang Minghao while as her Research Assistant. The s

1 Jan 04, 2022
Python module to work with Magneto Database directly without using broken Magento 2 core

Python module to work with Magneto Database directly without using broken Magento 2 core

Egor Shitikov 13 Nov 10, 2022
A simple but flexible plugin system for Python.

PluginBase PluginBase is a module for Python that enables the development of flexible plugin systems in Python. Step 1: from pluginbase import PluginB

Armin Ronacher 1k Dec 16, 2022
Skull shaped MOSFET cells for the Efabless's 130nm process

SkullFET Skull shaped MOSFET cells for the Efabless's 130nm process List of cells Inverter Copyright (C) 2021 Uri Shaked

Wokwi 3 Dec 14, 2022
Personal Chat Assistance

Python-Programming Personal Chat Assistance {% import "bootstrap/wtf.html" as wtf %} titleEVT/title script src="https://code.jquery.com/jquery-3.

PRASH_SMVIT 2 Nov 14, 2021
kodi addon 115网盘

plugin.video.115 kodi addon 115网盘 插件,需要kodi 18以上版本,原码播放需配合 https://github.com/feelfar/115proxy-for-kodi 使用 安装 HEAD 由于release包尚未释出,可直接下载源代码zip包

109 Dec 29, 2022
A parser of Windows Defender's DetectionHistory forensic artifact, containing substantial info about quarantined files and executables.

A parser of Windows Defender's DetectionHistory forensic artifact, containing substantial info about quarantined files and executables.

Jordan Klepser 101 Oct 30, 2022
Sample microservices application demo

Development mode docker-compose -f docker-compose.yml -f docker-compose.dev.yml up -d or export COMPOSE_FILE='docker-compose.yml:docker-compose.dev.ym

Konstantinos Bairaktaris 1 Nov 14, 2021
Simple logger for Urbit pier size, with systemd timer template

urbit-piermon Simple logger for Urbit pier size, with systemd timer template. Syntax piermon.py -i [PATH TO PIER] -o [PATH TO OUTPUT CSV] systemd serv

1 Nov 07, 2021
Virtual Assistant Using Python

-Virtual-Assistant-Using-Python Virtual desktop assistant is an awesome thing. If you want your machine to run on your command like Jarvis did for Ton

Bade om 1 Nov 13, 2021
A simple solution for water overflow problem in Python

Water Overflow problem There is a stack of water glasses in a form of triangle as illustrated. Each glass has a 250ml capacity. When a liquid is poure

Kris 2 Oct 22, 2021
Set of tools to analyze Tinynuke samples

tinynuke-toolset You'll find in that repository a set of tools and scripts I developped to analyze Tinynuke samples. Dll extractor: script used to ext

Heat Miser 14 Aug 18, 2022
A step-by-step tutorial for how to work with some of the most basic features of Nav2 using a Jupyter Notebook in a warehouse environment to create a basic application.

This project has a step-by-step tutorial for how to work with some of the most basic features of Nav2 using a Jupyter Notebook in a warehouse environment to create a basic application.

Steve Macenski 49 Dec 22, 2022
A feed generator. Currently supports generating RSS feeds from Google, Bing, and Yahoo news.

A feed generator. Currently supports generating RSS feeds from Google, Bing, and Yahoo news.

Josh Cardenzana 0 Dec 13, 2021
Odoo. Open Source Apps To Grow Your Business.

Odoo Odoo is a suite of web based open source business apps. The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Mana

Odoo 27.6k Jan 09, 2023
Djangoblog - A blogging site where people can make their accout and write blogs and read other author's blogs

This a blogging site where people can make their accout and write blogs and read other author's blogs.

1 Jan 26, 2022
CaskDB is a disk-based, embedded, persistent, key-value store based on the Riak's bitcask paper, written in Python.

CaskDB - Disk based Log Structured Hash Table Store CaskDB is a disk-based, embedded, persistent, key-value store based on the Riak's bitcask paper, w

886 Dec 27, 2022