Skip to content

Quickly load variables from rosparam with good command line error checking.

Notifications You must be signed in to change notification settings

mlautman/rosparam_shortcuts

 
 

Repository files navigation

[OUT OF DATE]

ROS Param Shortcuts

Quickly load variables from rosparam with good command line error checking.

This package enforces the philosophy that there should be no default parameters - everything must be defined by the user in yaml files (or launch files or where ever) otherwise your program should not run. This helps debug why something isn't working correctly - it will tell you exactly what rosparameters are missing.

Features:

  • Outputs all loaded data into consule using ROS_DEBUG, so you won't see it unless you turn it on
  • Namespaces all output within the parent_name
  • Great for having each class have its own parameter namespace
  • Helpful error messages if parameter is missing, explaining where it expects to find it
  • Removes lots of repetitious code
  • Supports datatypes that rosparam does not by default, such as std::size_t, ros::Duration, Eigen::Affine3d
  • Supports loading std::vectors easily, and debugging that data
  • Supports loading an entire list of bool parameters

Developed by Dave Coleman at the University of Colorado Boulder

Status:

  • Build Status Travis - Continuous Integration
  • Build Status ROS Buildfarm - Trusty Devel Source Build
  • Build Status ROS Buildfarm - AMD64 Trusty Debian Build

Install

Ubuntu Debian

sudo apt-get install ros-kinetic-rosparam-shortcuts

Build from Source

To build this package, git clone this repo into a catkin workspace and be sure to install necessary dependencies by running the following command in the root of your catkin workspace:

rosdep install -y --from-paths src --ignore-src --rosdistro kinetic

Code API

See Class Reference

Usage / Demo

See the file src/example.cpp for example code. To run:

roslaunch rosparam_shortcuts example.launch

Your yaml file would look something like the file config/example.yaml:

example:
  control_rate: 100.0 # double
  param1: 20 # int
  param2: 30 # size_t
  param3: 1 # ros::Duration
  param4: [1, 1, 1, 3.14, 0, 0] # Eigen::Affine3d - x, y, z, roll, pitch, yaw
  param5: [1.1, 2.2, 3.3, 4.4] # std::vector<double>

Testing and Linting

To run roslint, use the following command with catkin-tools:

catkin build --no-status --no-deps --this --make-args roslint

To run catkin lint, use the following command with catkin-tools:

catkin lint -W2

There are currently no unit or integration tests for this package. If there were you would use the following command with catkin-tools:

catkin run_tests --no-deps --this -i

Contribute

Please send PRs for new helper functions, fixes, etc!

About

Quickly load variables from rosparam with good command line error checking.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 82.1%
  • C 9.8%
  • CMake 8.1%