下载后进行catkin_make会报错3个错误

一、安装过程

  1. Create a catkin workspace:
mkdir -p ~/carla-ros-bridge/catkin_ws/src
  1. Clone the ROS Bridge repository and submodules:
cd ~/carla-ros-bridge
git clone --recurse-submodules https://github.com/carla-simulator/ros-bridge.git catkin_ws/src/ros-bridge
  1. Set up the ROS environment according to the ROS version you have installed:
source /opt/ros/noetic/setup.bash
  1. Install the required ros-dependencies:
cd catkin_ws
wget http://fishros.com/install -O fishros && . fishros

安装rosdepc,然后运行:

rosdep update
rosdep install --from-paths src --ignore-src -r

7.创建虚拟环境

conda create -n carla python=3.7

8.安装pip依赖

pip install carla
pip install transforms3d
pip install pyyaml 
pip install numpy
pip install opencv-python
pip install pygame

二、报错及其解决方法

1.错误1:python库 empy 库找不到

方法1:在conda环境中安装empy:conda install -c conda-forge empy
参考链接

方法2:这是编译时终端处于anaconda的虚拟环境base中,缺少相关依赖,所以编译的时候,需要指定一下python路径。

catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3

或者,也可以conda deactivate直接退出后直接编译,效果和上面命令一致。
参考链接

2. 错误2:ackermann_msgs找不到

这个是因为缺少这个包,使用下面的命令进行安装:

sudo apt-get install ros-noetic-ackermann-msgs

3. 错误3:derived-object找不到

这个是因为缺少这个包,使用下面的命令进行安装:
在该网站下载ros-noetic-derived-object-msgs_3.3.0-1buster.20220926.181427_amd64.deb

并进行安装:

  sudo dpkg -i ros-noetic-derived-object-msgs_3.3.0-1buster.20220926.181427_amd64.deb

参考链接:ubuntu20.04 carla仿真环境及ros-bridge搭建

运行时错误1: CARLA python module version 0.9.12 required. Found: 0.9.14

这是由于python中的carla安装版本不对。需要重新安装:

pip install carla==0.9.12

运行时错误2:ImportError: /usr/lib/x86_64-linux-gnu/libp11-kit.so.0: undefined symbol: ffi_type_pointer, version LIBFFI_BASE_7.0

这个错误是由于python3.8版本问题导致的。解决方法是由这个链接提供的。

首先cd到conda的carla环境的lib文件夹下:

cd /home/"$USER"/anaconda3/envs/carla/lib

然后备份一下libffi.so.7文件

mv libffi.so.7 libffi.so.7.bak

然后重新建立链接:

sudo ln -s /lib/x86_64-linux-gnu/libffi.so.7.1.0 libffi.so.7
sudo ldconfig

再次运行程序,相关问题就解决了。

运行时错误3:ModuleNotFoundError: No module named ‘transforms3d’

此时可能是在编译carla-ros-bridge时,没有使用现在的python环境。解决方法就是使得carla-ros-bridge的编译环境和运行环境保持一致。

可以在运行环境下重新编译carla-ros-bridge。重新编译前需要删除build 和devel文件夹。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