why catkin package is still needed at ROS runtime?
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.
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 namecatkin
in them.The latter may be used by nodes to query and introspect the ROS filesystem (ie: a workspace).
Sorry for being unclear. I modified the question. Could you please take another look? Thanks a lot.