打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ROS教程-节点广播和接收自定义信息
test(包名)/scripts/file_name.py

小点的脚本放在这里去运行。如果程序大了又不可避免的搞一个功能包

__init__.py 文件的作用是将文件夹变为一个Python模块,Python 中的每个模块的包中,都有__init__.py 文件。

通常__init__.py 文件为空,但是还可以为它增加其他的功能。在导入一个包时,实际上是导入了它的__init__.py文件。这样我们可以在__init__.py文件中批量导入所需要的模块,而不再需要一个一个的导入。

__init__.py中还有一个重要的变量,__all__, 它用来将模块全部导入。

# __init__.py__all__ = ['os', 'sys', 're', 'urllib']
# a.pyfrom package import *

这时就会把注册在__init__.py文件中__all__列表中的模块和包导入到当前文件中来。可以了解到,__init__.py主要控制包的导入行为。

ROS 通信相关的包,包括核心客户端库(roscpp、rospy、roslisp)和图自省工具(rostopic、rosnode、rosservice、rosparam)

常用的ROS命令大多数都是Python模块,源码存放在ros_comm仓库的tools路径下,每一个命令行工具(如rosbag、rosmsg)都是用模块的形式组成核心代码,然后在script/下建立一个脚本来调用。

脚本的组织形式:

test/src/test(与package同名)/init.py 

test/src/test(与package同名)/modulefiles.py

test/scripts/your_script.py

test/scripts/setup.py

节点相关

话题发布

信息发布

时钟类

string statefloat xfloat y

自定义一个信息的类型

find_package(catkin REQUIRED COMPONENTS  rospy  std_msgs  message_generation)add_message_files(  FILES  gps.msg)generate_messages(DEPENDENCIES std_msgs)

编写一个CMakeLists.txt

<build_depend>message_generation</build_depend><run_depend>message_runtion</run_depend>

package.xml

对创建的msg进行catkin_make会在:

~/catkin_ws(workspace)/devel/lib/python2.7/dist-packages/topic_demo

下生成msg模块(module),即可在Python程序中通过from test.msg import gps进行gps类型的消息的操作。

可以看到直接导入

发布的样子就是这样

首先是发布的频率,1s一下,现在给值初始化了,加入了一个字符串,工作ing~。死循环一直,打印日志,接着发送。

这是发,一定还有接收的code。

导包

这就是监听的代码,为什么是监听?其实上面的程序是无指向的乱发,只有感兴趣的才会收这个东西。

使用回调函数来把感兴趣的东西解出来

总结一下:

ROS程序中有可能有一些自定义的消息/服务/动作文件,为程序的发者所设计的数据结构,这类的文件以.msg,.srv,.action结尾,通常放在package的msg/,srv/,action/路径下。

那lunch也总结一下:

launch文件一般以.launch或.xml结尾,它对ROS需要运行程序进行了打包,通过一句命令来启动。一般launch文件中会指定要启动哪些package下的哪些可执行程序,指定以什么参数启动,以及一些管理控制的命令。launch文件通常放在软件包的launch/路径中中。

https://blog.csdn.net/weixin_44682965/article/details/107748350
https://github.com/ros/ros_comm/tree/lunar-devel/tools
https://www.cnblogs.com/Lands-ljk/p/5880483.html
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python模块包中__init__.py文件的作用
[Python]
python模块、包、库有什么不同?有什么用途?
UC头条:[Python基础]Python包(库)
python3
深入理解Python中import机制
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服