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
Displays Christmas-themed ASCII art

Christmas Color Scripts Displays Christmas-themed ASCII art. This was mainly inspired by DistroTube's Shell Color Scripts Screenshots ASCII Shadow Tex

1 Aug 09, 2022
This repository contains the code for the python introduction lab

This repository contains the code for the python introduction lab. The purpose is to have a fairly simple python assignment that introduces the basic features and tools of python

1 Jan 24, 2022
Today I Commit (1일 1커밋) 챌린지 알림 봇

Today I Commit Challenge 1일1커밋 챌린지를 위한 알림 봇 config.py github_token = "github private access key" slack_token = "slack authorization token" channel = "

sunho 4 Nov 08, 2021
Experiments with Tox plugin system

The project is an attempt to add to the tox some missing out of the box functionality. Basically it is just an extension for the tool that will be loa

Volodymyr Vitvitskyi 30 Nov 26, 2022
Fetch PRs from GitHub and analyze which ones are unmergeable

Set up token Generate a personal access token on GitHub. Add repo permissions. export GH_TOKEN="abcdefg" Pull PR data make Usually, GitHub doesn't h

Stefan van der Walt 1 Nov 05, 2021
A synchronous, single-threaded interface for starting processes on Linux

A synchronous, single-threaded interface for starting processes on Linux

Spencer Baugh 27 Jan 28, 2022
Syntax highlighting for yarn.lock and bun.lockb files

Yarn.lock Syntax Highlighting Syntax highlighting for yarn.lock and bun.lockb files Installation Plugin is not publushed yet on Package Control, to in

Alexander Kuznetsov 4 Jul 06, 2022
MIT version of the PyMca XRF Toolkit

PyMca This is the MIT version of the PyMca XRF Toolkit. Please read the LICENSE file for details. Installation Ready-to-use packages are available for

V. Armando Solé 43 Nov 23, 2022
Build your own Etherscan with web3.py

Build your own Etherscan with web3.py Video Tutorial: Run it pip3 install -r requirements.txt export FLASK_APP=app export FLASK_ENV=development flask

35 Jan 02, 2023
Scripts to integrate DFIR-IRIS, MISP and TimeSketch

Scripts to integrate DFIR-IRIS, MISP and TimeSketch

Koen Van Impe 20 Dec 16, 2022
A place where one-off ideas/partial projects can live comfortably

A place to post ideas, partial projects, or anything else that doesn't necessarily warrant its own repo, from my mind to the web.

Carson Scott 2 Feb 25, 2022
System Information Utility With Python

System-Information-Utility This is a simple utility, for the terminal, which allows you to find out information about your PC. It's very easy to run t

2 Apr 15, 2022
python's memory-saving dictionary data structure

ConstDict python代替的Dict数据结构 若字典不会增加字段,只读/原字段修改 使用ConstDict可节省内存 Dict()内存主要消耗的地方: 1、Dict扩容机制,预留内存空间 2、Dict也是一个对象,内部会动态维护__dict__,增加slot类属性可以节省内容 节省内存大小

Grenter 1 Nov 03, 2021
Google Foobar challenge solutions from my experience and other's on the web.

Google Foobar challenge Google Foobar challenge solutions from my experience and other's on the web. Note: Problems indicated with "Mine" are tested a

Islam Ayman 6 Jan 20, 2022
About A python based Apple Quicktime protocol,you can record audio and video from real iOS devices

介绍 本应用程序使用 python 实现,可以通过 USB 连接 iOS 设备进行屏幕共享 高帧率(30〜60fps) 高画质 低延迟(200ms) 非侵入性 支持多设备并行 Mac OSX 安装 python =3.7 brew install libusb pkg-config 如需使用 g

YueC 124 Nov 30, 2022
PyLaboratory 0 Feb 07, 2022
Live tracking, flight database and competition framework

SkyLines SkyLines is a web platform where pilots can share their flights with others after, or even during flight via live tracking. SkyLines is a sor

SkyLines 367 Dec 27, 2022
MindF**k it's a programming language as BrainFuck, but with some cool features.

MindF**k Description MindF**k it's a programming language as BrainFuck, but with some cool features. Symbol What does symbol mean Next slot Previo

tixcode 0 Jun 15, 2022
Wrapper for the undocumented CodinGame API. Can be used both synchronously and asynchronlously.

codingame API wrapper Pythonic wrapper for the undocumented CodinGame API. Installation Python 3.6 or higher is required. Install codingame with pip:

Takos 19 Jun 20, 2022
An integrated library for checking email if it is registered on social media

An integrated library for checking email if it is registered on social media

Sidra ELEzz 13 Dec 08, 2022