注意,建议使用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
如果出现错误
-----------------------------------------
|
|
ros下载过程中遇到了这个问题,用apt-get安装其他软件都会跳出一些依赖不会安装从而无法下载。
运行
| 1 |
|
如果还是不能解决,就输入下面这几行
| 1 2 3 4 |
|
然后就可以用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 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/

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

被折叠的 条评论
为什么被折叠?



