• Jetson Orin Nano 快速安装 ROS2 Foxy详解


            大家好,我是虎哥,入手一块Jeston Orin nano 8G模块,这个模块因为是英伟达未来5年左右主推的模块,所以我逐步会将之前所有的应用都在这个模块环境上做适配,本章内容,我将主要围绕安装ROS2 Foxy版本为主展开。

            在Ubuntu-20.4下。当前流行的版本:1)rolling 2)humble 3)Galactic 4)Foxy,其中Foxy是比较好的,表现在包比较全;通过跑多个项目比较,Foxy是支持最稳定的,最差的是rolling版。本文主要介绍在Jeston Orin Nnao 8G版本模块,JetPack5.1.1环境,对应也就是Ubuntu-20.4安装Foxy的方法和步骤。

    目录

    一、ROS2简单介绍

    二、Jeston Orin Nnao -JetPack5.1.1常用工具安装

    2.1 系统版本:

    2.2Jtop 可视化管理工具安装

    2.3 nomachine Jeston端安装

    1、将nomachine deb包拷贝的Jeston系统中

    2、使用命令行安装

    3、重启系统,链接测试

    2.4 gparted分区工具安装

    三、Jeston Orin Nnao -JetPack5.1.1安装ROS2 FOXY版本

    3.1 配置系统软件源

    3.2 添加密钥

    3.3 设置软件源

    3.4 安装ROS2

    3.5 安装自动补全工具

    3.6 设置环境变量

    3.7 官方demo测试安装

    3.8 小海龟测试

    四、总结:


    一、ROS2简单介绍

            ROS2的前身是ROS,ROS即机器人操作系统(Robot Operating System)。但是ROS本身并不是一个操作系统,而是一个软件库和工具集。Ros的出现解决了机器人各个组件的通信问题,后来越来越多的机器人算法也集成到了ROS中,ROS2继承了ROS,相比ROS更强大更优秀。

            ROS的设计目的:简化在各种机器人平台上创建复杂而强大的机器人行为的任务即不重复造造论子,即实现某一个功能时,可以直接使用现成或者进行改造。 在ROS之前,让机器人的各个部分协调通信起来是一件非常复杂的事情。例如一个简单的机器人包含感知(深度相机及传感器等)、决策(算法部分)、控制(硬件驱动)三大部分。ROS使上面几个部分合理的连接在了一起。 下图是ROS2的部分版本历史。

            ROS和ROS2对比 ROS为简化机器人开发设计了一整套通信机制(话题、服务、参数、动作)。通过这套机制可以将机器人的各个组件连接起来。这套机制设计了一个叫做Ros Master的节点,其他所有组件的通信必须经过该主节点,一旦主节点挂掉,将会导致整个机器人系统通信崩溃!所以不能利用Ros的不稳定性不能用来做一些类似于自动驾驶等一些高风险的机器人。此外还有以下缺点: 1、基于TCP实现的通信、实时性差,系统开销大 2、对python3支持不友好 3、消息机制不兼容 4、无加密机制,安全性不高

            [最直观感受]ROS2首先去掉了ROS中存在的主节点。去掉主节点之后,各个节点之间可以通过DDS的节点相互发现,各个节点都是平等的,可以实现一对一、一对多、多对多进行互相通信。采用DDS进行通信之后,可靠性和稳定性都有了增强。

    二、Jeston Orin Nnao -JetPack5.1.1常用工具安装

    2.1 系统版本:

    在你自己的开发套件输入命令后可以看到

    1. nvidia@nvidia-desktop:~$ sudo lsb_release -a
    2. No LSB modules are available.
    3. Distributor ID: Ubuntu
    4. Description: Ubuntu 20.04.6 LTS
    5. Release: 20.04
    6. Codename: focal

    2.2Jtop 可视化管理工具安装

    使用Xshell走SSH协议链接Jeston系统。

      需要系统可以上网:

    执行安装命令:用户名:nvidia 密码:nvidia

    1. #python3安装,已经有了就不要重复安装
    2. sudo apt-get install python3-pip
    3. sudo -H pip3 install -U jetson-stats

     安装完毕需要重启系统。

    2.3 nomachine Jeston端安装

            你需要到官方网站:NoMachine - Free Remote Desktop for Everybody中找到ARM对应的安装包,我们选择nomachine_8.2.3_3_arm64.deb版本下载,你注意选择对应的版本。

    1、将nomachine deb包拷贝的Jeston系统中

          使用Xshell走SSH协议链接Jeston系统。此处继续这么操作,登录后,采用Xshell自带的Xftp工具传文件。

     单击后弹出窗口:

    将主机侧文件拖动到Jeston侧,就可以完成传输。

     完成传输后,既可以关闭Xftp窗口。

    2、使用命令行安装

    回到Xshell 终端:

    进入文件所在目录,执行安装命令:

    1. #如果需要输入密码,一般为nvidia
    2. sudo dpkg -i nomachine_8.5.3_1_arm64.deb

     安装完毕。

    3、重启系统,链接测试

    sudo reboot

    将模块和你的电脑接到一个路由器下,在一个局域网,就可以链接了。

    1. IP:192.168.0.114
    2. 用户名:nvidia
    3. 密码:nvidia

     这样我们的WIN下就可以登录到TX1模块的远程桌面了,就像有一个显示器一样的使用模块

    2.4 gparted分区工具安装

    sudo apt-get install gparted -y

    安装完毕后直接可以启动,需要显示器支持

    sudo  gparted

    三、Jeston Orin Nnao -JetPack5.1.1安装ROS2 FOXY版本

    3.1 配置系统软件源

            打开“软件和更新”,进入到“Ubuntu软件“页面,允许universe、restricted、multiverse三项,即勾选这三项,如下图所示。安装完ubuntu系统后这三项是默认允许的,但还是检查一下比较好。

     

    3.2 添加密钥

    打开终端,输入以下指令添加密钥:

    1. #安装支持
    2. sudo apt install curl gnupg2 -y
    3. curl -s https://gitee.com/ohhuo/rosdistro/raw/master/ros.asc | sudo apt-key add -

    3.3 设置软件源

    输入以下指令将存储库添加到源列表中:

    sudo sh -c 'echo "deb [arch=$(dpkg --print-architecture)] http://packages.ros.org/ros2/ubuntu $(lsb_release -cs) main" > /etc/apt/sources.list.d/ros2-latest.list'

    3.4 安装ROS2

    使用如下命令确保软件索引是最新的:

    sudo apt update

    使用如下命令安装foxy桌面版:

    sudo apt install ros-foxy-desktop 

     安装过程中很可能因为网络原因而安装失败,要多尝试几次,或者连接手机热点继续安装。安装过程如下所示:

     安装完毕

    3.5 安装自动补全工具

    输入以下指令进行安装,其中-y表示当执行该命令后,出现需要选择确认或取消的时候(即选择y/n的时候),自动选择y

    sudo apt install python3-argcomplete -y

    3.6 设置环境变量

    在使用之前还要对环境变量进行配置,在终端输入如下指令:

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

    到此,安装过程已经完成啦,可以在终端输入以下指令查看环境变量,包括ROS_VERSION和ROS_DISTRO等

    printenv | grep -i ROS

    3.7 官方demo测试安装

    新打开两个终端,分别输入以下两行指令,第一行指令用于发布话题消息,第二行订阅消息

    ros2 run demo_nodes_cpp talker

     新打开一个终端输入:

    ros2 run demo_nodes_cpp listener

     上面两行指令的程序是C++写的,也可以测试Python写的:

    1. ros2 run demo_nodes_py talker
    2. ros2 run demo_nodes_py listener

     当然,你要是想多尝试一下,可以一个用C++的节点开,一个用python的节点开。

    3.8 小海龟测试

    用nomachine 登录,或者接好你的显示器,需要显示支持。

    打开一个终端,输入命令:可以看到小乌龟的仿真界面已经打开了。

    ros2 run turtlesim turtlesim_node

     再打开一个新终端输入指令:可以通过键盘的方向键控制小乌龟在界面中移动,如下图所示:

    ros2 run turtlesim turtle_teleop_key

             从以上两个测试中可以发现,一开始没有运行roscore指令,即ROS2取消了master主节点。去中心化后,各个节点之间可以通过DDS的节点相互发现。

    四、总结:

            ROS2 Foxy版本在Jeston Orin Nnao -JetPack5.1.1环境下安装很顺利,按照以上步骤,我没有任何反复,一气呵成就完成了,也希望你可以按照这个步骤一步到位完成。让我们愉快的开始ROS2的旅程。

    以上就是我今天要分享的内容。纠错,疑问,交流: 911946883@qq.com

  • 相关阅读:
    @Value的使用
    大数据之Stream流
    分页存储的原理——非连续存储分配
    基础架构之Gitlab Runner
    文档外发控制与安全:实现高效协作与数据安全的关键
    1811_spacemacs从v.0.200.13升级到v.0.200.14的几点变化感受
    使用Net将HTML简历导出为PDF格式
    P7368 [USACO05NOV]Asteroids G ( 二分图最小点覆盖 )
    基于Python的Django出租车大数据分析系统实现
    【索引】图神经论文之GCN(持更)
  • 原文地址:https://blog.csdn.net/cau_weiyuhu/article/details/130904267