ROS中使用命令行实现topic和service 通信
一,通过小海龟仿真器来学习topic和service通信,便于后期学习topic和service代码框架的理解。
首先分别使用终端打开rosmaster、turtlesim、和键盘节点
打开终端,
roscore再开一个终端
rosrun turtlesim turtlesim_node再开终端
rosrun turtlesim turtle_teleop_key接下来可以通过rqt可视化工具查看不同节点之间的通信方式
终端输入rqt_graph
二、命令行
rosnode list通过该命令查看当前rosmaster中有多少注册的节点,已经查看节点的信息
rostopic list通过该命令查看当前存在多少注册话题名称
我们接下来使用/turtle1/cmd_vel,对turtle1的速度进行发布
rostopic pub -r 10 turtle1/cmd_vel geometry_msgs/Twist "linear: x: 0.5 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 1"这串代码为turtle1的速度信息,以x方向0.5m/s,绕Z轴1rad/s的速度进行运动。
#######################rosservice###############################
rosservice list通过该命令查看当前存在多少注册服务名称
这里我们分别使用/clear、/kill来清理仿真器和杀死某只小海龟,如:
rosservice call /clear我们也可以通过/spawn来生成一个新的小海龟
rosservice call /spawn "x: 10.0 y: 5.0 theta: 0.0 name: 'turtle2'" name: "turtle2"这样在仿真器中对应的位置,一只你命名的海龟,按照你给的方位坐标出现在仿真器中。
大家可以自己尝试生成一只turtle2,用命令行的方式给第二只小海龟发布速度。让第二只小海龟走一个正方形。
