ROS与Python入门教程-搭建开发环境(PyCharm)
2018-01-27 11:10
1756 查看
安装步骤
版本选择
PyCharm 官方下载地址:http://www.jetbrains.com/pycharm/download/
选择Linux版本,我选的是最新的Community 2017.3免费版
Wget方式下载,建立下载目录tools,下载并安装.
或使用其他工具下载后,在上传到tools目录
安装,在tools目录下
配置pycharm
设置快捷键,使从快捷方式启动PyCharm的同时加载ROS环境变量
不同版本jetbrains-pycharm-ce.desktop名字可能会有些差异
jetbrains-pycharm-ce.desktop内容为:
修改Exec=变量一行,在=后添加 bash -i -c 即改为
保存并退出。
添加 bash -i -c 是为了在通过快捷方式启动PyCharm的同时加载ROS环境变量(ROS环境变量加载脚本配置在 ~/.bashrc 文件内)
用PyCharm调试Python工程
新建catkin工作空间
添加测试代码
向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工程都一样的设置,没有差异。
版本选择
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工程都一样的设置,没有差异。
相关文章推荐
- 机器学习开发环境搭建配置(ML+python+pycharm)图文教程
- 在ubuntu下搭建python开发环境(pycharm,postgresql,virtualenv, Django)
- Python 开发环境搭建__pyenv__jupyter__pycharm
- Python & PyCharm & Django 搭建web开发环境
- 【机器学习入门——1】Python 开发环境的安装 Python(x,y)及Pycharm
- 使用pycharm手动搭建python语言django开发环境(四) django中buffer类型与str类型的联合使用
- Unix/Linux环境C编程入门教程(8) FreeBSD CCPP开发环境搭建
- Linux/CentOS下python3开发环境搭建 pycharm
- Unix/Linux环境C编程入门教程(14) Mandriva LinuxCCPP开发环境搭建
- Unix/Linux环境C编程入门教程(16) LinuxMint CCPP开发环境搭建
- 在ubuntu下搭建python开发环境(pycharm,postgresql,virtualenv, Django)
- Windows下Python开发环境搭建及Pycharm安装
- Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
- Kotlin入门教程之开发环境搭建
- Python从入门到精通系列之介绍与开发环境的搭建
- Unix/Linux环境C编程入门教程(16) LinuxMint CCPP开发环境搭建
- 【入门教程】使用Eclipse搭建C/C++开发环境
- 教程 | 一步步从零开始:使用PyCharm和SSH搭建远程TensorFlow开发环境
- React Native入门教程 1 -- 开发环境搭建
- Python & PyCharm & Django 搭建web开发环境