ROS1(Robot Operating System) 入门学习笔记
Ubuntu 18.04
ROS melodic 1.14.13
环境变量添加 详见:ROS1入门1---工作空间与功能包
打开 工作空间/src 创建新功能包 名为 service_pkg
catkin_create_pkg service_pkg std_msgs rospy roscpp geometry_msgs turtlesim
进入 service_pkg/src
创建文件 client.cpp 内容如下
#include <ros/ros.h>
#include "turtlesim/Spawn.h"
int main(int argc, char **argv)
{
//初始节点
ros::init(argc, argv, "spawn_client");
ros::NodeHandle n;
//堵塞等待 /spawn 服务
ros::service::waitForService("/spawn");
ros::ServiceClient spawn_client = n.serviceClient<turtlesim::Spawn>("/spawn");
turtlesim::Spawn data;
data.request.name = "t1";
data.request.x = 1.0;
data.request.y = 2.0;
ROS_INFO("Client: name:%s x:%0.2f y:%0.2f", data.request.name.c_str(), data.request.x, data.request.y);
spawn_client.call(data);
ROS_INFO("Success name:%s", data.response.name.c_str());
}
进入service_pkg/CMakeLists.txt
添加
add_executable(client src/client.cpp)
target_link_libraries(client ${catkin_LIBRARIES})
回到 工作空间根目录 /ROS1_Learn 编译
catkin_make
打开3个终端
分别输入 :
roscore
rosrun turtlesim turtlesim_node
rosrun service_pkg client
生成了一只新海龟