当前位置: 首页 > news >正文

客户关系管理案例10个排名seo公司

客户关系管理案例10个,排名seo公司,有哪些可以做h5的网站,网站营销方法文章目录 一、基础理论知识二、C实现三、Python实现 一、基础理论知识 参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器#xff0c;可以将数据存储在该容器中#xff0c;被不同的节点调用#xff0c;当然不同的节点… 文章目录 一、基础理论知识二、C实现三、Python实现 一、基础理论知识 参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器可以将数据存储在该容器中被不同的节点调用当然不同的节点也可以往其中存储数据关于参数服务器的典型应用场景如下: 导航实现时会进行路径规划比如: 全局路径规划设计一个从出发点到目标点的大致路径。局部路径规划会根据当前路况生成时时的行进路径 上述场景中全局路径规划和局部路径规划时就会使用到参数服务器 路径规划时需要参考小车的尺寸我们可以将这些尺寸信息存储到参数服务器全局路径规划节点与局部路径规划节点都可以从参数服务器中调用这些参数 参数服务器一般适用于存在数据共享的一些应用场景。 概念 以共享的方式实现不同节点之间数据交互的通信模式。 作用 存储一些多节点共享的数据类似于全局变量。 案例 实现参数增删改查操作。 参数服务器实现是最为简单的该模型如下图所示,该模型中涉及到三个角色: ROS Master (管理者)Talker (参数设置者)Listener (参数调用者) ROS Master 作为一个公共容器保存参数Talker 可以向容器中设置参数Listener 可以获取参数。 整个流程由以下步骤实现: 1.Talker 设置参数 Talker 通过 RPC 向参数服务器发送参数(包括参数名与参数值)ROS Master 将参数保存到参数列表中。 2.Listener 获取参数 Listener 通过 RPC 向参数服务器发送参数查找请求请求中包含要查找的参数名。 3.ROS Master 向 Listener 发送参数值 ROS Master 根据步骤2请求提供的参数名查找参数值并将查询结果通过 RPC 发送给 Listener。 参数可使用数据类型: 32-bit integersbooleansstringsdoublesiso8601 dateslistsbase64-encoded binary data字典 注意:参数服务器不是为高性能而设计的RPC通信协议的局限性因此最好用于存储静态的非二进制的简单数据 二、C实现 需求:实现参数服务器参数的增删改查操作。 在 C 中实现参数服务器数据的增删改查可以通过两套 API 实现: ros::NodeHandleros::param 下面为具体操作演示 1.参数服务器新增(修改)参数 /*参数服务器操作之新增与修改(二者API一样)_C实现:在 roscpp 中提供了两套 API 实现参数操作ros::NodeHandlesetParam(键,值)ros::paramset(键,值)示例:分别设置整形、浮点、字符串、bool、列表、字典等类型参数修改(相同的键不同的值)*/ #include ros/ros.hint main(int argc, char *argv[]) {ros::init(argc,argv,set_update_param);std::vectorstd::string stus;stus.push_back(zhangsan);stus.push_back(李四);stus.push_back(王五);stus.push_back(孙大脑袋);std::mapstd::string,std::string friends;friends[guo] huang;friends[yuang] xiao;//NodeHandle--------------------------------------------------------ros::NodeHandle nh;nh.setParam(nh_int,10); //整型nh.setParam(nh_double,3.14); //浮点型nh.setParam(nh_bool,true); //boolnh.setParam(nh_string,hello NodeHandle); //字符串nh.setParam(nh_vector,stus); // vectornh.setParam(nh_map,friends); // map//修改演示(相同的键不同的值)nh.setParam(nh_int,10000);//param--------------------------------------------------------ros::param::set(param_int,20);ros::param::set(param_double,3.14);ros::param::set(param_string,Hello Param);ros::param::set(param_bool,false);ros::param::set(param_vector,stus);ros::param::set(param_map,friends);//修改演示(相同的键不同的值)ros::param::set(param_int,20000);return 0; }2.参数服务器获取参数 /*参数服务器操作之查询_C实现:在 roscpp 中提供了两套 API 实现参数操作ros::NodeHandleparam(键,默认值) 存在返回对应结果否则返回默认值getParam(键,存储结果的变量)存在,返回 true,且将值赋值给参数2若果键不存在那么返回值为 false且不为参数2赋值getParamCached键,存储结果的变量)--提高变量获取效率存在,返回 true,且将值赋值给参数2若果键不存在那么返回值为 false且不为参数2赋值getParamNames(std::vectorstd::string)获取所有的键,并存储在参数 vector 中 hasParam(键)是否包含某个键存在返回 true否则返回 falsesearchParam(参数1参数2)搜索键参数1是被搜索的键参数2存储搜索结果的变量ros::param ----- 与 NodeHandle 类似*/#include ros/ros.hint main(int argc, char *argv[]) {setlocale(LC_ALL,);ros::init(argc,argv,get_param);//NodeHandle--------------------------------------------------------/*ros::NodeHandle nh;// param 函数int res1 nh.param(nh_int,100); // 键存在int res2 nh.param(nh_int2,100); // 键不存在ROS_INFO(param获取结果:%d,%d,res1,res2);// getParam 函数int nh_int_value;double nh_double_value;bool nh_bool_value;std::string nh_string_value;std::vectorstd::string stus;std::mapstd::string, std::string friends;nh.getParam(nh_int,nh_int_value);nh.getParam(nh_double,nh_double_value);nh.getParam(nh_bool,nh_bool_value);nh.getParam(nh_string,nh_string_value);nh.getParam(nh_vector,stus);nh.getParam(nh_map,friends);ROS_INFO(getParam获取的结果:%d,%.2f,%s,%d,nh_int_value,nh_double_value,nh_string_value.c_str(),nh_bool_value);for (auto stu : stus){ROS_INFO(stus 元素:%s,stu.c_str()); }for (auto f : friends){ROS_INFO(map 元素:%s %s,f.first.c_str(), f.second.c_str());}// getParamCached()nh.getParamCached(nh_int,nh_int_value);ROS_INFO(通过缓存获取数据:%d,nh_int_value);//getParamNames()std::vectorstd::string param_names1;nh.getParamNames(param_names1);for (auto name : param_names1){ROS_INFO(名称解析name %s,name.c_str()); }ROS_INFO(----------------------------);ROS_INFO(存在 nh_int 吗? %d,nh.hasParam(nh_int));ROS_INFO(存在 nh_intttt 吗? %d,nh.hasParam(nh_intttt));std::string key;nh.searchParam(nh_int,key);ROS_INFO(搜索键:%s,key.c_str());*///param--------------------------------------------------------ROS_INFO();int res3 ros::param::param(param_int,20); //存在int res4 ros::param::param(param_int2,20); // 不存在返回默认ROS_INFO(param获取结果:%d,%d,res3,res4);// getParam 函数int param_int_value;double param_double_value;bool param_bool_value;std::string param_string_value;std::vectorstd::string param_stus;std::mapstd::string, std::string param_friends;ros::param::get(param_int,param_int_value);ros::param::get(param_double,param_double_value);ros::param::get(param_bool,param_bool_value);ros::param::get(param_string,param_string_value);ros::param::get(param_vector,param_stus);ros::param::get(param_map,param_friends);ROS_INFO(getParam获取的结果:%d,%.2f,%s,%d,param_int_value,param_double_value,param_string_value.c_str(),param_bool_value);for (auto stu : param_stus){ROS_INFO(stus 元素:%s,stu.c_str()); }for (auto f : param_friends){ROS_INFO(map 元素:%s %s,f.first.c_str(), f.second.c_str());}// getParamCached()ros::param::getCached(param_int,param_int_value);ROS_INFO(通过缓存获取数据:%d,param_int_value);//getParamNames()std::vectorstd::string param_names2;ros::param::getParamNames(param_names2);for (auto name : param_names2){ROS_INFO(名称解析name %s,name.c_str()); }ROS_INFO(----------------------------);ROS_INFO(存在 param_int 吗? %d,ros::param::has(param_int));ROS_INFO(存在 param_intttt 吗? %d,ros::param::has(param_intttt));std::string key;ros::param::search(param_int,key);ROS_INFO(搜索键:%s,key.c_str());return 0; } 3.参数服务器删除参数 /* 参数服务器操作之删除_C实现:ros::NodeHandledeleteParam(键)根据键删除参数删除成功返回 true否则(参数不存在)返回 falseros::paramdel(键)根据键删除参数删除成功返回 true否则(参数不存在)返回 false*/ #include ros/ros.hint main(int argc, char *argv[]) { setlocale(LC_ALL,);ros::init(argc,argv,delete_param);ros::NodeHandle nh;bool r1 nh.deleteParam(nh_int);ROS_INFO(nh 删除结果:%d,r1);bool r2 ros::param::del(param_int);ROS_INFO(param 删除结果:%d,r2);return 0; }1.列出参数服务器中的参数及获取某个参数的值 三、Python实现 1.参数服务器新增(修改)参数 #! /usr/bin/env python 参数服务器操作之新增与修改(二者API一样)_Python实现: import rospyif __name__ __main__:rospy.init_node(set_update_paramter_p)# 设置各种类型参数rospy.set_param(p_int,10)rospy.set_param(p_double,3.14)rospy.set_param(p_bool,True)rospy.set_param(p_string,hello python)rospy.set_param(p_list,[hello,haha,xixi])rospy.set_param(p_dict,{name:hulu,age:8})# 修改rospy.set_param(p_int,100) 2.参数服务器获取参数 #! /usr/bin/env python参数服务器操作之查询_Python实现: get_param(键,默认值)当键存在时返回对应的值如果不存在返回默认值get_param_cachedget_param_nameshas_paramsearch_param import rospyif __name__ __main__:rospy.init_node(get_param_p)#获取参数int_value rospy.get_param(p_int,10000)double_value rospy.get_param(p_double)bool_value rospy.get_param(p_bool)string_value rospy.get_param(p_string)p_list rospy.get_param(p_list)p_dict rospy.get_param(p_dict)rospy.loginfo(获取的数据:%d,%.2f,%d,%s,int_value,double_value,bool_value,string_value)for ele in p_list:rospy.loginfo(ele %s, ele)rospy.loginfo(name %s, age %d,p_dict[name],p_dict[age])# get_param_cachedint_cached rospy.get_param_cached(p_int)rospy.loginfo(缓存数据:%d,int_cached)# get_param_namesnames rospy.get_param_names()for name in names:rospy.loginfo(name %s,name)rospy.loginfo(-*80)# has_paramflag rospy.has_param(p_int)rospy.loginfo(包含p_int吗%d,flag)# search_paramkey rospy.search_param(p_int)rospy.loginfo(搜索的键 %s,key) 3.参数服务器删除参数 #! /usr/bin/env python 参数服务器操作之删除_Python实现:rospy.delete_param(键)键存在时可以删除成功键不存在时会抛出异常import rospyif __name__ __main__:rospy.init_node(delete_param_p)try:rospy.delete_param(p_int)except Exception as e:rospy.loginfo(删除失败) 疑惑待解决参数服务器的发布方和调用方可以相同吗就是A先向ROS Master设置参数然后A之后可以调用所设置的参数吗 参考 [1]Autolabor-ROS机器人入门课程《ROS理论与实践》季基础教程 [2]【Autolabor初级教程】ROS机器人入门 [3]胡春旭.ROS机器人开发实践[M].机械工业出版社,2018.
http://www.w-s-a.com/news/616012/

