您的位置:首页 > 编程语言 > Python开发

ROS与Python入门教程-搭建开发环境(PyCharm)

2018-01-27 11:10 1756 查看
安装步骤

版本选择

PyCharm 官方下载地址:http://www.jetbrains.com/pycharm/download/
选择Linux版本,我选的是最新的Community 2017.3免费版

Wget方式下载,建立下载目录tools,下载并安装.

$ mkdir ~/tools
$ cd ~/tools
$ wget https://download.jetbrains.com/python/pycharm....tar.gz


或使用其他工具下载后,在上传到tools目录

安装,在tools目录下

$ cd ~/tools
$ tar xfz pycharm....tar.gz  #解压
$ cd pycharm...
$ ./pycharm.sh                       #按提示安装即可

配置pycharm

设置快捷键,使从快捷方式启动PyCharm的同时加载ROS环境变量
gedit ~/.local/share/applications/jetbrains-pycharm-ce.desktop   #如果选择安装为当前用户可用


不同版本jetbrains-pycharm-ce.desktop名字可能会有些差异

jetbrains-pycharm-ce.desktop内容为:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=New Project
Icon=jetbrains-pycharm-ce.png
Path=/home/hzz/tools/pycharm-community-2017.3.3/bin
Exec=/home/hzz/tools/pycharm-community-2017.3.3/jre64/bin/java -Xbootclasspath/a:/home/hzz/tools/pycharm-community-2017.3.3/lib/boot.jar -classpath /home/hzz/tools/pycharm-community-2017.3.3/lib/bootstrap.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/extensions.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/util.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/jdom.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/log4j.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/trove4j.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/jna.jar -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine -XX:ErrorFile=/home/hzz/java_error_in_PYCHARM_%p.log -XX:HeapDumpPath=/home/hzz/java_error_in_PYCHARM.hprof -Didea.paths.selector=PyCharmCE2017.3 -Djb.vmOptionsFile=/home/hzz/tools/pycharm-community-2017.3.3/bin/pycharm64.vmoptions -Didea.platform.prefix=PyCharmCore com.intellij.idea.Main
StartupNotify=false
StartupWMClass=jetbrains-pycharm-ce
OnlyShowIn=Unity;
X-UnityGenerated=true

修改Exec=变量一行,在=后添加 bash -i -c 即改为
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Name=New Project
Icon=jetbrains-pycharm-ce.png
Path=/home/hzz/tools/pycharm-community-2017.3.3/bin
Exec=bash -i -c "/home/hzz/tools/pycharm-community-2017.3.3/jre64/bin/java -Xbootclasspath/a:/home/hzz/tools/pycharm-community-2017.3.3/lib/boot.jar -classpath /home/hzz/tools/pycharm-community-2017.3.3/lib/bootstrap.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/extensions.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/util.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/jdom.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/log4j.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/trove4j.jar:/home/hzz/tools/pycharm-community-2017.3.3/lib/jna.jar -Xms128m -Xmx750m -XX:ReservedCodeCacheSize=240m -XX:+UseConcMarkSweepGC -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Djava.net.preferIPv4Stack=true -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine -XX:ErrorFile=/home/hzz/java_error_in_PYCHARM_%p.log -XX:HeapDumpPath=/home/hzz/java_error_in_PYCHARM.hprof -Didea.paths.selector=PyCharmCE2017.3 -Djb.vmOptionsFile=/home/hzz/tools/pycharm-community-2017.3.3/bin/pycharm64.vmoptions -Didea.platform.prefix=PyCharmCore com.intellij.idea.Main" %f
StartupNotify=false
StartupWMClass=jetbrains-pycharm-ce
OnlyShowIn=Unity;
X-UnityGenerated=true

保存并退出。
添加 bash -i -c 是为了在通过快捷方式启动PyCharm的同时加载ROS环境变量(ROS环境变量加载脚本配置在 ~/.bashrc 文件内)
用PyCharm调试Python工程

新建catkin工作空间
mkdir -p ~/catkin_ws/src   #建立源目录
cd ~/catkin_ws/src
catkin_init_workspace      #初始化空间
cd ~/catkin_ws/
catkin_make                #首次编译
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc   #使用工作空间


添加测试代码

$ cd ~/catkin_ws/src
$ git clone https://github.com/ros/ros_tutorials.git

向PyCharm里添加工程

从 Dash home 里启动PyCharm,将看到的Welcome界面,点击open:



你看到可能不是这个界面,因为上面是付费版本的

导入 rospy_tutorials 包,使之成为PyCharm的python工程。点击 Open Directory 按钮,在弹出的对话框中选择 ~/catkin_ws/src/ros_tutorials/rospy_tutorials/ 路径,如下图:



点击 OK,工程将被创建,如下图:



设置python2.7为PyCharm工程的Interpreter

PyCharm默认将Python 3.2设置为工程的interpreter,而ROS使用的是Python 2.7,这里需要设置一下,使用Python 2.7,否则无法运行ROS相关的Python库。如果默认是Python 2.7则不用修改。

File 菜单 -> Settings 项,打开设置对话框,选择 Project Interpreter 如下图:



点击右边的小齿轮,然后,增加 Python 2.7 Interpreter,并将其设置为工程默认

调式代码

先打开一个terminal,输入 roscore 命令启动ROS Master。

在PyCharm左边的 Project 树形框中,找到 talker.py 文件,打开。然后找到 “hello world” 所在的位置,修改为 “hello I'm yuanboshe”,并设置断点(到行号前面点击一下就直接设置断点了),如下图:



保存后,右键左边的 talker.py 文件,弹出右键菜单,选择 Debug 'talker' 项:



启动调试后,talker 程序就会运行,并会运行到断点处停下来:



在下面的变量栏能够看到变量值。取消断点,按 F9 继续运行,将下面的显示窗口切换到 Console 窗口,能够看到修改后的信息,如下:



回到桌面,再开一个terminal窗口,输入 rosrun rospy_tutorials listener 命令,可以看到正确的监听消息,如下图:



总结

作为脚本语言的Python,debug要比作为编译语言的C++方便简单得多,其他的Python IDE也可以使用类似方式使之能够用来调试ROS工程。由于缺少了编译环节,不需要CMake的参与,无论是catkin工程还是rosbuild工程都一样的设置,没有差异。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: