ROS编译 Python 文件(详细说明)

ROS编译 Python 文件(详细说明)

参考自:http://wiki.ros.org/rospy_tutorials/Tutorials/Makefile

说明:
观看 古月君的 ROS入门-21讲,里面没有涉及python程序的运行

请参照本文,直接复制粘贴即可,不用更改内容。如果出现错误,请检查自己的运行环境是否正确

系统: Ubuntu16.04 ros indigo

.py并不是可编译的脚本文件,但是为了适应ros统一的编译体系,使ros识别出你写的Python node,所以也加入了Python的编译流程,主要目的就是让ros和系统找到你的Python程序在哪。

1.在工作区间建立一个package

cd ~/catkin_ws/src
catkin_create_pkg my_pkg message_generation rospy

2.建立你的Python包

cd ~/catkin_ws/src/my_pkg
mkdir bin
mkdir src
mkdir src/tutorial_package
touch src/tutorial_package/__init__.py

src目录用来放你的源码,也就是你自己写的各种封装好的包,是以.py结尾的文件

bin目录用来放你的执行文件,木有文件名后缀

在src/turorial_package目录下创建hello.py文件,

里面写:

def say(name):
    print('Hello ' + name)

在bin目录下创建hello文件,

里面写:

#! /usr/bin/env python
 
import tutorial_package.hello
 
 
if __name__ == '__main__':
    tutorial_package.hello.say('my friend!')

第一句很重要,用来表明这个可执行文件的解释器。

然后给这个文件加上可执行权限

chmod u+x bin/hello

最后还有一个问题,bin目录下的Python文件如何找到(import)src下的Python,一种方法是改Python路径,显然很麻烦。

另一种是在根目录下建立setup.py文件。

里面写:

## ! DO NOT MANUALLY INVOKE THIS setup.py, USE CATKIN INSTEAD

from distutils.core import setup
from catkin_pkg.python_setup import generate_distutils_setup

# fetch values from package.xml
setup_args = generate_distutils_setup(
    packages=['tutorial_package'],
    package_dir={'': 'src'},
)

setup(**setup_args)

里面要改的就是package和package_dir

到此为止python方面的流程已经说完

3.修改CMakelists.txt

3.1 首先把里面

catkin_python_setup()

的注释去掉,保证在catkin_make时install Python包

3.2

install(PROGRAMS bin/hello
  DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})

找到这一句,去掉注释,在program后面加上你的可执行文件的路径名, 去掉destination注释。

4.编译

cd ~/catkin_ws
catkin_make -DCATKIN_WHITELIST_PACKAGES="my_pkg"
source ~/.bashrc
#或者运行下面一行
#source ~/devel/setup.bash
rosrun my_pkg hello 

5.附上上述源码地址。

https://github.com/lightjiang/my_pkg.git

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2171.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Python Flask Web 框架入门

    Python Flask Web 框架入门Flask是一个轻量级的基于Python的web框架。本文适合有一定HTML、Python、网络基础的同学阅读。1.简介这份文档中的代码使用Python3运行。是的,所以读者需要自己在电脑上安装Python3和pip3。建议安装最新版本,我使用的是Python3.6.4。安装方法,可以自行谷歌或者百度。建议在linux下实践本教程中命令行操作、执行代码。2…

    2022年5月10日
  • C#中splitContainer用法

    C#中splitContainer用法在这个例子中,最上方是一个menustrip控件,其下市toolstrip控件,添加为快捷按钮。中间区域是一个splitcontainer,分为panel1和panel2.(1)IsMdiContainer–>true(2)splitContainer的具体用法:a)他不能直接用鼠标点击选中,只能右击-》选中splitContainerb)此时我们的窗体不

    2022年7月18日
  • 用python做学生信息管理系统_python管理系统实例

    用python做学生信息管理系统_python管理系统实例Python面向对象版学员管理系统文章目录Python面向对象版学员管理系统目标一.系统需求二.准备程序文件2.1分析2.2创建程序文件三.书写程序3.1student.py3.1.2程序代码3.2managerSystem.py3.2.1定义类3.2.2管理系统框架3.3main.py3.4定义系统功能函数3.4.1添加功能3.4.2删除学员3.4.3修改学员信息3.4.5查询学员信息3.4.6显示所有学员信息3.4.7保存学员信息3.4.8加载学员信息四.总结

    2022年9月20日
  • MySQL 8.0.19安装教程(windows 64位)

    MySQL 8.0.19安装教程(windows 64位)话不多说直接开干目录1-先去官网下载点击的MySQL的下载​2-配置初始化的my.ini文件的文件3-初始化MySQL4-安装MySQL服务+启动MySQL服务5-连接MySQL+修改密码 先去官网下载点击的MySQL的下载 下载完成后解压解压完是这个样子 配置初始化的my.ini文件的文件 …

    2022年4月28日
  • Windows配置Java环境变量(下载、安装、配置环境)[通俗易懂]

    Windows配置Java环境变量(下载、安装、配置环境)[通俗易懂]本人以博客专家担保,本篇文章可以解决你的问题,若未解决,将为你远程操作,但希望你为我点一个关注!!!推荐文章MySql5.7安装教程(超详细)https://myhub.blog.csdn.net/article/details/103532734(JavaSE)目录下载、安装配置环境变量下载、安装进入官网下载https://www.oracle.com/…

    2022年6月7日
  • 几款.Net加密/加壳工具的比较

    几款.Net加密/加壳工具的比较前言  使用过.NET的程序员都知道,.NET是一个巨大的跨时代进步,它开发效率高、功能强、界面观、耐用、新的语言C#已经提交为行业规范、CLR共公运行库资源丰富,这所有的特点标志着它成为主流编程语言是必然的。     可是它也有一个缺点,那就是编译好的程序集可以完全反编译成源代码,这给一些不法份子提供了很好的机会,试想想,您辛苦的劳动成果就这样给了别人;所以如何保护我们的知识产

    2022年6月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号