邢台学校网站建设,合肥seo网站建设费用,什么网站可以找人做软件下载,wordpress 主题哪里买客户端的优化
服务通信自定义srv调用#xff0c;客户端随意提交两个数#xff0c;完成数的相加。也就是实现参数的动态提交#xff1a; 1.格式#xff1a;rosrun xxxx xxxx 12 34 2.节点执行时候#xff0c;需要获取命令中的参数#xff0c;并且组织进 request 代码中应…客户端的优化
服务通信自定义srv调用客户端随意提交两个数完成数的相加。也就是实现参数的动态提交 1.格式rosrun xxxx xxxx 12 34 2.节点执行时候需要获取命令中的参数并且组织进 request 代码中应该加入
//优化实现。获取命令的参数if (argc !3){ROS_INFO(提交的参数不对);return 1;}改掉固定输入值 // 5.组织请求数据plumbing_server_client::AddInts ai;ai.request.num1 atoi(argv[1]);ai.request.num2 atoi(argv[2]);总体代码在demo02里面改动demo01服务端不改动。
/*需求: 编写两个节点实现服务通信客户端节点需要提交两个整数到服务器服务器需要解析客户端提交的数据相加后将结果响应回客户端客户端再解析服务器实现:1.包含头文件2.初始化 ROS 节点3.创建 ROS 句柄4.创建 客户端 对象5.请求服务接收响应实现参数的动态提交1.格式rosrun xxxx xxxx 12 342.节点执行时候需要获取命令中的参数并且组织进 request*/
// 1.包含头文件
#include ros/ros.h
#include plumbing_server_client/AddInts.h
int main(int argc, char *argv[])
{setlocale(LC_ALL,);//优化实现。获取命令的参数if (argc !3){ROS_INFO(提交的参数不对);return 1;}// 2.初始化 ROS 节点ros::init(argc,argv,dabao);// 3.创建 ROS 句柄ros::NodeHandle nh;// 4.创建 客户端 对象ros::ServiceClient client nh.serviceClientplumbing_server_client::AddInts(addints);// 5.组织请求数据plumbing_server_client::AddInts ai;ai.request.num1 atoi(argv[1]);ai.request.num2 atoi(argv[2]);// 6.处理响应bool flag client.call(ai);// 7.处理响应if (flag){ROS_INFO(响应成功);ROS_INFO(请求正常处理,响应结果:%d,ai.response.sum);}else{ROS_ERROR(请求处理失败....);return 1;}return 0;
}完毕之后ctrlshiftb进行编译。
然后ctrlaltt打开终端
输入roscore启动ros
然后新开一个终端
输入bash
source ./devel/setup.bash
rosrun plumbing_server_client demo01_server然后新开一个终端 输入
source ./devel/setup.bash
rosrun plumbing_server_client demo02_client 12 334输出结果如下 1.格式rosrun xxxx xxxx 12 34 注意rosrun的格式在客户端的格式如果后面没有两个数就会变成提交的参数不对。