在做的一个项目有用到pytorch,然后需要利用rviz来进行显示,因此只能是在ros下编写python的功能包,在此做一下记录。

1 ROS下的python代码的编写

实际一个scripts的文件夹,然后在里面定义想要执行的py文件,最后将文件添加到可执行。

mkdir scripts                  #新建文件夹
cd scripts                     #进入文件夹
touch talker.py                #生成文件
chmod +x talker.py             #设置可执行
rosed beginner_tutorials talker.py #自己输入代码

运行代码的方法:

rosrun maze train.py

py文件不需要编译,会自动添加到包的node中,直接执行

2. 回调函数

在我自的代码中,是会需要接收回调函数,对地图进行更新,但是之后还需要进行其他的处理,也就是处理完回调函数A后还需要进行B的处理,但是ros的python代码中,并没有rosspinonce的机制,但是其rosspin并不会占用主线程,因此可以编写一个while函数来执行需要执行的操作,然后在while函数后添加rosspin,实际测试该方法有效。之后每秒打印一个loop,每10秒接收一个data信息,打印一个callback

def callback_pointcloud(data):print("callback")map[0][0] = map[0][0]+1def main():rospy.init_node("maze",anonymous=True)rospy.Subscriber("/map",PointCloud2,callback_pointcloud)rate = rospy.Rate(1);while not rospy.is_shutdown():print("loop")rate.sleep()rospy.spin()print("hello")if __name__ == '__main__':main()

ros下的python代码的编写与回调函数相关推荐

  1. Python代码的编写运行方式介绍

    Python代码的编写运行方式介绍 python官方运行环境可到网站https://www.python.org/downloads/找到合适版本下载安装. 安装比较容易,特别强调,安装过程建议勾选& ...

  2. Python代码的编写运行方式

    Python代码的编写运行方式介绍 python官方运行环境可到网站https://www.python.org/downloads/找到合适版本下载安装. 安装比较容易,特别强调,安装过程建议勾选& ...

  3. linux下通过Python代码实现获取硬件接口信息

    linux下通过Python代码实现获取硬件接口信息 1.CPU架构 Python中,platform模块给提供了很多方法去获取操作系统的信息. touch cpu.py vi cpu.py #编辑内 ...

  4. Visual Studio Code(VS code) python代码无法进行变量和函数跳转

    Visual Studio Code python代码无法进行变量和函数跳转 今天早上打开VC code发现竟然无法进行跳转,同时报下面这个错误 The Python Tools server cra ...

  5. python手机编程调试_在Linux下调试Python代码的各种方法

    这是一个我用于调试或分析工具概述,不一定是完整全面,如果你知道更好的工具,请在评论处标记. 日志 是的,的确,不得不强调足够的日志记录对应用程序是多么的重要.您应该记录重要的东西,如果你的记录足够好的 ...

  6. Linux下安装Python,并在Linux下运行python代码文件

    CentOS配置源 1.查看本地yum源 ll /etc/yum.repos.d/ 2.把默认yum源备份 mkdir /opt/centos-yum.bak mv /etc/yum.repos.d/ ...

  7. vim python 代码提示_linux下vim python代码自动补全

    一.vim python自动补全插件:pydiction 可以实现下面python代码的自动补全: 1.简单python关键词补全 2.python 函数补全带括号 3.python 模块补全 4.p ...

  8. python ctypes 回调函数_如何用Python中的ctypes创建回调函数?

    我为海盗工具引擎SDK编写了一个包装器,但是有一个函数我还没有包装好.它是一个接受回调函数的异步函数,但我似乎不知道如何给它这个回调函数.在 函数如下所示:bool CorsairSetLedsCol ...

  9. numpy的基本使用 附python代码详细讲解(numpy函数,创建数组,常用属性,索引切片,数组的复制,修改维度,数组的分割、拼接、转置)

    目录 使用array创建数组 使用arange创建数组 Numpy中的随机数创建 ndarray对象的常用属性 其他方式创建数组 索引和切片(一位数组.二维数组) 数组的复制 修改数组的维度 数组的拼 ...

最新文章

  1. Form学习入门系列(一)
  2. 用化学的方法分类键盘和鼠标
  3. 华为鸿蒙备胎转正,华为鸿蒙是备胎系统,但已经实现上网随时能转正?
  4. Node.js从零开发Web Server博客项目笔记
  5. 计算高斯混合模型的可分性和重叠度(Overlap Rate, OLR)
  6. Java网络爬虫该如何学习
  7. CSS 制作下拉导航
  8. STM32工作笔记0051---NVIC中断优先级管理
  9. JAVA语言程序设计(基础篇)第四章——课后习题解
  10. linux 烧录树莓派镜像,Linux命令行烧录树莓派镜像至SD卡
  11. Oracle EBS之把自定义concurrent加入Pick Release Document Set(All Pick Release Documents)的几个注意点...
  12. 代码管理仓库项目任务计划
  13. HDU6383 p1m2
  14. Win8系统 界面大放送(Win8 抢先版)
  15. pi/4QPSK调制解调原理
  16. C++ 中如何区分std::endl、std::ends、std::flush的差异性
  17. 沃尔玛跨境智星的介绍与用法
  18. 第二节 LwIP简介
  19. 19年 GSoC 中 Jenkins 的七个项目
  20. 报错:NoSuchAlgorithmException: Algorithm HmacSHA1 not available

热门文章

  1. 终端设备文件与进程之间的关系
  2. 一位资深php程序员在北京的面试30个题目
  3. LINQ学习——JOIN
  4. 团队工作-------step2
  5. 程序员编程艺术第二十七章:不改变正负数相对顺序重新排列数组(无解?)
  6. 图片:jpg png gif bmp 区别(四)
  7. 不用归一化,深度学习模型也可以很优秀!
  8. 如何将学术经历整合为求职简历?
  9. 谷歌大脑推出机器人强化学习平台,硬件代码全开源,花最少的钱,训超6的机器人...
  10. 近期计算机视觉相关算法竞赛汇总—总奖池超553万人民币