ROSBuzz_MISTLab/readme.md

103 lines
3.6 KiB
Markdown
Raw Normal View History

2016-10-08 19:16:55 -03:00
ROS Implemenation of Buzz
=========================
2016-10-08 19:09:32 -03:00
What is Buzz?
=============
Buzz is a novel programming language for heterogeneous robots swarms.
Buzz advocates a compositional approach, by offering primitives to define swarm behaviors both in a bottom-up and in a top-down fashion.
Bottom-up primitives include robot-wise commands and manipulation of neighborhood data through mapping/reducing/filtering operations.
Top-down primitives allow for the dynamic management of robot teams, and for sharing information globally across the swarm.
Self-organization results from the fact that the Buzz run-time platform is purely distributed.
The language can be extended to add new primitives (thus supporting heterogeneous robot swarms) and can be laid on top of other frameworks, such as ROS.
More information is available at http://the.swarming.buzz/wiki/doku.php?id=start.
2016-10-09 22:23:33 -03:00
Description:
============
2017-12-08 20:52:20 -04:00
Rosbuzz package is the ROS version of Buzz. The package contains a node called “rosbuzz_node”, which implements buzz virtual machine (BVM) as a node in ROS.
2016-10-09 22:23:33 -03:00
2016-10-08 19:09:32 -03:00
Downloading ROS Package
=======================
2016-10-09 03:04:13 -03:00
$ git clone https://github.com/MISTLab/ROSBuzz.git rosbuzz
2016-10-08 19:09:32 -03:00
Requirements
2016-10-08 19:22:03 -03:00
============
2016-10-08 19:43:38 -03:00
2016-10-08 19:47:43 -03:00
* Buzz :
2016-10-08 19:43:38 -03:00
You can download the development sources through git:
2016-10-08 19:09:32 -03:00
$ git clone https://github.com/MISTLab/Buzz.git buzz
2016-10-08 19:47:43 -03:00
* ROS binary distribution (Indigo or higher) with catkin (could be used with older versions of ROS with catkin but not tested)
2016-10-08 19:43:38 -03:00
2016-10-08 19:09:32 -03:00
You need the following package:
2016-10-08 19:47:43 -03:00
* mavros_msgs :
2016-10-08 19:43:38 -03:00
You can install using apt-get:
2016-10-08 19:09:32 -03:00
2016-10-08 19:43:38 -03:00
$ sudo apt-get install ros-<distro>-mavros ros-<distro>-mavros-extras
2016-10-08 19:09:32 -03:00
Compilation
2016-10-08 19:22:03 -03:00
===========
2016-10-08 19:09:32 -03:00
To compile the ros package, execute the following:
$ cd catkin_ws
$ catkin_make
$ source devel/setup.bash
Run
===
2016-10-09 22:23:33 -03:00
To run the ROSBuzz package using the launch file, execute the following:
2016-10-08 19:09:32 -03:00
2017-12-08 20:44:24 -04:00
$ roslaunch rosbuzz rosbuzz.launch
2017-12-08 20:44:24 -04:00
Note : Before launching the ROSBuzz node, verify all the parameters in the launch file. A launch file using gdb is available also (rosbuzzd.launch).
* Buzz scripts: Several behavioral scripts are included in the "buzz_Scripts" folder, such as "graphformGPS.bzz" uses in the ICRA publication below and the "testaloneWP.bzz" to control a single drone with a ".csv" list of waypoints. The script "empty.bzz" is a template script.
2016-10-08 19:09:32 -03:00
Publisher
2016-10-08 19:22:03 -03:00
=========
2016-10-08 19:09:32 -03:00
* Messages from Buzz (BVM):
2017-12-08 20:44:24 -04:00
The package publishes mavros_msgs/Mavlink message "outMavlink".
* Command to the flight controller:
The package publishes geometry_msgs/PoseStamped message "setpoint_position/local".
2016-10-08 19:09:32 -03:00
Subscribers
-----------
* Current position of the Robot:
2017-12-08 20:44:24 -04:00
The package subscribes to sensor_msgs/NavSatFix message "global_position/global", to a std_msgs/Float64 message "global_position/rel_alt" and to a geometry_msgs/PoseStamped message "local_position/pose".
2016-10-08 19:09:32 -03:00
* Messages to Buzz (BVM):
2017-12-08 20:44:24 -04:00
The package subscribes to mavros_msgs/Mavlink message with a topic name of "inMavlink".
2016-10-08 19:09:32 -03:00
2017-12-08 20:44:24 -04:00
* Status:
The package subscribes to mavros_msgs/BatteryStatus message "battery" and to either a mavros_msgs/ExtendedState message "extended_state" or a mavros_msgs/State message "state".
2016-10-08 19:09:32 -03:00
Service
-------
2017-12-08 20:44:24 -04:00
* Remote Controller:
The package offers a mavros_msgs/CommandLong service "buzzcmd" to control its state.
2016-10-08 19:09:32 -03:00
2017-12-08 20:44:24 -04:00
References
2016-10-08 19:09:32 -03:00
------
2017-12-08 20:44:24 -04:00
* ROS and Buzz : consensus-based behaviors for heterogeneous teams. Submitted to the Internaional Conference on Robotics and Automation (September 2017). 6pgs. St-Onge, D., Shankar Varadharajan, V., Li, G., Svogor, I. and Beltrame, G. arXiv : https://arxiv.org/abs/1710.08843
2016-10-08 19:09:32 -03:00
2017-12-08 20:44:24 -04:00
* Over-The-Air Updates for Robotic Swarms. Accepted by IEEE Software (September 2017 - pending minor revision). 8pgs. Shankar Varadharajan, V., St-Onge, D., Guß, C. and Beltrame, G.