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

如何建立一个网站并维护wordpress dux1.4

如何建立一个网站并维护,wordpress dux1.4,科技风格设计网站,网络公司取什么名字好文章目录 1.本方向内学习内容#xff1a;1.1.自定义msg#xff1a;1.1.1.定义msg文件#xff1a;1.1.2.编辑配置文件#xff1a; 1.2.自定义srv#xff1a;1.2.1.定义srv文件#xff1a;1.2.2.编辑配置文件#xff1a; 1.3.服务通信案例实现#xff1a;1.3.1.服务端实现… 文章目录 1.本方向内学习内容1.1.自定义msg1.1.1.定义msg文件1.1.2.编辑配置文件 1.2.自定义srv1.2.1.定义srv文件1.2.2.编辑配置文件 1.3.服务通信案例实现1.3.1.服务端实现重点语法、接口等的复现与记忆以及一些注意事项 1.3.1.客户端实现重点语法、接口等的复现与记忆以及一些注意事项 1.4.参数服务器1.5.URDF集成Rviz基本流程1.5.1.新建功能包导入依赖1.5.2.编写urdf文件1.5.3.在launch文件集成URDF与Rviz1.5.4.在Rviz中显示机器人模型 1.6.再识URDF标签1.6.1.linkvisual(描述外观):geometry设置连杆形状: origin(设置偏移量与倾斜角度):material(设置颜色) 碰撞参数等 1.6.2.jointparent (必须)child link:origin:axis:需要转动的关节需要设置这个参数 1.6.3. 完成小车仿真并加载到launch文件中1.6.4.base_footprint优化urdf 1.本方向内学习内容 1.1.自定义msg 1.1.1.定义msg文件 功能包下新建msg目录添加文件 Person.msg。 string name uint16 age float64 height1.1.2.编辑配置文件 package.xml中添加编译依赖与执行依赖 build_dependmessage_generation/build_depend exec_dependmessage_runtime/exec_dependCMakeLists.txt编辑msg相关配置 1. find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgs #std_msgs必须有message_generation #添加编译时依赖加入这个 )#配置msg源文件 add_message_files(FILESPerson.msg #添加创建的msg源文件)#生成消息时依赖于std_msgs generate_messages(DEPENDENCIESstd_msgs#添加std_msgs依赖)去掉该依赖的注释。 4. #执行时依赖 catkin_package( # INCLUDE_DIRS include # LIBRARIES plumbing_pub_subCATKIN_DEPENDS roscpp rospy std_msgs message_runtime#加上message_runtime # DEPENDS system_lib )只放开CATKIN_DEPENDS一句并加上message_runtime即可。 1.2.自定义srv srv请求相应 1.2.1.定义srv文件 功能包下新建srv目录添加xxx.srv文件 int32 num1 int32 num2 --- int32 sum注意一定要按照格式来创建三个-分割线不能少。上面是请求下面是应答注意顺序。 1.2.2.编辑配置文件 与msg编辑配置文件相同。 package.xml中添加编译依赖与执行依赖 build_dependmessage_generation/build_depend exec_dependmessage_runtime/exec_dependCMakeLists.txt编辑msg相关配置 1. find_package(catkin REQUIRED COMPONENTSroscpprospystd_msgs #std_msgs必须有message_generation #添加编译时依赖加入这个 )#配置msg源文件 add_message_files(FILESAddints.srv #添加创建的srv源文件)#生成消息时依赖于std_msgs generate_messages(DEPENDENCIESstd_msgs#添加std_msgs依赖)去掉该依赖的注释。 4. #执行时依赖 catkin_package( # INCLUDE_DIRS include # LIBRARIES plumbing_pub_subCATKIN_DEPENDS roscpp rospy std_msgs message_runtime#加上message_runtime # DEPENDS system_lib )只放开CATKIN_DEPENDS一句并加上message_runtime即可。 1.3.服务通信案例实现 1.3.1.服务端实现 #! usr/bin/env python import rospy from plumbing_server_client.srv import Addints,AddintsResponse,AddintsRequestdef doNum(request):num1 request.num1num2 request.num2sum num1 num2response AddintsResponse()response.sum sumrospy.loginfo(服务器解析的数据num1 %d, num2 %d,响应的结果 sum %d,num1,num2,sum)return responsedef server():rospy.init_node(company)server rospy.Service(addInts,Addints,doNum)rospy.loginfo(服务器已经启动了)rospy.spin()if __name____main__:server()重点语法、接口等的复现与记忆以及一些注意事项 1.实例化服务端对象**rospy.Service(话题名,数据类,回调函数)。 2.导包的时候为了方便可以使用通配符*,需要将Response类和Request类都导入。 3.可以这么理解AddInts是一个大数据类而AddIntsResponse和AddIntsRequest是AddInts.srv文件编译之后产生的子类。不准确的说是一分为二 在产生的中间文件中便可发现继承关系**。所以我们在服务端是用AddIntsResponse实例化对象在客户端用AddIntsRequest实例化对象而不是用AddInts实例化对象。 4.回调函数自动接收的参数是请求类型的在本例中是两个数据然后需要将数据取出来进行处理num1 request.num1 num2 request.num2 sum num1 num2。 5.处理过后的结果放入实例化的responseAddintsResponse对象中然后存入处理过后的数据结果response.sumsum并返回response。 6.有回调函数都需要使用rospy.spin()。 1.3.1.客户端实现 #! usr/bin/env pythonimport rospy from plumbing_server_client.srv import * import sys# ROS中内置了相关函数这些函数可以判断服务器的状态如果服务没有启动那么就让客户端挂起。def client():if len(sys.argv)!3 :#包括一个默认的参数rospy.loginfo(传入的参数个数有误)sys.exit(1)rospy.init_node(me)client rospy.ServiceProxy(addInts,Addints) #实例化客户端对象num1 int (sys.argv[1])num2 int (sys.argv[2])#等待服务器启动client.wait_for_service()#如果用rospy.wait_for_service(这里面需要话题名称)response client.call(num1,num2)#组织请求数据并发送请求接收响应数据rospy.loginfo(响应的数据%d,response.sum)# 处理响应if __name____main__:client()重点语法、接口等的复现与记忆以及一些注意事项 1.实例化客户端对象clientrospy.ServiceProxy(话题名数据类)注意这里不是rospy.client它是一个方法。 2.组织请求数据并发送请求接收相应数据。用已经实例化的客户端对象client.call(num1,num2),接收数据responseclient.call(num1,num2) 优化 3.从终端中传入参数导入sys包判断参数是否为三个第一个参数为文件名加上两个数字应该是三个 if len(sys.argv)!3 :#包括一个默认的参数rospy.loginfo(传入的参数个数有误)sys.exit(1)不满足条件就打印错误日志信息并退出。len(sys.args)用来获取终端中传入的参数个数,sys.argv是一个列表list/数组里面存放参数字符所以取出的时候应该使用下标引用操作符并进行强制转换。 num1 int (sys.argv[1])num2 int (sys.argv[2])4.解决先打开客户端抛出异常的问题 client.wait_for_service()#如果用rospy.wait_for_service(这里面需要话题名称)加在发送请求前即可。 1.4.参数服务器 1.设置参数 rospy.set_param(参数名键value值)如 rospy.set_param(type_p,car)rospy.set_param(radius_p,0.15)复用可以实现覆盖修改 查看参数列表 rosparam list查看参数值 rosparam get 参数名2.查询参数 相关函数有(rospy包中) 1.get_param(“参数名”,默认值)#当参数存在时返回对应的值不存在返回默认值。 2.get_param_cached(“参数名”,默认值),与get_param使用方法一致只是效率更高。 3.get_param_names(),获取所有参数名键的集合可用for names in names来遍历输出。 4.has_param(参数名),判断某个参数是否存在返回true or false 5.search_param(参数名)查找某个参数的键/参数名 3.删除参数 rospy.delete_param(参数名)1.5.URDF集成Rviz基本流程 1.5.1.新建功能包导入依赖 由于不涉及编写py/cpp文件所以不需要导入roscpp、rospy等功能包。需要导入urdf、xacro依赖。 在功能包路径下创建以下四个文件夹。 1.5.2.编写urdf文件 robot namemyCarlink namebase_linkvisualgeometrybox size0.5 0.2 0.1//geometry/visual/link /robot一定要要注意/的位置 1.5.3.在launch文件集成URDF与Rviz launch!-- 在参数服务器载入urdf文件 --param namerobot_description textfile$(find urdf01_rviz)/urdf/car.urdf/!-- 启动Rviz --node pkgrviz typerviz namerviz args-d $(find urdf01_rviz)/config/show_myCar.rviz //launch------------------------ 在参数服务器载入urdf文件 ------------------------ robot name固定robot_description文件路径格式$(find 包名)路径到文件 --------------------------------- 启动Rviz --------------------------------- pkg、type、name都是rviz后面的args是rviz配置文件的路径该配置文件最好放在当前功能包下的config文件夹中。 1.5.4.在Rviz中显示机器人模型 用roslaunch启动。 添加RobotModel、Axes,然后将FIxed Frame设置为base_link 成功显示模型。 1.6.再识URDF标签 成双标签/加在第二个最前面单标签/加在最后面。 1.6.1.link link和robot标签都有name的属性。 visual(描述外观): geometry设置连杆形状: 标签1 box(盒状)属性size“长 宽 高” 标签2 cylinder(圆柱)属性radius半径 length“高” 标签3 sphere球体属性radius“半径” 标签4 mesh为连杆添加皮肤属性filename“路径”格式package://功能包名/路径到文件 origin(设置偏移量与倾斜角度): 属性1 xyzx偏移 y偏移 z偏移 属性2: rpy“x翻滚量 y俯仰量 z偏航量”单位是弧度 material(设置颜色) material含有name属性。 标签1 color,属性rgba红绿蓝透明度“x y z a”(四者取值[0,1]) 碰撞参数等 后续介绍。 1.6.2.joint 有两个属性name和type 其中type包括 parent (必须) 属性 link“父link名” child link: 属性 link“子link名” origin: 属性 xyz“x y z”(各轴线上的偏移量) rpy“r p y”(各轴线上的偏移弧度) axis:需要转动的关节需要设置这个参数 属性 **xyz用于设置围绕哪个轴运动。**xyz“ 0 0 1 ”表示绕z轴旋转 1.6.3. 完成小车仿真并加载到launch文件中 编写urdf文件 小炮车mesh 0.17 rpy0.0 1.05 1.57//jointlink namepaoGuanvisualgeometrycylinder radius0.02 length0.45//geometrymaterial namecolorcolor rgba1.0 0.2 0.3 0.55//material /visual/link /robot简陋小车:(带camera) robot namemyCarlink namebase_linkvisualgeometrybox size0.3 0.2 0.1//geometryorigin xyz0 0 0 rpy0 0 0/material namecolorcolor rgba0.8 0.5 0.0 0.5//material/visual/linklink namecamvisualgeometrybox size0.02 0.05 0.05//geometryorigin xyz0.0 0.0 0.025 rpy0.0 0.0 0.0/material namecam_colorcolor rgba0 0 1 0.5//material/visual/linkjoint namecamera2Base typecontinuousparent linkbase_link/child linkcam/origin xyz0.12 0 0.05 rpy0.0 0.0 0.0/axis xyz0 0 1/ /joint /robot1.关节优先 关节的位置确定了子连杆和父连杆的相对位置关系关节的参考系是主参考系而子连杆的参考系是以关节为中心的参考系。 2.配置机器人状态发布者及相关节点 要成功显示机器人模型需要在launch文件中添加 node pkgjoint_state_publisher typejoint_state_publisher namejoint_state_publisher/ node pkgrobot_state_publisher typerobot_state_publisher namerobot_state_publisher/如果要查看机器人关节旋转效果需要在launch文件中添加 node pkgrobot_state_publisher typerobot_state_publisher namerobot_state_publisher/并注释关节信息发布节点解决cam抖动的问题。 3.关节中心位置默认与父连杆中心重合 1.6.4.base_footprint优化urdf 默认情况下底盘中心点位于地图原点上所以会导致机器人模型半沉入地下可以使用优化策略将初始link设置为一个尺寸极小的link如半径为0.001m的球体或边长为0.001的立方体然后再在初始link上添加底盘等刚体这样实现虽然仍然存在半沉现象但可以基本忽略。 添加初始link link namebase_footprintvisualgeometrybox size0.001 0.001 0.001//geometryorigin xyz0 0 0 rpy0 0 0/material namecolorcolor rgba0.8 0.5 0.0 0.5//material/visual/link添加关节 joint namefp typefixedparent linkbase_footprint/child linkbase_link/origin xyz0 0 0.05 rpy0.0 0.0 0.0//joint注意将base_footprint作为父连杆。
http://www.hkea.cn/news/14489708/

