1–在ROS系统中,代码分布在许多功能包和功能包集中,在用户的硬盘上将分属不同的文件夹,如果每次定义代码时,都要使用ls
和cd这种命令,将会非常繁琐
2–于是,ROS提供了自己一系列以为前缀的命令和工具–如–rosls,roscd,roscp
3–许多命令,其功能本质上与基本操作系统中常用的命令是一致的,但是它们在ROS环境下使用更加方便
(一)ROS系统中,常用的的命令
1–find命令—–查找ROS系统中相应的package包或者stack堆
语法格式:
rospack find [package name]—-查找相应的包
rospack find [stack name]——查找相应的堆
示例:
rospack find roscpp
结果为:
/opt/ros/indigo/share/roscpp
2–roscd命令—-改变路径到相应的package或者stack
语法格式:
roscd [subdir子目录]
1)定位到相应的package,stack文件
示例:
roscd roscpp
结果:
wei@wei:/opt/ros/indigo/share/roscpp 2)定位到相应的package,stack文件的子文件示例:roscdroscpp/msg结果:wei@wei:/opt/ros/indigo/share/roscpp/msg
3)没有参数时的roscd—-相当于linux中的pwd命令——查看当前工作路径
示例:
roscd
结果:
wei@wei:/opt/ros/indigo$
4)roscd日志——-得到ROS存储日志的文件
示例:
roscd log
3—rosls命令—-罗列相应的package,stack文件夹的文件
语法格式:
rosls [locationname/subdir]
示例:
rosls roscpp_tutorials
结果:
cmake launch package.xml srv
4–善于使用”Tab”建
“Tab”键,在windows系统下,功能只是个制表符,但是在Linux下,这个键的功能非常强大,可以补全命令等等
(二)ROS的核心命令
1)—roscore—–ros+core
作用—-运行基于ROS系统必需的节点和程序的集合,为了保证节点能够通信,至少要有一个roscore在运行.
roscore当前的定义为:
1–master
2–parameter server——参数服务器
3–rosout
示例:
在当前计算机上运行—roscore,结果如下所示:
… logging to /home/wei/.ros/log/82e5ec72-0609-11e6-91b7-3464a936d00c/roslaunch-wei-31331.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.
started roslaunch server http://wei:36563/
ros_comm version 1.11.16
PARAMETERS
* /rosdistro: indigo
* /rosversion: 1.11.16
NODES
auto-starting new master
process[master]: started with pid [31343]
ROS_MASTER_URI=http://wei:11311/
setting /run_id to 82e5ec72-0609-11e6-91b7-3464a936d00c
process[rosout-1]: started with pid [31356]
started core service [/rosout]
2)–rosmsg/rossrv命令
rosmsg=ros+msg————显示—-消息—–的数据结构定义
rossrv=ros+srv————显示—-服务—–的数据结构定义
示例1—–列出—功能包中的—消息
rosmsg package nav_msgs
结果:
nav_msgs/GetMapAction
nav_msgs/GetMapActionFeedback
nav_msgs/GetMapActionGoal
nav_msgs/GetMapActionResult
nav_msgs/GetMapFeedback
nav_msgs/GetMapGoal
nav_msgs/GetMapResult
nav_msgs/GridCells
nav_msgs/MapMetaData
nav_msgs/OccupancyGrid
nav_msgs/Odometry
nav_msgs/Path
3)rosrun—-允许用户不必先改变到相应目录就可以执行在—任意一个功能包下的—-可执行文件
rosrun=ros+run
用法:
rosrun package executable[可执行文件]
示例:运行turtlesim的例子
rosrun turtlesim turtlesim_node
在运行上面这个示例的命令之前,必需先在另外的一个terminal(终端)中启动ROS系统核心的节点和程序的集合,以保证节点
能够正常运行
4)ROS中还可以重命名节点:
示例:
rosrun turtlesim turtlesim_node __name:=my_turtle
在另一个终端terminal中输入:rosnode list
前后两次的结果如下所示:
wei@wei:~ rosnodelist/rosout/turtlesimwei@wei: rosnode list
/my_turtle
/rosout
wei@wei:~ 用rosnodepingmy t urtle命令,可以查看相关信息:结果:wei@wei: rosnode ping my_turtle—————-这个命令好像linux中的ping命令
rosnode: node is [/my_turtle]
pinging /my_turtle with a timeout of 3.0s
xmlrpc reply from http://wei:41535/ time=0.344992ms
xmlrpc reply from http://wei:41535/ time=0.330925ms
xmlrpc reply from http://wei:41535/ time=0.354052ms
xmlrpc reply from http://wei:41535/ time=0.378847ms
xmlrpc reply from http://wei:41535/ time=0.548124ms
xmlrpc reply from http://wei:41535/ time=0.289917ms
5)rosnode=ros+node—显示关于ROS节点(包括发布,订阅和连接)的调试信息.
1—rosnode ping—-测试到一个节点的可连接性—如果如上述显示的这样,说明连通正常
2—rosnode list—-列出活动节点
3—rosnode info—-打印节点信息
6)roslaunch=ros+launch
1—roslaunch通过SSH和在参数服务器上设置参数来局部和远程启动ROS节点,它通过调用一个或者多个
XML配置文件来完成启动过程。在配置文件中会对每一个节点进行描述
用法:
1—在不同的接口启动—-roslaunch -p 1234 package filename.launch
2—在功能包内启动文件–roslaunch package filename.launch
3—在局部节点启动文件–roslaunch –local package filename.launch
7)rostopic=ros+topic
一个用于ROS主题(包括发布,订阅,发布频率和消息)调试信息的工具
1–命令rostopic bw—显示主题的宽度—display bandwidth used by topic
2–rostopic echo—–输出主题信息到屏幕
用法:
rostopic echo [topic]
3–rostopic pub—–发布数据到主题
rostopic pub -1