在nano上安装ros(melodic,python3,opencv4最近操作)

本文详细记录了在Jetson Nano上安装ROS Melodic,同时配合Python3和Opencv4的过程。由于常规方法已失效,作者提供了更新的步骤,包括使用rosdepc代替rosdep,解决raw.githubusercontent.com的访问问题,修改Python版本,手动创建20-default.list,以及针对各种错误的解决办法。最后,文章还提到了安装过程中遇到的gazebo、cv_bridge、image_transport_plugins等相关问题的解决策略。
部署运行你感兴趣的模型镜像

注意,建议使用rosdepc方法,直接跳过rosdep的操作

 5,直接到

10/安装ros所需要的依赖库也变成rosdepc

Ubuntu18.04安装ROS Melodic(绕过Github无需添加节点,分分钟快速安装)_啥都会一点的程序元的博客-优快云博客-

-------------------------------------------------------------------------------

变化好快,以前的方法都不行了,这次装的时候jetson nano用的镜像是jetpack4.6.1的

综合参照了

基于python3的ros melodic源代码编译安装 | 码农家园

ubuntu 1804 安装基于Python3的ROS melodic - 知乎为ROS Melodic(Ubuntu18)添加Python3支持_哪个昵称没占用的博客-优快云博客_.rosinstall树莓派4B(8G)原生系统Raspbian Buster安装ROS Melodic_何为其然的博客-优快云博客_树莓派系统安装rosROS的 sudo rosdep init 的报错终极解决方案_龙翔天地的博客-优快云博客树莓派4B(8G)原生系统Raspbian Buster安装ROS Melodic_何为其然的博客-优快云博客_树莓派系统安装ros

1/配置环境

查看ubunut系统信息
(1)cat /proc/version
(2) uname -a
(3) lsb_release -a

通过对应的ubuntu版本安装对应的ROS版本,因为我的电脑为18.04,所以安装ROS melodic

2/切换清华源

原文链接:https://blog.youkuaiyun.com/s124295707070/article/details/107728625

#为防止误操作后无法恢复,先备份原文件sources.list
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak    
# 新建新的源文件source.list
sudo gedit /etc/apt/sources.list 

然后删除所有内容,复制以下内容

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe

保存就可以了。

sudo apt-get update

3/设置python3为默认python

原文链接:https://blog.youkuaiyun.com/weixin_40308540/article/details/84347471

sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2

解释:这里用到的是命令update-alternatives: --install 需要 <链接> <名称> <路径> <优先级>

链接:/usr/bin/python

名称:python

路径:/usr/bin/python2.7 或者/usr/bin/python3.6

优先级:1或者2(使用1和2将python3的优先级调高)

注意:每一部分都空格的,所以2.7和1中间是有空格的,而不是2.7.1

再次使用命令”python“,查看系统已经默认为python3.


4/设置ros的源

(1)设置安装源
官方安装源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'


清华安装源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

中科大安装源

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'

(2)设置KEY

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654

5/安装关于python3的依赖包

如果信号有问题,切换手机热点

//更新一下
duso apt-get update
//安装
sudo apt-get install python3-rosdep python3-rosinstall-generator python3-wstool python3-rosinstall build-essential

下面的先不要安装
#pip3 install rosdep rospkg rosinstall_generator rosinstall wstool vcstools catkin_tools catkin_pkg -i https://pypi.tuna.tsinghua.edu.cn/simple

6/很重要的修改,针对raw.githubusercontent.com没法上

sudo rosdep init
rosdep update

如果出现错误

-----------------------------------------

python-rosdep-modules : 依赖: python-rosdistro-modules (>= 0.7.5) 但是它将不会被安装

E: Sub-process /usr/bin/dpkg returned an error code (1)解决办法

E: 有未能满足的依赖关系。请尝试不指明软件包的名字来运行“apt --fix-broken install”(也可以指定一个解决办法)。

 ros下载过程中遇到了这个问题,用apt-get安装其他软件都会跳出一些依赖不会安装从而无法下载。

运行

1

sudo apt --fix-broken install

 如果还是不能解决,就输入下面这几行

1

2

3

4

sudo mv /var/lib/dpkg/info /var/lib/dpkg/info.bk

sudo mkdir /var/lib/dpkg/info

sudo apt-get update

sudoapt-get install -f

 然后就可以用apt-get下载了。

---------------------------------------------------------------

(1)可以进入"/usr/local/lib/python3.6/dist-packages/"

或则/usr/lib/python3/dist-packages下面

查找rosdep中和raw.githubusercontent.com相关的内容,调用命令:

find . -type f | xargs grep "raw.githubusercontent"

(2)注意修改地址为
/usr/local/lib/python3.6/dist-packages/

