! 通过ROS内置的turtlesim案例,结合已经介绍ROS命令获取节点、话题、话题消息、服务、服务消息与参数的信息,最终再以编码的方式实现乌龟运动的控制、乌龟位姿的订阅、乌龟生成与乌龟窗体背景颜色的修改。
1. 编写节点 2. 编写 C代码 注意这里要给添加所依赖的功能包 接下来就是配置…’

实战目的
通过ROS内置的turtlesim案例,结合已经介绍ROS命令获取节点、话题、话题消息、服务、服务消息与参数的信息,最终再以编码的方式实现乌龟运动的控制、乌龟位姿的订阅、乌龟生成与乌龟窗体背景颜色的修改。
- 编写节点
- 编写
生成一只小乌龟
C代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
|
#include "ros/ros.h" #include "turtlesim/Spawn.h"
int main(int argc, char *argv[]) { setlocale(LC_ALL,""); ros::init(argc,argv,"set_turtle"); ros::NodeHandle nh; ros::ServiceClient client = nh.serviceClient<turtlesim::Spawn>("/spawn"); ros::service::waitForService("/spawn"); turtlesim::Spawn spawn; spawn.request.x = 1.0; spawn.request.y = 1.0; spawn.request.theta = 1.57; spawn.request.name = "my_turtle"; bool flag = client.call(spawn); if (flag) { ROS_INFO("新的乌龟生成,名字:%s",spawn.response.name.c_str()); } else { ROS_INFO("乌龟生成失败!!!"); }
return 0; }
|
注意这里要给添加所依赖的功能包
1 2 3 4 5 6 7 8
| find_package(catkin REQUIRED COMPONENTS roscpp rospy std_msgs message_generation geometry_msgs turtlesim # 文中添加这句就ok )
|
接下来就是配置 CMakeLists.txt了,如同上篇,就不做过多解释。
未完待续。。。