工具使用-ROS中server、client消息传递
不同于topic中的异步消息传递, ros中还有一种信息传递的过程:server-client, 消息的同步传递过程。server提供一个接收消息的接口,接收到消息之后进行处理,然后在返回给client,在在这个过程中client则一直中断等待server返回消息。server-client的传递消息格式使用srv文件定义。
这里记录下如何使用python创建server和client。
不同于topic中的异步消息传递, ros中还有一种信息传递的过程:server-client, 消息的同步传递过程。server提供一个接收消息的接口,接收到消息之后进行处理,然后在返回给client,在在这个过程中client则一直中断等待server返回消息。server-client的传递消息格式使用srv文件定义。
这里记录下如何使用python创建server和client。
publisher和subscriber是topic的配套node, node是ros中进程的定义。 publisher用于node发布消息到master, subscriber用于node从master订阅消息。这里的master相当于中间服务器, nodes相当于不同的clients, 通过中间服务器实现p2p的通信。 publisher和subscriber是异步通信方式,也就是说publisher发布消息时不用考虑subscriber的状态,只有master中有存储空间就放进去,或者将原先存储消息覆盖掉。subscriber则是需要的时候从master中读取消息,只要有消息就行,不关心publisher的状态。 publisher和subscriber还是多对多的通信关系,可以多个发布源和多个订阅源。本文记录下如何使用python写publisher和subscriber。
ROS中常用指令
roscp = ros + cp: copies files from/to a ROS package
roscd = ros + cd: changes directory to a ROS packages
rosls = ros+ ls: lists files in a ROS package
rosed = ros + vim: edit a file in a package
rospack = ros + pack:
rosmsg = ros +msg: provides information related to ROS message definitions
rossrv = ros + srv: provides information related to a ROS service definitions
catkin_make: makes (compiles) a ROS package
这里加上了ros的前缀,好处是不用跳到文件所处的路径下,直接就能索引到对应文件,最多加上一个包名。
常用指令:
1 | catkin_create_pkg <包名> 依赖1 依赖2 依赖3 依赖4 |
pytorch Visdom可视化是一个灵活的工具, 可以创建、组织和共享实时丰富的数据可视化。支持numpy和Torch
图片来源:https://ptorch.com/news/77.html
visdom 旨在促进远程数据可视化,支持科学实验。
使用Latex绘制漂亮的网络图。
前面介绍了如何使用pycharm链接github仓库, 但在push repository时,项目中的有些文件, 比如数据集.json, 模型参数 .pth等较大文件不想上传, 另外像 .o, .idea等文件可能也不是想要上传的,这时候可以通过设置 .gitignore
文件来过滤上传文件。 在.gitignore
文件中一般定义了一些文件后缀,表示具有该后缀的文件在push的时候被忽略。这里记录一下如何在pycharm中配置 .gitignore
.
昨天在使用pytorch时,有一层自定义的层需要cuda9.0才行,而我装的是cuda8.0, 所以需要升级cuda, 但是如果直接将cuda8.0换成cuda9.0的话, 以前使用的cuda8.0编译的代码可能就不能用了。所以我这里在cuda8.0的基础上又安装了cuda9.0, 根据需要选择不同的cuda版本。
jupyter notebook对于小型的python项目,或者频繁交互的项目还是非常合适的。 当然jupyter notebook不是只针对于python, 也可以用于matlab等多种核。方便代码调试和随手笔记。我这里只是用了python核。这篇笔记记录一下jupyter notebook 安装的过程,以及对应的如何配置各种conda环境。
conda 是一个开源的软件包管理系统和python环境管理系统, 用于安装多个版本的软件包,并在环境之间轻松的切换。尤其是对于python而言,各种版本的包可能互不支持,这时候可以对不同版本创建不同的环境。比如创建python2.7+pytorch0.3.1 和 python3.6+pytorch1.0.1两个不同的环境。