roscore
你在运行所有ROS程序前首先要运行的命令。
【注意】:出现没有此包的原因是没有加载环境变量,ROS_PACKAGE_PATH
中没有要找的包的环境变量。你要先加载环境变量。
roscd [本地包名称[/子目录]]
roscd
是cd
的快捷版,可以直接打开到包的位置。
比如:/home/volume/catkin_ws/src/my_package
# cd
volume@lenovo:~$ cd ~/catkin_ws/src/my_package
volume@lenovo:~/catkin_ws/src/my_package$
# roscd
volume@lenovo:~$ roscd my_package/
volume@lenovo:~/catkin_ws/src/my_package$
rospack find [包名称]
输出包所在的位置
volume@lenovo:~$ rospack find my_package
/home/volume/catkin_ws/src/my_package
rosls [本地包名称[/子目录]]
rosls
是ls
的快捷版,可以直接罗列软件包的名称下的目录。
#ls
volume@lenovo:~$ ls ~/catkin_ws/src/my_package
action CMakeLists.txt include msg package.xml src srv
# rosls
volume@lenovo:~$ rosls my_package/
action CMakeLists.txt include msg package.xml src srv
rosnode list
其中:
/rosout
:ROS中相当于stdout/stderr。这个节点用于收集和记录节点调试输出信息,所以它总是在运行的。rosnode info node_name
# 例子
volume@lenovo:~$ rosnode info /turtlesim
--------------------------------------------------------------------------------
Node [/turtlesim] # 节点名字
Publications: # 节点发布的话题Publications
* /rosout [rosgraph_msgs/Log]
* /turtle1/color_sensor [turtlesim/Color]
* /turtle1/pose [turtlesim/Pose]
Subscriptions: # 节点订阅的话题Subscriptions
* /turtle1/cmd_vel [geometry_msgs/Twist]
Services: # 节点提供的服务
* /clear
* /kill
* /reset
* /spawn
* /turtle1/set_pen
* /turtle1/teleport_absolute
* /turtle1/teleport_relative
* /turtlesim/get_loggers
* /turtlesim/set_logger_level
contacting node http://lenovo:35497/ ...
Pid: 4365 # 节点的Pid
Connections: # 计算图中链接的节点
* topic: /rosout
* to: /rosout
* direction: outbound
* transport: TCPROS
* topic: /turtle1/cmd_vel
* to: /teleop_turtle (http://lenovo:35617/)
* direction: inbound
* transport: TCPROS
rosnode ping my_turtle
不分类:
rostopic list
rostopic list -v
rostopic info topic_name
例如:
volume@lenovo:~$ rostopic info /turtle1/cmd_vel
Type: geometry_msgs/Twist # 数据类型
Publishers: # 话题的发布者
* /teleop_turtle (http://lenovo:35617/)
Subscribers: # 话题的订阅者
* /turtlesim (http://lenovo:35497/)
rostopic type topic_name
例如:
volume@lenovo:~$ rostopic type /turtle1/cmd_vel
geometry_msgs/Twist
rostopic echo topic_name
用来在cmd中调试。
rostopic pub topic_name topic_type
rate_times
次rostopic pub -r rate_times topic_name topic_type
例子:
# 消息内容打个tab就能自动补全,然后修改其内容成我们想要的
volume@lenovo:~$ rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 2.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
publishing and latching message. Press ctrl-C to terminate
volume@lenovo:~$ rostopic pub -r 10 /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 2.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 0.0"
rosservice list
rosservice info service_name
rosservice call service_name
# 这个服务的作用是新生成一只海龟,可以看到图中中央位置生成了一只海龟
rosservice call /spawn "x: 5.0
y: 5.0
theta: 0.0
name: 'myturtle'"
rosrun 允许你使用包名直接运行一个包内的节点(而不需要知道这个包的路径)。
用法:
rosrun [package_name] [node_name]
例如:rosrun turtlesim turtlesim_node
,现在我们可以运行turtlesim包中的 turtlesim_node。
用法:
rosrun [package_name] [node_name] __name:=[node_new_name]
例如:
rosrun turtlesim turtlesim_node __name:=my_turtle