ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

why catkin package is still needed at ROS runtime?

asked 2019-12-10 03:56:09 -0600

uestclx gravatar image

updated 2019-12-10 04:19:57 -0600

Hi all,

This is probably a stupid question, but I can't wave it out of my head... Why we still need catkin when we run ROS? Isn't it a package building tool? Why it's still needed at runtime?

Because in my understanding, catkin is a tool we used to build packages, almost like an enhanced version of cmake. So normally cmake is not needed when we run executables right?

But when I tried to run ROSCORE in my own environment without catkin package, I got errors when importing.

$ roscore

Traceback (most recent call last): File "/sdcard/ros_runtime/runtime_env/bin/roscore", line 72, in <module> import roslaunch File "/sdcard/ros_runtime/runtime_env/lib/python2.7/dist-packages/roslaunch/__init__.py", line 57, in <module> from .launch import ROSLaunchRunner File "/sdcard/ros_runtime/runtime_env/lib/python2.7/dist-packages/roslaunch/launch.py", line 55, in <module> from roslaunch.nodeprocess import create_master_process, create_node_process File "/sdcard/ros_runtime/runtime_env/lib/python2.7/dist-packages/roslaunch/nodeprocess.py", line 50, in <module> from roslaunch.node_args import create_local_process_args File "/sdcard/ros_runtime/runtime_env/lib/python2.7/dist-packages/roslaunch/node_args.py", line 53, in <module> import roslib.packages File "/sdcard/ros_runtime/runtime_env/lib/python2.7/dist-packages/roslib/__init__.py", line 54, in <module> import roslib.stacks File "/sdcard/ros_runtime/runtime_env/lib/python2.7/dist-packages/roslib/stacks.py", line 46, in <module> import roslib.packages File "/sdcard/ros_runtime/runtime_env/lib/python2.7/dist-packages/roslib/packages.py", line 49, in <module> from catkin.find_in_workspaces import find_in_workspaces as catkin_find ImportError: No module named catkin.find_in_workspaces

Does catkin serve as other functions other than a building tool? What's the concept of "workspace" here? It is different than "build" and "devel" workspace right?

Thanks a lot.

edit retag flag offensive close merge delete

Comments

Could you be specific?

What sort of use are you seeing?

Note: there is ros-$ROS_DISTRO-catkin and there are Python modules and C++ libraries with the name catkin in them.

The latter may be used by nodes to query and introspect the ROS filesystem (ie: a workspace).

gvdhoorn gravatar image gvdhoorn  ( 2019-12-10 04:10:34 -0600 )edit

Sorry for being unclear. I modified the question. Could you please take another look? Thanks a lot.

uestclx gravatar image uestclx  ( 2019-12-10 04:20:38 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
0

answered 2019-12-10 13:16:21 -0600

Dirk Thomas gravatar image

The Python modules missing (catkin.*) are provided by the Python package catkin_pkg. It is responsible for: * finding packages (also in the case after they have been built and installed) * parsing the package manifest * extracting information like registered plugins fe.g. available displays for rviz)

So yes, you do need that Python package at runtime.

edit flag offensive delete link more

Question Tools

1 follower

Stats

Asked: 2019-12-10 03:56:09 -0600

Seen: 205 times

Last updated: Dec 10 '19