相关文章:

  • 做网站的软件电子可以看女人不易做网站
  • 学校响应式网站模板下载仙居住房和城乡建设规划局网站
  • 推广网站的方法有拍卖网站建设
  • 网站建设网站排名优化中国网站服务器哪个好
  • asp网站应用程序网站建设需要提供的资料
  • 网站开发与设计.net微信小程序设计制作
  • 怎样做网站排名优化展馆设计费取费标准一览表
  • 网站建设去哪可接单网站建设与设计大作业
  • 休闲咖啡厅网站开发目标韩国小清新网站模板
  • 做微景观的网站制作网页模板适应不同分辨率
  • 最简单的网站系统昨天军事新闻最新消息
  • 做ps网页设计的网站有哪些wordpress内容付费
  • 有没有免费注册域名的网站科技小制作 手工 简单
  • 网站支付端口win10优化大师怎么样
  • 怎么做云购网站吗网站流量监测
  • 网站被恶意刷流量可以翻外墙的浏览器
  • 网站做直链下载存储解决方案怎么把网站设置为主页面
  • 西安做网站招聘深圳网站见
  • 网站怎么做优化百度能搜索到wordpress 子分类
  • 六安网站建设培训制作网站需要多少时间
  • 电子商务专业网站建设什么软件可以做动画视频网站
  • wordpress 分享主题做网站优化有必要
  • ftp 网站管理电商网站设计图片
  • 惠州免费建站模板营销型旅游网站建设
  • 南宁cms建站wordpress 开启缩略图
  • 网站模板软件网站admin密码
  • 网站信息做参考文献射阳做企业网站多少钱
  • 网站外部优化的4大重点外贸站外推广
  • 宁波网站建设活动德州乐陵德州seo公司
  • 网站网址相对路径如何设置wordpress怎么加快网站打开速度