# Package Name
## Overview
This is a template: replace, remove, and add where required. Describe here what this package does and what it's meant for in a few sentences.
**Keywords:** example, package, template
Or, add some keywords to the Bitbucket or GitHub repository.
### License
The source code is released under a [BSD 3-Clause license](ros_package_template/LICENSE).
**Author: Péter Fankhauser
Affiliation: [ANYbotics](https://www.anybotics.com/)
Maintainer: Péter Fankhauser, pfankhauser@anybotics.com**
The PACKAGE NAME package has been tested under [ROS] Indigo, Melodic and Noetic on respectively Ubuntu 14.04, 18.04 and 20.04.
This is research code, expect that it changes often and any fitness for a particular purpose is disclaimed.
[](http://rsl-ci.ethz.ch/job/ros_best_practices/)

### Publications
If you use this work in an academic context, please cite the following publication(s):
* P. Fankhauser, M. Bloesch, C. Gehring, M. Hutter, and R. Siegwart: **PAPER TITLE**. IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS), 2015. ([PDF](http://dx.doi.org/10.3929/ethz-a-010173654))
@inproceedings{Fankhauser2015,
author = {Fankhauser, P\'{e}ter and Hutter, Marco},
booktitle = {IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
title = {{PAPER TITLE}},
publisher = {IEEE},
year = {2015}
}
## Installation
### Installation from Packages
To install all packages from the this repository as Debian packages use
sudo apt-get install ros-noetic-...
Or better, use `rosdep`:
sudo rosdep install --from-paths src
### Building from Source
#### Dependencies
- [Robot Operating System (ROS)](http://wiki.ros.org) (middleware for robotics),
- [Eigen] (linear algebra library)
sudo rosdep install --from-paths src
#### Building
To build from source, clone the latest version from this repository into your catkin workspace and compile the package using
cd catkin_workspace/src
git clone https://github.com/ethz-asl/ros_best_practices.git
cd ../
rosdep install --from-paths . --ignore-src
catkin_make
### Running in Docker
Docker is a great way to run an application with all dependencies and libraries bundles together.
Make sure to [install Docker](https://docs.docker.com/get-docker/) first.
First, spin up a simple container:
docker run -ti --rm --name ros-container ros:noetic bash
This downloads the `ros:noetic` image from the Docker Hub, indicates that it requires an interactive terminal (`-t, -i`), gives it a name (`--name`), removes it after you exit the container (`--rm`) and runs a command (`bash`).
Now, create a catkin workspace, clone the package, build it, done!
apt-get update && apt-get install -y git
mkdir -p /ws/src && cd /ws/src
git clone https://github.com/leggedrobotics/ros_best_practices.git
cd ..
rosdep install --from-path src
catkin_make
source devel/setup.bash
roslaunch ros_package_template ros_package_template.launch
### Unit Tests
Run the unit tests with
catkin_make run_tests_ros_package_template
### Static code analysis
Run the static code analysis with
catkin_make roslint_ros_package_template
## Usage
Describe the quickest way to run this software, for example:
Run the main node with
roslaunch ros_package_template ros_package_template.launch
## Config files
Config file folder/set 1
* **config_file_1.yaml** Shortly explain the content of this config file
Config file folder/set 2
* **...**
## Launch files
* **launch_file_1.launch:** shortly explain what is launched (e.g standard simulation, simulation with gdb,...)
Argument set 1
- **`argument_1`** Short description (e.g. as commented in launch file). Default: `default_value`.
Argument set 2
- **`...`**
* **...**
## Nodes
### ros_package_template
Reads temperature measurements and computed the average.
#### Subscribed Topics
* **`/temperature`** ([sensor_msgs/Temperature])
The temperature measurements from which the average is computed.
#### Published Topics
...
#### Services
* **`get_average`** ([std_srvs/Trigger])
Returns information about the current average. For example, you can trigger the computation from the console with
rosservice call /ros_package_template/get_average
#### Parameters
* **`subscriber_topic`** (string, default: "/temperature")
The name of the input topic.
* **`cache_size`** (int, default: 200, min: 0, max: 1000)
The size of the cache.
### NODE_B_NAME
...
## Bugs & Feature Requests
Please report bugs and request features using the [Issue Tracker](https://github.com/ethz-asl/ros_best_practices/issues).
[ROS]: http://www.ros.org
[rviz]: http://wiki.ros.org/rviz
[Eigen]: http://eigen.tuxfamily.org
[std_srvs/Trigger]: http://docs.ros.org/api/std_srvs/html/srv/Trigger.html
[sensor_msgs/Temperature]: http://docs.ros.org/api/sensor_msgs/html/msg/Temperature.html