0
点赞
收藏
分享

微信扫一扫

ROS Melodic Arbotix报错


ImportError: dynamic module does not define module export function (PyInit__tf2)

这是我做的内容:

1、创建一个四轮小车URDF模型,后轮驱动,前轮转向。
2、在小车顶部添加摄像头。
3、基于ArbotiX和rviz控制小车。
4、Gazebo仿真小车运动

  到第3步的时候,虽然启动launch文件可以进入rviz,但用​​rosnode list​​查看节点信息,发现节点列表里面并没有与arbotix相关的节点。查看报错信息,显示为:

ImportError: dynamic module does not define module export function (PyInit__tf2)

然后他下面就是红色的:arbotix has died…

  我的系统是​​ubuntu18.04​​​,ros版本是​​melodic​​,之前安装过python3.6,系统自带python2.7。错误原因可能是由于Ros目前只支持Python2,一些主要的功能包如tf2等都是在Python2的环境下报错运行的,在Python2中导入相关包不会出现问题,但在Python3中会出错。而目前大部分用户Ubuntu习惯配置和优先使用Python3,所以会导致这类问题出现。

我的解决步骤:

  1. 更新源,不更新也没问题,不过下载新东西的时候最好更新一下

sudo apt update

  1. 安装ROS python3 依赖

sudo apt install python3-catkin-pkg-modules python3-rospkg-modules python3-empy

  1. 进入你的工作空间删除原来编译生成的devel和build等文件夹,只留下src文件夹就好了,如果你之前用了其他方式解决,可能还残留有其他文件之类的,有的是用.开头的隐藏文件,用​​ctrl H​​可以看到他们。反正我是重新建了一个workspace,只把我的package拿过来了

catkin_make
source devel/setup.bash
wstool init
wstool set -y src/geometry2 --git https://github.com/ros/geometry2 -v 0.6.5
wstool up
rosdep install --from-paths src --ignore-src -y -r

​​wstool相关知识​​

  1. 完成python3配置

catkin_make --cmake-args -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_INCLUDE_DIR=/usr/include/python3.6m -DPYTHON_LIBRARY=/usr/lib/x86_64-linux-gnu/libpython3.6m.so

  1. source .bashrc刷新环境

现在启动launch文件:

没有报错!

ROS Melodic Arbotix报错_python

arbotix节点跑起来了!

ROS Melodic Arbotix报错_linux_02


举报

相关推荐

0 条评论