Started exploring ROS tutorial Navigating the ROS Filesystem which introduces ROS filesystem concepts, and covers using the roscd, rosls, and rospack commandline tools.
Tutorial gives Quick Overview of Filesystem Concepts
Packages: Packages are the lowest level of ROS software organization. They can contain anything: libraries, tools, executables, etc.
Manifest: A manifest is a description of a package. Its most important role is to define dependencies between packages.
Stacks: Stacks are collections of packages that form a higher-level library.
Stack Manifest: These are just like normal manifests, but for stacks.
I quickly tried
$ rospack find roscpp
which returned
/opt/ros/electric/stacks/ros_comm/clients/cpp/roscpp
As per tutorial I tried
$ roscd roscpp
$ pwd
$ roscd roscpp/include
$ pwd
This tutorial mentions about few environment variables
$ echo $ROS_PACKAGE_PATH
$ echo $ROS_ROOT
$ rosls roscpp_tutorials
Would return:
add_two_ints_client listener listener_with_userdata srv
add_two_ints_server listener_async_spin Makefile srv_gen
add_two_ints_server_class listener_class manifest.xml talker
anonymous_listener listener_multiple node_handle_namespaces time_api
babbler listener_single_message notify_connect timers
bin listener_threaded_spin parameters
CMakeLists.txt listener_unreliable ROS_NOBUILD
custom_callback_processing listener_with_tracked_object src
I also tried Tab Completion, which works well
To conclude, following ROS tools are covered in ROS tutorial
rospack = ros + pack(age)
rosstack = ros + stack
roscd = ros + cd
rosls = ros + ls