Listing system dependencies from a package: "rospack depends" vs "rosdep keys"

Cross-posting from ros - Listing system dependencies from a package: "rospack depends" vs "rosdep keys" - Robotics Stack Exchange


I’m on ROS noetic (Ubuntu 20.04) and I’m trying to get a list of dependencies used by our system. For a given package, let’s say my_can_pkg which is compiled in my current catkin workspace, the list of dependencies output by rospack depends and rosdep keys (or rosdep install -s) is different.

As an example, here’s the output when I run rospack depends my_can_pkg:

catkin
genmsg
genpy
cpp_common
rostime
roscpp_traits
roscpp_serialization
message_runtime
gencpp
geneus
gennodejs
genlisp
message_generation
rosbuild
rosconsole
std_msgs
rosgraph_msgs
xmlrpcpp
roscpp
rosgraph
ros_environment
rospack
roslib
rospy

Here is the output when I run rosdep keys my_can_pkg -i:

python3-yapf-pip
python3-tabulate
python3-autoflake-pip
python3-isort-pip
python3-tqdm
python3-canmatrix
canopen-pip
python-attrs-pip

Why are the 2 sets of dependencies disjointed? Not a single dependency is common between the two lists, why is that?

EDIT: Here are the dependency declarations in the package.xml file

  <buildtool_depend>catkin</buildtool_depend>

  <depend>rospy</depend>
  <depend>canopen-pip</depend>
  <depend>python-attrs-pip</depend>
  <depend>python3-tqdm</depend>
  <depend>python3-tabulate</depend>
  <depend>python3-canmatrix</depend>
  <depend>python3-autoflake-pip</depend>
  <depend>python3-isort-pip</depend>
  <depend>python3-yapf-pip</depend>

Please don’t crosspost questions. It’s considered poor etiquette. Robotics Stack Exchange is the right place to ask questions.

1 Like