解决python3无法使用ROS中tf的问题

一般而言,对于ubuntu18.04,在python3中import tf或者import tf2相关的module会报错。因此需要解决这个问题。

(以下均在ubuntu18.04中进行操作)

首先,如果你之前在.bashrc中添加了workspace的路径,为了避免后面出现不必要的问题,应当先把.bashrc中source的路径注释掉,例如:

# source ~/你的workspace/devel/setup.bash

在进行后面的操作之前,要确保你的系统已经能够使用catkin build,若能,则跳过这条;若不能,则需要安装:

sudo apt-get install python-catkin-tools

然后回到你的主目录,创建一个新的仓库(同时做好相关的配置):

mkdir ~/secondary_build_ws && cd ~/secondary_build_ws && catkin config -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so && catkin config --install

然后去clone仓库geometry2:

mkdir src && cd src && git clone -b melodic-devel https://github.com/ros/geometry2

然后编译

cd ..
catkin build

如果编译时报错No module named em,则需要安装empy:

pip install empy
pip3 install empy

编译完成后就OK了。使用时,最好时将这个secondary_build_ws仓库也添加到.bashrc中,一定要注意顺序:

source /opt/ros/melodic/setup.bash
source ~/你的workspace/devel/setup.bash
source ~/secondary_build_ws/devel/setup.bash --extend
export PYTHONPATH=~/secondary_build_ws/devel/lib/python3/dist-packages:$PYTHONPATH

上面这四行在.bashrc中的顺序会影响PYTHONPATH顺序。顺序错误的话会造成import失败。

添加完成后,关闭命令行窗口,打开一个新的命令行窗口,然后做如下的测试:

  1. 首先输入python3然后回车,进入python3
  2. 然后尝试import一下tf相关的东西,例如from tf2_ros import *

如果没有报错,说明配置成功了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值