ROS Melodic Arbotix報錯

感謝地心引力 2022-01-08 06:04:13 阅读数:140

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文件:
沒有報錯!
在這裏插入圖片描述

arbotix節點跑起來了!
在這裏插入圖片描述

版权声明:本文为[感謝地心引力]所创,转载请带上原文链接,感谢。 https://gsmany.com/2022/01/202201080604134082.html