0

以前,我使用以下方法安装了 PX4 固件、ROS 和 Gazebo:

wget https://raw.githubusercontent.com/PX4/Devguide/master/build_scripts/ubuntu_sim_ros_melodic.sh
bash ubuntu_sim_ros_melodic.sh

我相信这两行安装了 ROS 和诸如此类所需的所有包,我只需要安装 python 2.7,因为我正在运行 ros-melodic。但是,我曾尝试安装 anaconda,然后尝试导入所需的包(rospy、std_msgs、geometry_msgs <-找不到 geometry_msgs),但它在 Python 3.8 上运行。我最终决定卸载 anaconda,因为我一直听说很难在 conda 环境中使用 ros。由于某种原因我的机器上已经有了 python2.7,所以我只是继续创建一个 python 虚拟环境,并且有很多关于如何做到这一点的教程。

首先我用catkin创建了一个ros工作区

mkdir -p drone/src
catkin_make
cd src
catkin_create_pkgs bigdrone std_msgs geometry_msgs rospy

我打开 Pycharm-Professional 并从drone/venv/bin/python 设置解释器。现在我尝试再次导入我的包,但它们都丢失了。我想可能是因为它是虚拟环境找不到包,所以我切换到/usr/bin/python2.7中的python。我需要的软件包仍然丢失,但我确实可以使用 rosdep 之类的软件包。此外,当我只是在终端上运行时:

python
>>> import rospy
>>> import std_msgs
>>> import geometry_msgs

出于某种原因,一切似乎都运行良好。

4

1 回答 1

0

它无法在 Pycharm 中找到这些包,但可以从您的终端中找到这些包的原因是您已经source /opt/ros/melodic/setup.bash在终端中运行。该文件设置环境变量并将更新PYHTONPATH以包含您提到的那些特定于 ros 的模块。您可能可以通过从具有源文件的终端启动 Pycharm 来使其工作/opt/

话虽如此,更完整的解决方案是将 ros distpackages 添加到您的虚拟环境中。您可以在此处找到添加外部包的步骤,您要添加的路径是/opt/ros/melodic/lib/python2.7/distpackages. 之后,您可以转到文件 > 设置 > 项目:> 项目解释器。从那里您可以从列表中指定 ROS Python 解释器。

于 2021-08-22T22:20:31.260 回答