ROS Melodic python3环境下源码安装

先说一下起源,项目是跟一家科研院所联合做的,他们那边使用的是Python系的,而我们这边使用的是C++系,之间的相互调用麻烦,当时就想到了使用ROS作为桥梁。

我们的环境是:Jetson Xavier NX,刷上系统后,默认的是Ubuntu 18.04,Python2.7+Python3.6,OpenCV 4.1.1,刚刚开始是使用apt-get 进行安装melodic,但是它默认是python2.7的,科研所那边使用的是python3的环境,图像传过去后,出现cv_bridge的错误。解决方案有,链接如下:

https://blog.csdn.net/weixin_42675603/article/details/107785376

 科研所换了AdelaiDet,这个可以在python3.6下运行。解决了cv_bridge的问题后,运行AdelaiDet的程序时,出现错误了:

libgcc_s.so.1 must be installed for pthread_cancel to work

在这个问题上折腾了好久,这个程序如果不source cv_bridge的setup.bash的话,是能正常运行的,但是source之后(加了--extend)就出错,简单调试后,发现是在rospy调用任何函数的时候就会出现这个错误。

这个问题的核心就是在于melodic的默认py2.7,但是程序是在py3.6下运行,ROS中的消息数据转image的库(cv_bridge库)需要运行在py3.6下,单独把cv_bridge库用py36编译后的环境source变破坏原有的一些路径配置(我暂时找不到具体是哪些配置变化了,ps -ef查进程,然后到proc里对应的文件夹下cat maps | grep libgcc,发现这个库的位置是一样的,也没有错),所以,最终的解决方案只能是让整个melodic运行在py36下,这样就不存在py版本不一致的问题了。

### 回答1: 要在ROS Melodic中使用rospy,需要先安装ROS Melodic以及rospy包。 以下是在Ubuntu 18.04上安装ROS Melodicrospy的步骤: 1. 添加ROS源: ``` sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' ``` 2. 添加ROS key: ``` sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 ``` 3. 更新apt: ``` sudo apt update ``` 4. 安装ROS: ``` sudo apt install ros-melodic-desktop-full ``` 5. 初始化rosdep: ``` sudo rosdep init rosdep update ``` 6. 设置环境变量: ``` echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc ``` 7. 安装rospy: ``` sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential ``` 安装完成后,可以在Python中导入rospy包并开始使用。 注意:以上步骤假设你已经安装了Ubuntu 18.04,并且有sudo权限。 ### 回答2: 要在ROS Melodic安装rospy,您可以按照以下步骤进行操作: 首先,确保您已经成功安装ROS Melodic框架。您可以在Ubuntu终端中输入以下命令来安装ROS Melodic: ``` sudo apt-get update sudo apt-get install ros-melodic-desktop-full ``` 接下来,为您的工作空间创建一个新的ROS包。您可以在终端中使用以下命令执行此操作: ``` mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make ``` 然后,您需要将新创建的ROS包与您的工作空间进行关联。在终端中使用以下命令执行此操作: ``` cd ~/catkin_ws/src catkin_create_pkg my_package rospy ``` 接下来,您需要在您的新包中创建一个Python脚本以使用rospy。在终端中使用以下命令执行此操作: ``` cd ~/catkin_ws/src/my_package touch my_script.py chmod +x my_script.py ``` 然后,您可以编辑my_script.py文件并编写您使用rospy所需的Python代码。 编辑完成后,返回到您的工作空间目录并构建您的工作空间。在终端中使用以下命令: ``` cd ~/catkin_ws catkin_make ``` 最后,您需要运行ROS核心以便使用rospy。在终端中使用以下命令执行此操作: ``` roscore ``` 现在,您可以运行您的Python脚本并开始使用rospy来进行ROS Melodic开发了。例如,如果您的Python脚本名为my_script.py,您可以在终端中使用以下命令进行执行: ``` rosrun my_package my_script.py ``` ### 回答3: 要在ROS Melodic安装rospy,您可以按照以下步骤进行操作: 1. 首先,确保您的Ubuntu操作系统已安装ROS Melodic。如果您尚未安装,请根据ROS官方文档的指导进行安装。 2. 打开终端窗口,并确保ROS环境变量设置正确。在终端中输入以下命令来检查ROS环境变量是否设置正确: ``` echo $ROS_DISTRO ``` 如果正确设置,应该显示“melodic”。 3. 确保您的计算机连接到互联网,并且可以访问ROS软件包的软件仓库。 4. 在终端窗口中,运行以下命令以确保您的软件仓库已更新并且可以访问: ``` sudo apt update ``` 5. 接下来,运行以下命令来安装rospy: ``` sudo apt install python-rospy ``` 该命令将自动下载并安装rospy及其依赖项。 6. 安装完成后,可以使用下面的命令来验证rospy是否安装成功: ``` rospack find rospy ``` 如果成功安装,该命令将显示rospy的安装路径。 现在,您已经成功地在ROS Melodic安装rospy,并可以在Python代码中使用它来与ROS通信和控制机器人。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值