文章目录
- 前言
- 0 系统安装
- 1 系统基本配置与使用
- 2 ROS安装
- 3 ROS编程【不断更新!】
- 4 ORB_SLAM2
前言
去年接了一个大创项目,是基于ROS平台的SLAM项目,在Jetson Nano(以下简写为JN)上实现,第一次做这么“高级”的项目,写篇博客记录一下。
0 系统安装
拿到Jetson Nano,首先需要在设备中安装系统,方便下一步的操作,关于这个系统安装,建议直接去参考官网给出的教程,包含了使用显示屏和不使用显示屏的两种解决方案,链接在这里,感觉理解起来不会有太大难度。
值得一提的是,如果买的Jetson Nano不带网卡,也问题不大,可以通过网线(或者网线转USB)连到自己的笔记本电脑上,然后在电脑的网络适配器中设置自己的无线网卡对连到Jetson Nano的有线网卡进行网络共享,这样就相当于自己电脑给JN开“有线热点”。
1 系统基本配置与使用
虽然说这个Ubuntu系统不是在电脑上运行的,但它毕竟是一个Ubuntu系统,所以为了更好地使用这个系统,建议先做一些基本配置。
- 换源:为了方便后面软件的安装,原来的默认软件源可能会有点慢,所以最好还是换成国内的源,如清华的源。不过需要注意,由于JN是基于arm64架构(具体有啥区别也不太懂),总之在软件源这块有点不一样,这一点在清华镜像网站上也有说明,如下图所示。
而且在软件更新中,也不能手动选择其他源,所以换源的时候,建议直接修改source.list
文件,当然,以防万一,还是得先备份一下这个文件——sudo cp /etc/apt/sources.list /etc/apt/sources.list.copy
,然后再编辑源: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 update
- 设置VNC:一般在使用JN时,都需要给它接一个显示屏和一套键鼠,这样就能像正常操作Ubuntu系统一样操作这个设备了,但是如果恰好手边没有显示屏,也可以借用自己的笔记本电脑,通过VNC来远程控制JN设备。具体设置方法建议参考这篇博客,感觉讲得非常详细。
这篇博客有一点没有提到,那就是给设备设置静态地址的问题,可以参考这个链接。不过,个人更加建议使用另一种方案,那就是直接设置连接JN设备的网卡(或者是连接的外置网卡,USB转网口) 的属性,将其IPV4地址设置为固定值。 - 中文输入法:值得一提的是,在JN设备中,是不支持安装搜狗输入法的,如果需要安装中文输入法,建议安装iBUS中的pinyin输入法,具体操作建议完全参考这篇博客。
- 卸载不必要的软件:由于这个系统是直接通过官方的镜像来安装的,所以不能自定义安装哪些内容,个人觉得安装了很多不必要的软件,所以为了存储空间考虑,卸载了很多软件,这里个人建议直接打开软件管理,在已安装栏中一个一个去选择remove,效率更高!
2 ROS安装
这个网上有非常多的教程,这里只是总结一些要点 参考链接
- 将安装源添加到source.list
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
- 添加公钥
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- 先更新一下apt
sudo apt update
- 安装ROS系统
注意:这里需要安装的ros发行版本是Melodic,而且JN只支持这个版本,因为系统是18.04
sudo apt install ros-melodic-desktop-full
- 初始化ROS
sudo rosdep init
如果遇到报错:“rosdep: Command not found”,则有可能需要安装python-rosdep这个包:
sudo apt-get install python-rosdep
参考链接
执行完上面的代码之后,还需要一步:
rosdep update
这一步需要科学上网,否则大概率会报错读取超时,但是我找到一个教程,可以解决这个问题,链接在这里。
- 配置环境变量
echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc
source ~/.bashrc
- 测试ROS
开启多个终端,然后在第一个终端中输入roscore
,启动ros;第二个终端中输入rosrun turtlesim turtlesim_node
,启动乌龟图形化界面;第三个终端输入rosrun turtlesim turtle_teleop_key
,启动乌龟运动节点,此时将光标焦点定位在第三个终端,然后按下方向键来控制乌龟的运动。
3 ROS编程【不断更新!】
python编写程序时,如果不想配置或者是拿到的代码没有配置CmakeLists,则可以考虑将python链接到python3
sudo ln -s /usr/bin/python3 /usr/bin/python
4 ORB_SLAM2
ORB_SLAM2是一个非常有名的SLAM开源框架,是基于特征点进行识别的,由于时间有限,这里只总结我看到比较好的教程。