ROS的安装以及环境的配置就不多做解释了,搜素一下就有
ros优秀文章https://www.jianshu.com/u/143c9c8061ec
1.启动ROS
roscore
出现这样结果证明ros已经启动,接下来便是启动小海龟节点。
2.启动小海龟节点
重新打开一个终端输入:
rosrun turtlesim turtlesim_node
rosrun:启动新的节点
turtlesim:功能包
turtlesim_node:功能包下的节点
出现如图所示的小海龟,证明节点启动成功。
3.启动键盘控制
rosrun turtlesim turtle_teleop_key
将鼠标放在终端上,通过上下左右键控制乌龟行走路线,如图:
4.可视化工具rqt
(1)rqt_graph
rqt_graph
正在运行的节点,如图所示:
(2)rqt_plot
rqt_plot
5.节点信息
rosnode的几种用法:
rosnode list:查看正在运行的节点
rosnode info node 查看此节点信息
rosnode kill node 杀死此节点
-
rosnode list
:查看正在运行的节点
/rosout:这个节点是随着ros运行而启动的
/teleop_turtle:键盘的节点
/turtlesim:小乌龟的节点 -
rosnode info /turtlesim
查看小乌龟节点信息
可以看到节点的发布,订阅,话题和服务等各种信息
6.主题与节点交互(rostopic)
常用的rostopic的用法:
1.rostopic list 查看主题清单
2.rostopic echo TOPIC 将主题发布的消息输出到屏幕
3.rostopic type TOPIC 输出主题类型
4.rostopic pub TOPIC 将数据发布到主题
(1)查到主题清单
可以看到正在/turtlesim下的主题清单如上图所示。
(2)查看两个节点信息
rosnode info /teleop_turtle
键盘发布者:Publications中有一个主题:/turtle1/cmd_vel [geometry_msgs/Twist]
rosnode info /turtlesim
小乌龟订阅者:Subscriptions中有一个订阅主题:/turtle1/cmd_vel [geometry_msgs/Twist]
由上两种结果可知,第一个节点是先发布/turtle1/cmd_vel [geometry_msgs/Twist]主题,之后第二个节点订阅了这个消息。
(3)通过echo查看节点通过话题发出的消息
rostopic echo /turtle1/cmd_vel
然后通过键盘控制小海龟移动,之后终端则会显示linear(线速度)和angular(角速度):
(4)使用pub发布主题
要想使用pub发布消息,首先我们要知道需要发送什么类型的消息。
终端输入:
rostopic type /turtle1/cmd_vel
查看出类型是:geometry_msgs/Twist
现在重新打开一个小乌龟节点,不开启键盘控制,通过pub直接发布消息控制,命令如下:
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist "linear:
x: 5.0
y: 5.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 1.0"
小乌龟的运动轨迹:
若要小乌龟不停转,命令如下:
rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 1 "linear:
x: 2.0
y: 0.0
z: 0.0
angular:
x: 0.0
y: 0.0
z: 1.0"
看到一直在转圈
6.使用服务(rosservice)
(1)查看正在运行的/turtlesim的服务清单
rosservice list
如下显示:
(2)查看/spawn服务
rosservice info /spawn
Node:当前节点
URI:rosrpc://zhaohua:48701
Type:服务类型
Args:服务参数
(3)调用服务
rosservice call /spawn "x: 3.0
y: 3.0
theta: 0.0
name: 'haigui2'"
在x=3,y=3,角度为0的地方创建了另外一个小海龟2