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

ROS相关知识

1、rospy.init_node('talker', anonymous=True)

初始化 node,名字为 talker,有了名字,node 才开始与 master 以及其他 node 通信 

ROS graph 中可能存在多个重名的 node,例如多个 turtle node,当令 anonymous=True 时,重名 node 会自动在名字后边加上随机数以示区别。

 

2、    pub = rospy.Publisher('chatter', String, queue_size=10) 

创建一个 pub 对象

pub 对象有个 method —— pub.publish() 可以被用来向 chatter 这个 topic 上发送类型为 String 的数据。


 

3、rate = rospy.Rate(10) 

产生一个 rospy.Rate Class 的对象 rate,它有一个 method —— rate.sleep(),可以控制 loop 的频率。

比如每秒钟 loop 10次,如果一次 loop 小于 1/10 秒,则 sleep 等待,确保 1秒 完成10个 loop。

很显然这里的前提是,每个 loop 不能超过 1/10 秒,否则单靠 sleep 是无法达到期望的 loop 频率的 

 

4、while not rospy.is_shutdown():

监控着是否程序是否被关闭,例如 ctrl + c 等

 

5、rospy.Subscriber("chatter", String, callback)

监听 chatter topic 上的 std_msgs/String 类型的数据,一旦收到数据,就调用 callback 函数,
 

callback是自己写的

 

6、PoseStamped

Pose好理解,就是机器人的位姿(position and orientation),那么Stamped呢?Stamped表示时间戳(timestamped),这里的时间戳是指时间戳是指格林威治时间1970年01月01日00时00分00秒起至现在的总纳秒.几乎所有的计算机都可以使用这个时间,方便统一.所以PoseStamped记录的是机器人的位姿加上记录位姿的时间这么一种message.这个message被包含在geometry_msgs这个大类下


7、Param

ParamParameters的简写,意为参数。在ROS种,起到的作用是节点间共享数据。

实现的原理是将需要共享的数据存放到ROS Master,这样所有的节点都可以访问

 

node.getParam(name)

获取参数的值

 

8、<node name="point" pkg="my" type="my_point.py" respawn="false" output="screen" >

respawn表示是否自动重启,true 表示如何节点未启动,则自动重启,false 则不重启,默认 false

 

 

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 语义分割模型(Deeplab V3+ GCN UperNet ENet U-Net SegNet)
  • Pytorch之经典神经网络语义分割(3.1) —— 空洞卷积 Dilated conv/Atrous Conv (膨胀卷积/扩张卷积)(扩张率dilation rate)
  • OpenCV(二) —— 颜色通道提取 边界填充 数值计算 图像融合
  • OpenCV四) —— 图像形态学处理(腐蚀操作 膨胀操作 开运算与闭运算 梯度运算 礼貌与黑帽)
  • OpenCV(五) —— 图像梯度处理 边缘检测(Sobel算子 Scharr算子 laplacian算子 Canny算子)
  • OpenCV(六) —— 边缘检测(Canny)
  • OpenCV(七) —— 图像金字塔(拉普拉斯金字塔) 轮廓检测(轮廓特征 轮廓近似 轮廓绘制 边界矩形 外接圆 ) 傅里叶变换
  • OpenCV(八) —— 直方图(mask操作 (自适应)直方图均衡化) 模板匹配 图像特征(harri角点检测)
  • TPU 使用TPU训练tensorflow初探(Colab)
  • 搜索中的TSA(树搜索算法) GSA(图搜索算法) UCS(代价一致) CSP(约束满足问题)
  • 二分图(二分图判断之染色法 最大匹配 最佳匹配 匈牙利算法)
  • 位图索引Bitmap indexes(数据库索引)
  • YOLO算法(二)—— Yolov2 yolo9000
  • YOLO算法(三)—— Yolov3 Yolo系列网络优缺点
  • Python的__future__模块
  • canvas 绘制双线技巧
  • HashMap剖析之内部结构
  • Java 23种设计模式 之单例模式 7种实现方式
  • JSONP原理
  • Spring Cloud Feign的两种使用姿势
  • 成为一名优秀的Developer的书单
  • 记录一下第一次使用npm
  • 前端临床手札——文件上传
  • 前端每日实战 2018 年 7 月份项目汇总(共 29 个项目)
  • 浅谈web中前端模板引擎的使用
  • 我建了一个叫Hello World的项目
  • 走向全栈之MongoDB的使用
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 说说我为什么看好Spring Cloud Alibaba
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (独孤九剑)--文件系统
  • (二)windows配置JDK环境
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (更新)A股上市公司华证ESG评级得分稳健性校验ESG得分年均值中位数(2009-2023年.12)
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (十一)手动添加用户和文件的特殊权限
  • (一)u-boot-nand.bin的下载
  • (转) Android中ViewStub组件使用
  • .“空心村”成因分析及解决对策122344
  • .NET delegate 委托 、 Event 事件,接口回调
  • .NET 命令行参数包含应用程序路径吗?
  • .NET使用存储过程实现对数据库的增删改查
  • @Autowired自动装配
  • @select 怎么写存储过程_你知道select语句和update语句分别是怎么执行的吗?
  • @synthesize和@dynamic分别有什么作用?
  • [] 与 [[]], -gt 与 > 的比较
  • [1] 平面(Plane)图形的生成算法
  • [Avalon] Avalon中的Conditional Formatting.
  • [BT]BUUCTF刷题第4天(3.22)
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]