ROS package access¶
The RosPack
class provides APIs similar to the rospack
command-line tool distributed with ROS. Like rospack
, its
provides information about package and stack dependency information,
filesystem locations, and manifest access. The Python API is more
efficient than shelling out to rospack
as provides caching and
other optimizations for repeated querying.
-
rospkg.
MANIFEST_FILE
¶ Name of package manifest file, i.e. ‘manifest.xml’.
-
rospkg.
get_package_name
(path) → str[source]¶ Get the name of the ROS package that contains path. This is determined by finding the nearest parent
manifest.xml
file. This routine may not traverse package setups that rely on internal symlinks within the package itself.Parameters: path – filesystem path Returns: Package name or None
if package cannot be found,str
-
class
rospkg.
RosPack
([ros_paths=None])[source]¶ Query information about ROS packages on the local filesystem. This includes information about dependencies, retrieving stack
Manifest
instances, and determining the parent stack of a package.RosPack
can be initialized with the default environment, or its environment configuration can be overridden with alternate ROS path settings.NOTE 1: for performance reasons,
RosPack
caches information about packagesNOTE 2:
RosPack
is not thread-safe.Example:
from rospkg import RosPack rp = RosPack() packages = rp.list() path = rp.get_path('rospy') depends = rp.get_depends('roscpp') depends1 = rp.get_depends('roscpp', implicit=False)
Parameters: ros_paths – Ordered list of paths to search for resources. If None (default), use environment ROS path. -
get_ros_paths
() → [str]¶ Get ROS paths of this instance
-
ros_paths
¶ Get ROS paths of this instance
-
get_manifest
(name) → Manifest¶ Get the
Manifest
of the specified package.Parameters: name – package name, str
Raises: InvalidManifest
-
list
() → [str]¶ List packages.
Returns: complete list of package names in ROS environment
-
get_path
(name) → str¶ Parameters: name – package name, str
Returns: filesystem path of package Raises: ResourceNotFound
-
get_depends
(name[, implicit=True]) → [str]¶ Get explicit and implicit dependencies of a package.
Parameters: - name – package name,
str
- implicit – include implicit (recursive) dependencies,
bool
Returns: list of names of dependencies.
Raises: InvalidManifest
- name – package name,
-
get_depends_on
(name[, implicit=True]) → [str]¶ Get list of packages that depend on a package. If implicit is
True
, this includes implicit (recursive) dependency relationships.Parameters: - name – package name,
str
- implicit – include implicit (recursive) dependencies,
bool
Returns: list of names of dependencies,
[str]
Raises: InvalidManifest
- name – package name,
-
get_rosdeps
(package[, implicit=True]) → [str][source]¶ Collect rosdeps of specified package into a dictionary.
Parameters: - package – package name,
str
- implicit – include implicit (recursive) rosdeps,
bool
Returns: list of rosdep names.
- package – package name,
-
stack_of
(package) → str[source]¶ Parameters: package – package name, str
Returns: name of stack that package is in, or None
if package is not part of a stackRaises: ResourceNotFound
: if package cannot be located
-