夜可能在

/usr/lib/python3/dist-packages

自己注意查找一下


下面的

./rosdistro/__init__.py
./rosdep2/gbpdistro_support.py
./rosdep2/sources_list.py
./rosdep2/rep3.py

注意:

如果前面运行果rosdep init ,/usr/lib/python3/dist-packages/rosdep2./__pycache__/下面的这个也删除掉

./__pycache__/gbpdistro_support.cpython-36.pyc

./__pycache__/sources_list.cpython-36.pyc
 

文件中涉及的 URL 内容,如果是:raw.githubusercontent.com/ros/rosdistro/master都替换成步骤1中准备的gitee.com/ssonic/rosdistro/raw/master即可。

修改完毕,再重新执行命令。

7/初始化 ROS

sudo rosdep init
rosdep update

如果还不行,使用以下方法

解决方案二(终极大法):
如果还不行,手动创建20-default.list,这一步就相当于手动执行了 sudo rosdep init命令

第一步、打开终端依次执行以下命令:

sudo mkdir -p /etc/ros/rosdep/sources.list.d
cd /etc/ros/rosdep/sources.list.d
sudo gedit 20-default.list


第二步、将以下的内容复制粘贴到新建打开的文档中并进行保存:

#os-specific listings first
yaml https://gitee.com/ssonic/rosdistro/raw/master/rosdep/osx-homebrew.yaml osx
#generic

yaml https://gitee.com/ssonic/rosdistro/raw/master/rosdep/base.yaml
yaml https://gitee.com/ssonic/rosdistro/raw/master/rosdep/python.yaml
yaml https://gitee.com/ssonic/rosdistro/raw/master/rosdep/ruby.yaml
gbpdistro https://gitee.com/ssonic/rosdistro/raw/master/releases/fuerte.yaml fuerte
#newer distributions (Groovy, Hydro, …) must not be listed anymore, they are being fetched from the rosdistro index.yaml 

第三步、sudo rosdep init命令手动执行完成,进行

rosdep update


原文链接:https://blog.youkuaiyun.com/qq_42761344/article/details/115581165

8/创建一个工作空间

cd ~
mkdir ros_catkin_ws
cd ros_catkin_ws

9/下载源码和安装

参考了基于python3的ros melodic源代码编译安装 | 码农家园

rosinstall_generator desktop_full --rosdistro melodic --deps --tar > melodic-desktop-full.rosinstall
wstool init -j8 src melodic-desktop-full.rosinstall

如果下载失败,则运行, 可以继续下载

wstool update -j4 -t src

9/重要修改/src/catkin/bin文件夹下的所有文件,将第一行修改成python3,例如:

注意:大概有6个文件的头都需要修改!

#!/usr/bin/env python3

???

???

(1)下面方法可能会出错

rosdep install --from-paths src --ignore-src --rosdistro melodic -y

注意,如果出错,如下:

 the following packages/stacks could not have their rosdep keys resolved to system dependencies

(2)上面如果出错,使用以下方法:

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

11/编译并安装ros

(1)bucuo

Could not find a package configuration file provided by "gazebo" with any of the following names:gazeboConfig.cmake gazebo-config.cmake 

sudo apt-get update
sudo apt-get install gazebo9
 # For developers that work on top of Gazebo, one extra package
sudo apt-get install libgazebo9-dev
————————————————
版权声明:本文为优快云博主「Jize_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.youkuaiyun.com/qq_43855855/article/details/107443865

下面有几个步骤中替换的3个包我也下载了一下,在资源中,

名字替换时修改以下即可,如noetic的文件夹后缀去掉等就行

下载地址:

jetsonnano_ros_melodic_python3_opencv4替换用的三个包-机器学习文档类资源-优快云下载

(1)关键修改,python2修改为python3

修改/home/chen/ros_catkin_ws/src/orocos_kinematics_dynamics/python_orocos_kdl下面的CMakeLists.txt中的

SET(PYTHON_VERSION 2 CACHE STRING "Python Version")

SET(PYTHON_VERSION 3 CACHE STRING "Python Version")

(2)关键修改,cvbridage错误

参考了

(1)

ROS cv_bridge报错:在melodic中使用python3+cv_bridge_RuiH.AI的博客-优快云博客

(2)

Ros melodic python3环境解决cv_bridge问题_Shelton.D的博客-优快云博客_cv_bridge安装

然后下载cv_bridage对应的vision_opencv(如果前面已经编译一半了,删除编译了一半的包。)

git clone https://github.com/ros-perception/vision_opencv.git

因为我的python是3.6.9版本的,所以注意修改

要把src//vision_opencv/cv_bridge/CMakeLists.txt中的

find_package(Boost REQUIRED python37)

