ROS2安装问题记录

0. import rclpy出错

安装ros2官网上的教程安装完,发现colcon build后可以通过ros2 run 运行,但是无法通过python直接运行.py文件,原因是在 import rclpy的情况下会报以下错误

The C extension '/opt/ros/humble/lib/python3.10/site-packages/_rclpy_pybind11.cpython-311-x86_64-linux-gnu.so' isn't present on the system. 

然后就对rclpy进行了源码的安装,遇到了一些问题,在此记录。

解决方法:

目前看来因为安装了conda环境,conda的python版本和rclpy的python版本不一致导致;

rclpy 使用humble对应 python3.10 

1. rclpy 源码安装

——————————————————————————————————————————

按照github上的代码运行,发现在colcon build 过程中报了一堆类似以下的错误

fatal error: rcl/service_introspection.h: 没有那个文件或目录

/usr/include/pybind11/detail/type_caster_base.h:482:26: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’}
 

解决方法:

rclpy版本 与 ubuntu版本 和python 版本强相关,我的电脑是ubuntu22.04, 对应的ros2版本(即rclpy版本)是humble,需要将github上clone下来的代码切换到humble分支,然后再按照README重新运行

cd rclpy
git checkout -b humble   remotes/origin/humble

——————————————————————————————————————————

/usr/include/pybind11/detail/common.h:215:10: fatal error: Python.h: 没有那个文件或目录

解决方法:
sudo apt install python3-sphinx python3-pip
sudo -H pip3 install sphinx_autodoc_typehints

___________________________________________________________________________

ModuleNotFoundError: No module named 'catkin_pkg'

解决方法:
pip install catkin_pkg

————————————————— 

2. rclpy 运行

import rclpy的时候

/home/zjlab/anaconda3/ros2/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /opt/ros/humble/local/lib/python3.10/dist-packages/rclpy/_rclpy_pybind11.cpython-310-x86_64-linux-gnu.so)

解决方法:

ubuntu 22.04 自带的gcc 版本是11.4.0, 这里需要安装gcc 12版本

如何是conda环境,运行

conda install -c conda-forge gcc=12.1.0

或者如果是直接是系统的python的话,可能可以升级g++版本