相关文章:

  • 网站在线制作平台内网网站搭建教程
  • 建网站石家庄1建设网站的重要性
  • 一台虚拟主机能建设几个网站滁州市建设工程质量检测协会网站
  • 用jsp做网站登录界面模板苏州网上挂号预约平台12320
  • 网站建设费一般是什么费用做游戏平面设计好的素材网站有哪些
  • 浦东建设网站制作美术网站建设
  • 简洁html网站模版wordpress 手机维修
  • 大型网站系统关键字优化价格
  • 网站建设与维护招聘条件免费静态网页模板下载
  • 网站首页设计过程制作一个工厂小程序收费
  • 汕头网站推广优化郑州房产网新房
  • 浅谈国内高校英文网站的建设现状wordpress文章灯箱
  • 一站式建设企业运营策划公司
  • 做网站需要什么配置网站都去哪里找
  • 广东官方移动网站建设哪家好简单网站建设优化
  • 成都建站推广女生就业前景最好的十大热门专业
  • 彩票网站建设开发查网站服务器速度
  • 建设网站的体会wordpress 试听
  • 网站开发 简历项目经历wordpress 会员 按月
  • 各网站的风格及特点wordpress+边框插件
  • 免费网站流量统计工具做外贸的社交网站
  • 网站建设pdf文件怎么发布百度首页官网
  • 做网站买过域名之后重庆观音桥网站建设
  • 网站开发没有完成 需要赔偿多少wordpress论坛样式
  • 上海网站建设需要多少钱wordpress回复
  • 网站架构分析工具虚拟主机服务
  • 朝阳商城网站建设商品推广
  • 华为网站建设建设网站怎样分配给用户空间
  • 做我的奴隶腾讯网站如何建设优化一个网站
  • 广州天河区做网站建筑类网站的推荐理由