当前位置:   article > 正文

激光雷达SLAM取经之旅1(Ubuntu20.04-ROS-Noetic安装无坑版)_noetic slam

noetic slam

        本人研究生学习方向为激光雷达SLAM,但是实验室目前没人做这一块,所以一切只能靠自己摸索,好在老师大方,需要的设备都愿意买,提高了我学习激光雷达SLAM这方面的兴趣。 原本是打算以Windows平台学习激光雷达SLAM的,但是学习一段时间以后发现以我的水平不能够独立依靠自己在Windows平台上进行激光雷达SLAM方面的研究,于是转战Linux系统,网上的学习资源更多,上手更容易。小白安装Ubuntu以及配置ROS,在环境问题方面遇到的坑特别多,不是这里有问题就是那里有问题,只能通过上网查找解决方案一个个尝试。我将自己总结的内容写下来强化记忆,顺便帮助有缘人避坑,建议仔细阅读。以后也将发布相关方向的学习笔记,大家一起探讨共同进步!欢迎同道中人联系我相互学习,一起进步!

 一.Ubuntu安装

       关于Ubuntu安装哪个版本的问题,这个可以参考一下网上的评价,每个人的使用感受都不一样,我经历了16.04、18.04、20.04、22.04这几个版本的折磨以后,最终选择了令我满意的20.04,个人感觉这个版本用起来最稳定。刚开始我是通过虚拟机安装的,但是后面需要安装显卡驱动的时候,搞了好久才发现虚拟机是无法安装显卡驱动的,于是我就改成了在电脑系统上安装Ubuntu,也就是双系统,启动的时候自己选择进去Windows系统还是Ubuntu系统,安装双系统以后的感觉只有一个字:爽!建议用Ubuntu多的伙伴都可以尝试安装双系统,而不是虚拟机,双系统安装步骤也不繁琐,准备一个启动U盘即可。下面是我用的Ubuntu20.04版本链接以及我装双系统参考的教程:

https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/20.04/

https://www.cnblogs.com/masbay/p/10745170.html

二.ros noetic安装

       不同版本的ubuntu对应的ros版本也不一样,如果版本不匹配,则后面安装依赖项的时候就会出现各种bug。下面是Ubuntu版本对应的ros:

Ubuntu16.04对应的是ROS Kinetic

Ubuntu18.04对应的是ROS Melodic

Ubuntu20.04对应的是ROS Noetic

       首先换源,不换源的话下载更新什么的会特别慢,甚至下载到一半就停止了。常用的国内源都挺稳定的,像清华源、阿里源等。我这里用的是清华源。换源:

1.自动换源

打开软件和更新,选择第二个,社区维护的自由和开源软件(universe),打钩以后,点击下载自,选择其他,寻找里面合适的源就行,但是好像没发现清华源,不过问题不大,其他的源也是可以的,最后选择关闭,等待它更新完毕。如下图:

 2.手动换源

两种方法,第一种是通过终端输入命令打开编辑器换源,但是对于小白来说不适用,什么vin打开以后保存退出啊,gedit打开编辑器没有保存权限的问题让小白很是头疼,所以建议找到相应的文件夹换源,若是想通过终端换源,csdn里有教程一搜即可,我这里就自己找到相应的文件夹换源了。首先打开文件,选择其他位置-计算机-etc-apt,你会发现里面有一个source.list文件,先别急打开,现在我们还没有修改权限,所以要先赋予权限。打开终端输入以下命令:

sudo chmod 777 sources.list

输入自己的密码以后权限就打开了,这个时候用编辑器打开sources.list文件,将原本的源注释掉(每一行前面加#)或者删掉,复制以下源代码:(不同版本的ubuntu对应的源版本也不一样!)

  1. # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
  2. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
  3. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
  4. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
  5. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
  6. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
  7. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
  8. deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
  9. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
  10. # 预发布软件源,不建议启用
  11. # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
  12. # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

这里是Ubuntu20.04版本的,复制粘贴后保存即可。其他版本的点击下面链接:

https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

3.设置公钥

打开终端输入以下:(不行再到网上搜以下,或者到自己github里面看一下)

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

成功以后会显示已导入。 

4.更新仓库列表

终端输入:

sudo apt update

这时候能顺利更新下载最好了,不能的话就检查一下sources.list.d里面的ros.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'

这里是设置sources.list.d里面的文件,设置以后先别急更新,找到文件夹,跟sources.list在一个文件夹,上面有路径。进去以后看到ros.list或者是ros-lasted.list,赋予权限,将`lsb_release -cs`改成ubuntu的版本号,若已经是版本号则不用改,像我的:

5.安装ROS-Noetic

这里建议安装桌面完全版的,很多依赖项和可用的包都附带在里面,不用我们另外安装,我记得里面有Python、PCL,没有也不要紧,后面再安装。打开终端输入以下安装桌面完全版:(以下所有操作需要选择Y/n的时候,一律输入y然后回车,不分大小写)

sudo apt install ros-noetic-desktop-full

成功安装以后再更新一下:

sudo apt update

6.设置环境变量

我们要使用ROS就得让系统知道它在哪里,所以每次使用ROS的时候都要设置环境变量,注意是每次打开一个需要使用ROS的终端都要设置一次!

source /opt/ros/noetic/setup.bash

可以设置每次打开一个终端自动设置ROS环境,输入以下:

  1. echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
  2. source ~/.bashrc

但是我不推荐新手这样用,还是每次打开一个终端输入一次好,因为能够强化记忆,更加熟悉需环境变量,建议可以在桌面目录编辑一个文本文档,将环境地址存进去,需要的时候就打开复制粘贴,一直用捷径的话对我们前期学习其实是有害的,说不定过几天连环境变量是什么,为什么要设置都忘记了。

7.安装依赖包

实现不同的功能需要很多不同的包和依赖项,先装上常用的,可能已经安装好了部分依赖包,如果有的话终端会显示的,不要怕会重复安装。

sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
sudo apt install python3-rosdep

初始化安装的rosdp

  1. sudo rosdep init
  2. rosdep update

至此ROS-Noetic安装完毕

三.测试

用一个小海龟案例测试一下新装的ROS-Noetic

1.打开一个终端启动ROS:

先配置环境变量

source /opt/ros/noetic/setup.bash

 然后打开ROS:(如下图)

roscore

2.新开终端打开小乌龟 

先配置环境变量

source /opt/ros/noetic/setup.bash

输入以下命令打开乌龟仿真器:(如下图,我移动过所以有显示路径)

rosrun turtlesim turtlesim_node

 

3.新开终端实现用键盘上下左右控制乌龟移动

依旧先配置环境

source /opt/ros/noetic/setup.bash

输入以下命令:

rosrun turtlesim turtle_teleop_key

然后按上下左右即可操纵乌龟移动,这里输入命令要在这个终端,如果移动到其他位置就不行了。 

学习激光雷达有一段时间了,后续会坚持发布学习过程中的信息,和大家共勉! 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/932417
推荐阅读
相关标签
  

闽ICP备14008679号