本文共 5713 字,大约阅读时间需要 19 分钟。
// ros会输出工作空间中已经存在的所有类型消息rosmsg list
# -*- coding: utf-8 -*-import rospy # 导入rospy包,rospy是ROS的python客户端from std_msgs.msg import String # 导入python的标准字符处理库def talker(): # 定义talker函数 # 定义发布的主题名称chatter, 消息类型String(实质是std_msgs.msg.String),设置队列条目个数. pub = rospy.Publisher('chatter', String, queue_size=10) # 初始化节点,节点名称为talker # anonymous=True,要求每个节点都有唯一的名称,避免冲突。这样可以运行多个talker.py rospy.init_node('talker', anonymous=True) # 设置发布的频率,单位是每秒次数,这是每秒10次的频率发布主题 rate = rospy.Rate(10) # 10hz while not rospy.is_shutdown(): # rospy.is_shutdown()检查节点是否关闭 hello_str = "hello world %s" % rospy.get_time() rospy.loginfo(hello_str) # 在屏幕输出日志信息,写入到rosout节点 pub.publish(hello_str) # 发布信息到主题 rate.sleep() # 睡眠一定持续时间,如果参数为负数,睡眠会立即返回if __name__ == '__main__': try: talker() except rospy.ROSInterruptException: pass
#-*- coding: utf-8 -*-import rospyfrom std_msgs.msg import Stringdef callback(data): #定义一个回调函数,这个回调函数将接收到的消息作为参数进行处理 rospy.loginfo(rospy.get_caller_id() + "I heard %s", data.data)def listener(): #定义listener函数(订阅者) #在ROS中节点要有唯一的名称。 #如果有一个同名节点出现,它会碰上前一个节点,这样就很容易的将前一个节点从网络上踢开 #初始化节点 rospy.init_node('listener', anonymous=True) #订阅函数,订阅chatter主题,内容类型是std_msgs.msgs.String, #当有新内容,调用callback函数处理。接受到的主题内容作为参数传递给callback rospy.Subscriber("chatter", String, callback) rospy.spin() #保持节点运行,直到节点关闭。不影响订阅的回调函数,因为回调函数有自己的线程if __name__ == '__main__': listener()
# coding: utf-8from __future__ import print_functionfrom __future__ import division# rosrun kinect2_bridge kinect2_bridge _depth_method:=opengl _reg_method:=cpuimport cv2# rosimport rospyfrom sensor_msgs.msg import Image, CameraInfoimport timeimport numpy as npfrom cv_bridge import CvBridgebridge = CvBridge()def callback(data): start = time.time() # data = rospy.wait_for_message('/kinect2/qhd/image_color_rect', Image) frame = bridge.imgmsg_to_cv2(data, "bgr8") # depth = rospy.wait_for_message("/kinect2/qhd/image_depth_rect", Image) # depth = bridge.imgmsg_to_cv2(depth, "32FC1") end = time.time() cv2.putText(frame, 'FPS={:.0f}'.format(1/(end-start)), (15, 40),cv2.FONT_HERSHEY_SIMPLEX, 1.2, (255, 50, 0), 2, lineType=cv2.LINE_AA) cv2.imshow("preview", frame) key = cv2.waitKey(1)if __name__ == '__main__': rospy.init_node('hand_detection') # 初始化 Sub = rospy.Subscriber('/kinect2/qhd/image_color_rect', Image, callback) while not rospy.is_shutdown(): rospy.spin()
https://www.jianshu.com/p/63a959bfbb96
https://www.cnblogs.com/zjiaxing/p/5542614.html我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y 加粗:Ctrl/Command + Shift + B 斜体:Ctrl/Command + Shift + I 标题:Ctrl/Command + Shift + H 删除线:Ctrl/Command + Shift + S 无序列表:Ctrl/Command + Shift + U 有序列表:Ctrl/Command + Shift + O 检查列表:Ctrl/Command + Shift + C 插入代码:Ctrl/Command + Shift + K 插入链接:Ctrl/Command + Shift + L 插入图片:Ctrl/Command + Shift + G直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。 以此类推,我们支持6级标题。有助于使用TOC
语法后生成一个完美的目录。 强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
链接: .
图片:
去页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片
.
javascript // An highlighted block var foo = 'bar';
带尺寸的图片:
当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。
一个简单的表格是这么创建的:
项目 | Value |
---|---|
电脑 | $1600 |
手机 | $12 |
导管 | $1 |
使用:---------:
居中
:----------
居左 使用----------:
居右 第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:
TYPE | ASCII | HTML |
---|---|---|
Single backticks | 'Isn't this fun?' | ‘Isn’t this fun?’ |
Quotes | "Isn't this fun?" | “Isn’t this fun?” |
Dashes | -- is en-dash, --- is em-dash | – is en-dash, — is em-dash |
您可以使用渲染LaTeX数学表达式 :
Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式.
```mermaidgantt dateFormat YYYY-MM-DD title Adding GANTT diagram functionality to mermaid section 现有任务 已完成 :done, des1, 2014-01-06,2014-01-08 进行中 :active, des2, 2014-01-09, 3d 计划一 : des3, after des2, 5d 计划二 : des4, after des3, 5d```- 关于 **甘特图** 语法,参考 [这儿][2],
可以使用UML图表进行渲染。 . 例如下面产生的一个序列图::
```mermaidsequenceDiagram张三 ->> 李四: 你好!李四, 最近怎么样?李四-->>王五: 你最近怎么样,王五?李四--x 张三: 我很好,谢谢!李四-x 王五: 我很好,谢谢!Note right of 王五: 李四想了很长时间, 文字太长了不适合放在一行.李四-->>张三: 打量着王五...张三->>王五: 很好... 王五, 你怎么样?```
这将产生一个流程图。:
```mermaidgraph LRA[长方形] -- 链接 --> B((圆))A --> C(圆角长方形)B --> D{菱形}C --> D```
我们依旧会支持flowchart的流程图:
```mermaid flowchat st=>start: 开始 e=>end: 结束 op=>operation: 我的操作 cond=>condition: 确认?st->op->condcond(yes)->econd(no)->op```
如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。
如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。