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报错_第1张图片

arbotix节点跑起来了!
ROS Melodic Arbotix报错_第2张图片

你可能感兴趣的:(ROS,linux)