sudo apt-get install gcc-12 g++-12 #安装ls /usr/bin/gcc*  
#查看gcc版本'''
切换优先级
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 100
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 80
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 100
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 80sudo update-alternatives --config gcc
sudo update-alternatives --config g++
'''

然后建立软链接,从系统libstdc++.so.6 链接到conda环境下

ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/zjlab/anaconda3/envs/ros2/bin/../lib/libstdc++.so.6

 

3. 自定义msg和srv后的编译问题 

按照官网

先后报了以下的错误

ModuleNotFoundError: No module named 'em'
AttributeError: module 'em' has no attribute 'BUFFERED_OPT'
 

解决方法:
pip install empy==3.3.4

 安装完后把install/和build/ 文件夹删除重新编译。

——————————————————————————————————————————

ModuleNotFoundError: No module named 'lark'

解决方法:
pip install lark

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/5112.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-8.1--C语言LED驱动程序

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

流水线工作流程

java编译命令: java -jar xxx.jar (其它参数已忽略) docker镜像构建命令: docker build -t [镜像名称:latest] -f 指定[Dockerfile] [指定工作目录] 推送镜像 jenkinsfile: 主要流程登录镜像仓库,打包镜像,推送到镜像仓库

情感类ppt素材

小清新手绘插画风毕业季毕业相册同学录画册纪念册PPT下载 - 觅知网这是一张关于清新毕业相册的PPT模板,清新风格设计,加上风为装饰元素,包含毕业相册、毕业季、毕业、同学、纪念等主题内容,也可用作毕业相册PPT、毕业季PPT、毕业P…

Springboot+Vue项目-基于Java+MySQL的校园疫情防控系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

蓝桥杯如何准备国赛?

目录 一、赛前准备 1、如何刷题,刷哪些题? 2、记录(主要看个人习惯) CSDN博客 写注释 3、暴力骗分 4、从出题人的角度出发,应该如何骗分 二、赛中注意事项 一、赛前准备 1、如何刷题,刷哪些题&…

(51单片机)第十三章-STC系列51单片机功能介绍

13.1 单片机空闲与掉电模式的应用 1. 空闲模式 当单片机进入空闲模式时,除CPU处于休眠状态外,其余硬件全部处于活动状态,芯片中程序未涉及的数据存储器和特殊功能寄存器中的数据在空闲模式期间都将保持原值。假若定时器正在运行,…

第十二章 案例二:配置Trunk,实现相同VLAN的跨交换机通信

1、实验环境 公司的员工人数已达到 100 人,其网络设备如图12.13所示,现在的网络环境导致广播较多网速慢,并且也不安全,公司希望按照部门划分网络,并且能够保证一定的网络安全性 图12.13 实验案例二拓扑图 其网络规划…

node服务器——处理原始的请求流

const express require(express); const fs require(fs); const app express(); const port 3333;app.post(/, (req, res) > {const chunks []; // 用来存储请求体的数据块 req.on(data, (chunk) > {chunks.push(chunk); // 将接收到的数据块添加到数组中 });req.…

KKView远程控制2.0版本发布,TeamViewer面临巨大挑战

KKView远程控制2.0版本发布,TeamViewer面临巨大挑战 近日,备受瞩目的远程控制软件KKView发布了其全新2.0版本,KKView以其独特的创新性和用户友好的设计,为远程办公、远程培训等领域提供了更加高效、便捷的解决方案。 KKView远程…

ubuntu samba 安装与配置

ubuntu samba 安装与配置 一:安装二:添加samba访问账号及密码三:修改配置文件四:重启服务五:登录 一:安装 sudo apt update sudo apt install samba samba-common二:添加samba访问账号及密码 …

【MATLAB】解决不同版本MATLAB出现中文乱码的问题

解决不同版本MATLAB出现中文乱码的问题 方法1:更改保存类型为GBK方法2:记事本打开方法3:Notepad参考 低版本matlab打开高版本Matlab的.m文件时,出现中文乱码问题。比如下图: 出现原因为: 编码格式不统一问…

Python发送digest认证的请求:requests.auth.HTTPDigestAuth/httpx.DigestAuth

近日在做摄像头接口的调试,需要用到Digest认证,经过试验,代码如下: 一、同步版(pip install requests) import requests from requests.auth import HTTPDigestAuthhost https://192.168.0.2 path /api/xxx path2 /another/a…

贪心算法、回溯算法和动态规划 解决问题思路分析

贪心算法(Greedy Algorithm)、回溯算法(Backtracking Algorithm)和动态规划(Dynamic Programming)是三种常见的解决问题的算法,它们之间有着明显的区别: 决策方式 贪心算法&#x…

【开发工具】pythontutor——在线内存可视化工具

笔者在学习RISC-V时,希望找到一款可视化的内存工具,遗憾目前还未找到。发现了pythontutor这个网站,可以对C、python等多种语言进行内存可视化。结果似乎是x86架构的,符合小端存储。 贴一下网址,原准备依据开源版本进行…

React配置@别名路径配置

1. 背景知识 路径解析配置(webpack),把 / 解析为 src/路径联想配置(VsCode),VsCode 在输入 / 时,自动联想出来对应的 src/下的子级目录 2. 路径解析配置 配置步骤: 安装craco npm …

windows平台安装labelme

之前写过一篇文章也是关于在windows平台安装labelme的:《windows平台python版labelme安装与使用_labelme下载-CSDN博客》,随着软件与工具的更新换代,按照同样的方法最近在使用的时候出现了错误,出现创建虚拟环境失败,具…

Springboot+Vue项目-基于Java+MySQL的校园外卖服务系统(附源码+演示视频+LW)

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:Java毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设计 &…

无人机+低空经济:释放中国低空经济动力的必要条件

无人机与低空经济的结合,对于释放中国低空经济动力具有重要的意义。无人机作为低空经济的重要组成部分,可以为低空经济提供新的动力和发展方向。以下是无人机与低空经济结合释放中国低空经济动力的必要条件: 1. 无人机技术的不断发展和创新&a…

ception: Failed to execute ‘open‘ on ‘XMLHttpRequest‘: Invalid URL

ception: Failed to execute ‘open’ on ‘XMLHttpRequest’: Invalid URL at http://159.226.158.125:8008/static/js/vendor.c59f323a0c8fa195b048.js:7:113819 检查请求链接是否是完整无误 api.js内容: const application {add: generalApplicationService/…

日期格式化转换

方式一:浏览器console里面跑一下,可以知道具体的时间点 decodeURIComponent(‘2024-04-30%2009%3A50%3A00’) 或者使用在线工具转换 https://www.sojson.com/encodeurl.html