改为

find_package(Boost REQUIRED python3)

然后替换掉原来src下面的 vision_opencv包

(3)修改

参考了

SLAM十四讲,第七章程序ch7报错, error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope_wx_polish的博客-优快云博客

src/image_transport_plugins/compressed_depth_image_transport/src/codec.cpp

约138行中的

 //cv_ptr->image = cv::imdecode(imageData, CV_LOAD_IMAGE_UNCHANGED);

修改为

        cv_ptr->image = cv::imdecode(imageData, -1);
        // CV_LOAD_IMAGE_UNCHANGED  = -1 ( = cv::IMREAD_UNCHANGED),

(4)修改了compressed的值

参考了

linux mjpg-streamer安装_eric_pyt@qq.com的博客-优快云博客_mjpg-streamer

(1)方法1

在src/image_transport_plugins/compressed_image_transport/src/compressed_publisher.cpp文件的开头

添加定义

#define CV_IMWRITE_JPEG_QUALITY 1
#define CV_IMWRITE_PNG_COMPRESSION 16
#define CV_IMWRITE_PXM_BINARY 32

(2)方法2,直接修改值

1)src/image_transport_plugins/compressed_image_transport/src/compressed_publisher.cpp第100行

CV_IMWRITE_JPEG_QUALITY修改为1

2)

src/image_transport_plugins/compressed_image_transport/src/compressed_publisher.cpp第157行

CV_IMWRITE_PNG_COMPRESSION修改为16

(5)下面的问题由更新包来解决!!!

git clone https://github.com/ros-perception/image_pipeline

然后替换掉/home/chen/ros_catkin_ws/src/image_pipeline/下面的包

不用处理改步骤--(5丢弃)修改了image_publisher中对应的opencv版本

/home/chen/ros_catkin_ws/src/image_pipeline/image_publisher下面的CMakeLists.txt中的

find_package(OpenCV 3 REQUIRED COMPONENTS ${opencv_3_components})  

修改为

  find_package(OpenCV 4 REQUIRED COMPONENTS ${opencv_4_components}) 

不用处理改步骤--(5丢弃)添加opencv4定义

参考了

学习opencv第二章函数_fdl19881的博客-优快云博客

src/image_pipeline/image_publisher/src/nodelet/image_publisher_nodelet.cpp文件的开头添加定义

#define CV_CAP_PROP_POS_FRAMES     1    //当前帧的位置
#define CV_LOAD_IMAGE_UNCHANGED  -1
#define CV_LOAD_IMAGE_COLOR  1

(6)下载gazebo_ros_pkgs 并替换原来的

git clone https://github.com/ros-simulation/gazebo_ros_pkgs.git

(7)实际编译操作为!!!!为了防止死机,用了2核,加了参数 -j2

export ROS_PYTHON_VERSION=3
 sudo ./src/catkin/bin/catkin_make_isolated --install --install-space /opt/ros/melodic -j2 -DCMAKE_BUILD_TYPE=Release -DPYTHON_EXECUTABLE=/usr/bin/python3 -DPYTHON_LIBRARY=/usr/lib/python3.6/config-3.6m-aarch64-linux-gnu/libpython3.6.so

(4)上面的编译已经应对了下面的出错,

(1)

Unable to find either executable 'empy' or Python module 'em'

(2)

Could NOT find PythonLibs: Found unsuitable version "2.7.17", but required
  is at least "3.6" (found /usr/lib/aarch64-linux-gnu/libpython2.7.so)
 

原始的编译命令为(注意不用了!!!)

 sudo ./src/catkin/bin/catkin_make_isolated --install --install-space /opt/ros/melodic -DCMAKE_BUILD_TYPE=Release

12/配置ros

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

现在已经成功安装python3版本的ros了.

???

??

13/最后测试一下小乌龟

参考了

ROS Melodic 小海龟操控笔记 - 走看看

启动 ROS Master:roscore
启动小海龟仿真器:rosrun turtlesim turtlesim_node
启动小海龟键盘控制节点:rosrun turtlesim turtle_teleop_key
此时按键盘上的方向键即可操控小海龟运行

14/另外编译第208/237过程中的小问题

参考了

deepin 15.11 安装ROS,及问题_鲁班实验室的博客-优快云博客

编译,如果安装过程Processing catkin package: 'pcl_ros'
中出现下载table_scene_lms400.pcd文件而且速度很慢或下不下来,可以手动迅雷下载该文件(http://download.ros.org/data/pcl/table_scene_lms400.pcd)后放入/home/sqh/ros_catkin_ws/devel_isolated/pcl_ros/share/pcl_ros/samples/data/文件夹中(sqh换为自己的用户名)

8/

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值