https://www.ncnynl.com/archives/201611/1057.html
遇到的问题:
Q1:
先安装pycharm, 官网下载linux 版本压缩包
$ mkdir ~/tools
$ cd ~/tools
$ cd ~/tools
$ tar xfz pycharm-professional-2016.2.3.tar.gz #解压
$ cd pycharm-professional-2016.2.3
$ ./pycharm.sh #按提示安装即可
-
不同版本jetbrains-pycharm.desktop名字可能会有些差异
-
jetbrains-pycharm.desktop内容为:
-
[Desktop Entry] Version=1.0 Type=Application Name=PyCharm Icon=/home/ubu/tools/pycharm-professional-2016.2.3/bin/pycharm.png Exec= bash -i -c "/home/ubu/tools/pycharm-professional-2016.2.3/bin/pycharm.sh" %f Comment=The Drive to Develop Categories=Development;IDE; Terminal=false StartupWMClass=jetbrains-pycharm - 修改Exec变量一行,在=后添加 bash -i -c 即改为
Exec= bash -i -c "/home/ubu/tools/pycharm-professional-2016.2.3/bin/pycharm.sh" %f
- 保存并退出。
- 添加 bash -i -c 是为了在通过快捷方式启动PyCharm的同时加载ROS环境变量(ROS环境变量加载脚本配置在 ~/.bashrc 文件内)
步骤
- 首先切换到之前通过创建catkin工作空间教程创建的catkin工作空间中的src目录下:
# You should have created this in the Creating a Workspace Tutorial
$ cd ~/catkin_ws/src
- 现在使用
catkin_create_pkg命令来创建一个名为'beginner_tutorials'的新程序包,这个程序包依赖于std_msgs、roscpp和rospy:
$ catkin_create_pkg beginner_tutorials msg rospy roscpp
-
这将会创建一个名为
beginner_tutorials的文件夹,这个文件夹里面包含一个package.xml文件和一个CMakeLists.txt文件,这两个文件都已经自动包含了部分你在执行catkin_create_pkg命令时提供的信息。 -
catkin_create_pkg命令会要求你输入package_name,如果有需要你还可以在后面添加一些需要依赖的其它程序包:
# This is an example, do not try to run this
# catkin_create_pkg <package_name> [depend1] [depend2] [depend3]
建立Python脚本目录
$ mkdir scripts
$ cd scripts
内容如下:
#!/usr/bin/env python
import rospy
from std_msgs.msg import String
def talker():
pub = rospy.Publisher('chatter', String, queue_size=10)
rospy.init_node('talker', anonymous=True)
rate = rospy.Rate(10) # 10hz
while not rospy.is_shutdown():
hello_str = "hello world %s" % rospy.get_time()
rospy.loginfo(hello_str)
pub.publish(hello_str)
rate.sleep()
if __name__ == '__main__':
try:
talker()
except rospy.ROSInterruptException:
pass
Q2:
先安装pip
sudo apt-get install python-pip
import yaml
ImportError: No module named yaml
安装或更新yaml
wget http://pyyaml.org/download/pyyaml/PyYAML-3.12.tar.gz
tar -xvzf PyYAML-3.12.tar.gz
cd PyYAML-3.12
python setup.py install
Q3:
Unable to immediately register with master node master may not be running yet
先起SDK 就有master了,
如果是测试代码,可以直接先起 roscore 命令即可。
Q4:
如何选择queue_size值:
0 - 无限长的buffer,直到被取走,不扔掉。可能会导致取不过来,内存耗尽掉~不推荐。
1, 2, 3, - 基本上1秒能有10次数据处理能力的话(),这种小的buffer 就够了。对于只关心最新的值的情况,最适用。
10或更多 - 用户界面msg 是比较好的例子,这种东东不能丢失。另一个例子就是当你想要记录所有的值,这样的值又是高速发布的。
本文档详细介绍了如何在Ubuntu环境下,利用PyCharm和ROS(Robot Operating System)创建Python脚本来实现ROS的发布者和订阅者。首先,通过修改PyCharm的启动脚本来加载ROS环境变量,接着在catkin工作空间中创建依赖于std_msgs、roscpp和rospy的'beginner_tutorials'程序包。然后,通过`catkin_create_pkg`命令创建必要的文件,并指导如何安装pip和yaml。在遇到无法注册到master节点的问题时,建议运行`roscore`命令。最后,讨论了选择queue_size参数的重要性,提供了不同场景下的推荐值。
&spm=1001.2101.3001.5002&articleId=97159787&d=1&t=3&u=9b27c3c7ee4447b18acfc6acd2588679)
3492

被折叠的 条评论
为什么被折叠?



