<> <> = ROS Command-line tools = <> == Common user tools == The following tools are built when a top-level make is called in {{{$ROS_ROOT}}}. They are installed to {{{$ROS_ROOT/bin}}}, which should have been added to your {{{PATH}}} variable as part of the installation process. If this is not the case, please follow the [[ROS/Installation|Installation Guide]] === rosbag === [[rosbag]] is a command-line tool for performing various operations on ROS [[Bags|bag files]], including playing, recording, and validating. === ros_readbagfile === See [[ROS/Tutorials/reading msgs from a bag file]] for help and a tutorial on how to use the 3rd-party `ros_readbagfile` command-line tool. === rosbash === [[rosbash]] is not a command, but rather a suite of commands and functionality. It requires that you source the contents of the rosbash file {{{ source $ROS_ROOT/tools/rosbash/rosbash }}} which, if you followed the installation guide, should already be done by your bashrc file. rosbash provides the commands `roscd` and `rosed`, in addition to adding correct tab-completion functionality to `roscd`, `rosed`, `rosmake`, and `rosrun`. === roscd === `roscd` is part of the [[rosbash]] suite. It allows you to cd directly to a package, stack, or common location by name rather than having to know the package path. Usage: {{{ roscd locationname[/subdir] }}} Example: {{{ roscd roscpp/include }}} roscd without an argument will take you {{{$ROS_ROOT}}}. In addition to your packages and stacks, there are some common locations, "log", and "test_results" which will take you directly to those locations. For advanced users, you can extend {{{roscd}}} with your own keywords by modifying the {{{$ROS_LOCATIONS}}} environment variable to contain a colon-separated list of keys and locations that will be included in the roscd path. For example, {{{ export $ROS_LOCATIONS="rospkg=/path/to/rospkg:stairpkg=/path/to/stairpkg" }}} Prior to ROS-0.8, you could roscd to the first directory on your {{{$ROS_PACKAGE_PATH}}} using the pkg keyword. This functionality can be restored with: {{{ export $ROS_LOCATIONS="pkg=$ROS_PACKAGE_PATH" }}} === rosclean === <> Cleanup filesystem resources (e.g. log files) created by ROS. See [[rosclean]]. === roscore === [[roscore]] runs the ROS Core Stack ([[Master]], [[Parameter Server]], [[rosout]], etc...). === rosdep === Documented at [[rosdep]], this installs system dependencies Usage: {{{ rosdep install PACKAGE_NAME }}} === rosed === `rosed` is part of the [[rosbash]] suite. It allows you to directly edit a file within a package by package name rather than having to know the package path. Usage: {{{ rosed packagename filename }}} Example: {{{ rosed roscpp ros.h }}} If the filename is not uniquely defined within the package, a menu will prompt you to choose which of the possible files you want to edit. `rosed` will open the editor defined in your {{{$EDITOR}}} environmental variable, or else default to {{{vim}}}. === roscreate-pkg === `roscreate-pkg` creates common [[Manifest]], [[CMakeLists]], [[Doxygen]] and other files necessary for a new ROS package. It is part of the [[roscreate]] package. === roscreate-stack === `roscreate-stack` creates common [[Stack Manifest]], [[CMakeLists]] and other files necessary for a new ROS stack. It is part of the [[roscreate]] package. === rosrun === `rosrun` allows you to run an executable in an arbitrary package without having to cd (or roscd) there first. Usage: {{{ rosrun package executable }}} Example: {{{ rosrun roscpp_tutorials talker }}} === roslaunch === [[roslaunch]] launches a set of nodes from an XML configuration file and includes support for launching on remote machines. More documentation is available on the [[roslaunch|roslaunch page]]. === roslocate === '''Removed in ROS 1.4: this is now part of the [[rosinstall]] tool''' [[roslocate]] finds the repository that a ROS package is stored in, e.g. `roslocate svn tf`. It makes it easy to quickly checkout the source of a package: {{{svn co `roslocate svn tf`}}}. More documentation is available on the [[roslocate|roslocate page]]. === rosmake === See the [[rosmake]] page. === rosmsg === [[rosmsg]] displays [[Message]] data structure definitions. More documentation is available on the [[rosmsg|rosmsg page]]. === rosnode === [[rosnode]] displays runtime node information and lets you ping nodes to check connectivity. More documentation is available on the [[rosnode|rosnode page]]. === rospack === See the [[rospack]] page. === rosparam === [[rosparam]] enables getting and setting parameter server values from the command-line using YAML-encoded text. === rossrv === [[rossrv]] displays Service [[srv]] data structure definitions. More documentation is available on the [[rossrv|rossrv page]]. === rosservice === [[rosservice]] displays run-time information about [[Services]] and also lets you print out messages being sent to a topic. More documentation is available on the [[rosservice|rosservice page]]. === rosstack === See the [[rosstack]] page. === rostopic === [[rostopic]] displays run-time information about [[Topics]] and also lets you print out messages being sent to a topic. More documentation is available on the [[rostopic|rostopic page]]. === rosversion === <> Report the version of a ROS [[Stacks|stack]]. == Graphical tools == The ROS graphical tools often require additional dependencies before they can be used, such as graphviz and Python GTK. You can use `bash <(rosdep satisfy PACKAGE_NAME)` to quickly install the dependencies for these tools. === rqt_bag === [[rqt_bag]] is a graphical tool for viewing data in ROS [[Bags|bag files]]. === rqt_deps === [[rqt_deps]] generates a PDF of ROS dependencies. === rqt_graph === `rqt_graph` displays an interactive graph of ROS nodes and topics. See the [[rosgraph]] package for documentation. === rqt_plot === [[rqt_plot]] plots numerical data on a ROS topic over time. == Less-used tools == The following tools may be commonly used by internal tools, but aren't often used by end users. === gendeps === See the [[roslib]] page [[/Review]]