ROS stack access

The RosStack classes provides APIs similar to the rosstack command-line tool distributed with ROS. Like rosstack, it provides information about stack dependency information, filesystem locations, and manifest access. The Python API is more efficient than shelling out to rosstack as it provides caching and other optimizations for repeated querying.

rospkg.STACK_FILE

Name of stack manifest file, i.e. ‘stack.xml’.

class rospkg.RosStack([ros_root=None[, ros_package_path=None]])

Query information about ROS stacks on the local filesystem. This includes information about dependencies, retrieving stack Manifest instances, and determining the contents of stacks.

RosStack can be initialized with the default environment, or its environment configuration can be overridden with alternate ROS_ROOT and ROS_PACKAGE_PATH settings.

NOTE: for performance reasons, RosPack caches information about packages.

Parameters:
  • ros_root – (optional) override ROS_ROOT.
  • ros_package_path – (optional) override ROS_PACKAGE_PATH. To specify no ROS_PACKAGE_PATH, use the empty string. An assignment of None will use the default path.
get_ros_root() → str

Get the ROS_ROOT configuration of this instance.

get_ros_package_path() → str

Get the ROS_PACKAGE_PATH configuration of this instance.

ros_root

Get the ROS_ROOT configuration of this instance. Read-only.

ros_package_path

Get the ROS_PACKAGE_PATH configuration of this instance. Read-only.

get_manifest(name) → Manifest

Get the Manifest of the specified package.

Parameters:name – package name, str
Raises :InvalidManifest
list() → [str]

List stacks.

Returns:complete list of package names in ROS environment
get_path(name) → str
Parameters:name – stack name, str
Returns:filesystem path of stack
Raises :ResourceNotFound
get_direct_depends(name) → [str]

Get the explicit dependencies of a stack.

Parameters:name – stack name, str
Returns:list of names of direct dependencies
Raises :ResourceNotFound
Raises :InvalidManifest
get_depends(name) → [str]

Get explicit and implicit dependencies of a stack.

Parameters:name – stack name, str
Returns:list of names of dependencies.
Raises :InvalidManifest
packages_of(stack) → [str]
Returns:name of packages that are part of stack
Raises :ResourceNotFound if stack cannot be located
get_stack_version(stack) → str
Parameters:env – override environment variable dictionary
Returns:version number of stack, or None if stack is unversioned.
rospkg.expand_to_packages(names, rospack, rosstack) -> ([str], [str])

Expand names into a list of packages. Names can either be of packages or stacks.

Parameters:
  • names – list of names of stacks or packages, [str]
  • rospackRosPack instance
  • rosstackRosStack instance
Returns:

([packages], [not_found]). expand_packages() returns two lists. The first is of packages names. The second is a list of names for which no matching stack or package was found. Lists may have duplicates.

rospkg.get_stack_version_by_dir(stack_dir) → str

Get stack version where stack_dir points to root directory of stack.

Parameters:env – override environment variable dictionary
Returns:version number of stack, or None if stack is unversioned.

Project Versions

Previous topic

ROS package access

Next topic

ROS environment variable access

This Page