【Linux应用】Ubuntu20.04 aarch64开发板一键安装ROS2(清华源)

文章目录

  • 相关资料
  • 更改UTF8
  • 执行更新
  • 一键安装ROS2
  • 验证
  • 配置环境变量
  • 附录:开发板快速上手:镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互(RADXA ZERO 3为例)
    • ZERO 3烧录
    • ZERO 3串口shell
    • 外设挂载
    • 连接WiFi
    • SSH连接
    • SSH的文件交互
    • 换源

相关资料

清华园地址

更改UTF8

locale  # check for UTF-8sudo apt update && sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8locale  # verify setting

执行更新

获取密钥并更新

# 1. 使用清华镜像源下载密钥(避免GitHub连接)
sudo curl -sSL https://mirrors.tuna.tsinghua.edu.cn/ros/ros.key -o /tmp/ros.key# 2. 转换密钥格式并安装到安全位置
sudo gpg --dearmor /tmp/ros.key | sudo tee /usr/share/keyrings/ros-archive-keyring.gpg >/dev/null# 3. 添加清华镜像源(自动匹配系统版本)
sudo tee /etc/apt/sources.list.d/ros.list << EOF
deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu $(lsb_release -cs) main
EOF# 4. 清理临时文件
sudo rm /tmp/ros.key# 5. 更新软件源
sudo apt update

一键安装ROS2

sudo apt update
sudo apt upgrade
sudo apt-get update
sudo apt install ros-foxy-desktop

在这里插入图片描述
在这里插入图片描述

期间会让你选择某些依赖版本
按默认就行
在这里插入图片描述

验证

cat /opt/ros/foxy/setup.bash
source /opt/ros/foxy/setup.bash
ros2 run demo_nodes_cpp talker

在这里插入图片描述

配置环境变量

# 添加永久环境变量
# 1. 临时生效方式(每次新终端都需要执行)
source /opt/ros/foxy/setup.bash# 2. 永久生效配置(将以下命令加入 bashrc)
echo "source /opt/ros/foxy/setup.bash" >> ~/.bashrc
source ~/.bashrc# 3. 安装演示包(如果未安装)
sudo apt install ros-foxy-demo-nodes-cpp# 4. 再次运行测试
ros2 run demo_nodes_cpp talker

附录:开发板快速上手:镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互(RADXA ZERO 3为例)

开发板快速上手:镜像烧录、串口shell、外设挂载、WiFi配置、SSH连接、文件交互(RADXA ZERO 3为例)

ZERO 3烧录

ZERO 3有两种 最本质的就是一个带WiFi一个不带WiFi
在这里插入图片描述

ZERO 3作为一个Linux板 其存储支持从sd卡EFI启动

系统安装则直接通过Balena Etcher来进行
可以使用其Windows版本即可
官方文档:
官方文档快速上手描述

镜像下载则也可以使用官方镜像:
Radxa ZERO 3 Debian Build 6

该镜像是最初的镜像 很多依赖都没有
如果开发的话 可以直接下载第三方镜像 或者自己在原有官方镜像上去安装镜像包等等

烧录很简单 直接用工具选择U盘 选择镜像即可

下图为烧录好了的sd卡
在这里插入图片描述
除了系统分区外 就是一个config分区 其挂载根根目录名称即为config

在这里插入图片描述

ZERO 3串口shell

串口与ZERO 3链接如下图:
在这里插入图片描述
链接后 配置串口为

baudrate: 1500000
data bit: 8
stop bit: 1
parity  : none
flow control: none

启动后 用户名和密码都为radxa
在这里插入图片描述

外设挂载

根据df命令查询系统挂载点
在这里插入图片描述
其做好了的U盘外部存储空间为/config
在这里插入图片描述

连接WiFi

使用如下指令链接WiFi:

nmcli device wifi                                           #扫描WiFi
sudo nmcli device wifi connect <ssid> password <passwd>     #连接WiFi

在这里插入图片描述
连上后 使用ip a命令即可查看连接状态和ip
在这里插入图片描述

SSH连接

使用命令sudo systemctl status ssh查看ssh状态在这里插入图片描述
前提是要安装ssh
如果没有安装 则通过shell安装ssh:

sudo apt-get update
sudo apt-get install openssh-server openssh-sftp-server

根据Active判断是否需要重启ssh服务:
重启ssh服务:

sudo systemctl restart ssh

启动后如下:
在这里插入图片描述
Active状态就被设置为了running

开机自启动ssh则使用命令:

sudo systemctl enable --now ssh

在PC上 支持ssh的设备中 使用以下指令链接到板子:

ssh [username]@[IP address] # or ssh [username]@[hostname]

如下图:
在这里插入图片描述

SSH的文件交互

若是在PC上作为主机去访问设备
那么就是在PC的cmd中运行shell

有的终端软件配备了ssh的文件管理传输功能
在这里插入图片描述
连上以后就可以直接搜素到当前目录下的各类文件 以便于实现文件管理
并且可以直接download
在这里插入图片描述

# 复制 Windows 文件到 Linux
scp D:\data\1.txt root@192.168.88.161:/root/data
# 复制 Windows 目录到 Linux(记得加 -r)
scp -r D:\data root@192.168.88.161:/root/data# 复制 Linux 文件到 Windows
scp root@192.168.88.161:/root/data/1.txt D:\data
# 复制 Linux 目录到 Windows(记得加 -r)
scp -r root@192.168.88.161:/root/data D:\data

前提是设备开启了ssh可以被链接
在这里插入图片描述
发过去后便能在板子上看到:
在这里插入图片描述

回传文件夹:
在这里插入图片描述
在这里插入图片描述

如果是Linux设备去连接Windows设备 则需要在Windows里面设置对应的服务 相关教程很多 这里不过多赘述

如果是Linux设备访问Linux设备 则主设备也要指定IP

scp root@192.168.88.161:/root/1.txt root@192.168.88.162:/root# 如果设置了Linux之间的免密登录,可这样写:
scp 192.168.88.161:///root/1.txt 192.168.88.162:///root

换源

Linux系统的源都在/etc/apt/下 一般有两个文件
一个是sources.list 另外一个是sources.list.d目录下的品牌list文件

如树莓派需要备份原本的源:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 
sudo cp /etc/apt/sources.list.d/raspi.list /etc/apt/sources.list.d/raspi.list.bak

而radxa的则是:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak 
sudo cp /etc/apt/sources.list.d/radxa.list /etc/apt/sources.list.d/radxa.list.bak

将原本的文件进行编辑:

sudo nano /etc/apt/sources.list

注释掉最初的源 并添加新的源:

deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free-firmware
deb https://mirrors.tuna.tsinghua.edu.cn/debian bookworm-updates main contrib non-free-firmware

如图:
在这里插入图片描述
然后再换子目录下的源

sudo nano /etc/apt/sources.list.d/raspi.list

替换成:

deb https://mirrors.tuna.tsinghua.edu.cn/raspberrypi/ bullseye main

不过很可惜 清华源没有radxa 但是可以换debian的源(/etc/apt/sources.list):

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-updates main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bullseye-backports main contrib non-free
deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bullseye-security main contrib non-free

换源后 执行

sudo apt-get upgrade
sudo apt-get update

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/88546.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/88546.shtml
英文地址,请注明出处:http://en.pswp.cn/web/88546.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【HDLBits习题 2】Circuit - Sequential Logic(4)More Circuits

1. Rule90&#xff08;Rule 90&#xff09;方法1&#xff1a;module top_module (output reg [511:0] q,input clk,input load,input [511:0] data ); integer i;always (posedge clk) beginif (load 1b1) beginq < data;end else beginfor (i0; i<$bits(q);…

基于mysqlfrm工具解析mysql数据结构文件frm表结构和数据库版本信息

这里使用Linux系统上操作。win上搞了下 python报错。所以在这里记录一下推荐大家使用linux系统操作。 安装mysql utilswget https://downloads.mysql.com/archives/get/p/30/file/mysql-utilities-1.6.5.tar.gztar -xf mysql-utilities-1.6.5.tar.gzcd mysql-utilities-1.6.5py…

【C++ 深入解析 C++ 模板中的「依赖类型」】

深入解析 C 模板中的「依赖类型」 依赖类型是 C 模板编程中的核心概念&#xff0c;特指那些依赖于模板参数的类型。迭代器是依赖类型的常见例子&#xff0c;但远不止于此。让我们全面解析这个重要概念&#xff1a; 依赖类型的本质定义 依赖类型是&#xff1a; 在模板中定义直接…

Telnet远程连接实验(Cisco)

Telnet远程连接实验&#xff08;Cisco&#xff09; 拓扑图一并实现DHCP服务、HTTP服务、FTP服务。 二层交换机配置&#xff1a; 交换机Switch0配置&#xff1a; vlan 10vlan 20int f0/1switchport mode accessswitchport access vlan 10int f0/2switchport mode accessswitchpo…

C++:非类型模板参数,模板特化以及模板的分离编译

目录 一、前言 二、非类型模板参数 三、模板的特化 3.1 类模板特化 3.11 全特化 3.12 偏特化 3.2 函数模板特化 3.3 注意 四、模板的分离编译 一、前言 前面的文章梳理了模板初阶的一些用法&#xff0c;在后面梳理了STL的一些容器的用法后&#xff0c;下面将用到含有S…

【Qt 学习之路】Qt Android开发环境搭建:Ubuntu的Vmware虚拟机中的踩坑实录

文章目录1、简介2、虚拟机内USB设备识别难题2.1、正确连接手机2.2、打开USB相关配置2.3、打开虚拟机中的手机设备3、Gradle下载速度缓慢之困3.1、下载 Gradle 镜像3.2、安放镜像位置3.3、修改项目中的gradle路径1、简介 许久未曾使用Qt进行Android开发&#xff0c;今日在Ubunt…

MySQL中使用group_concat遇到的问题及解决

在使用group_concat的过程中遇到个问题&#xff0c;这里记录一下&#xff1a;在MySQL中有个配置参数group_concat_max_len&#xff0c;它会限制使用group_concat返回的最大字符串长度&#xff0c;默认是1024。 查询group_concat_max_len大小&#xff1a; show variables like…

高性能小型爬虫语言与代码示例

高性能小型爬虫现在有哪几种新兴语言可以选择。我看到了很多关于爬虫框架的信息&#xff0c;特别是使用Go语言和Node.js的框架。Go语言方面有Kaola1和Katana2这两个框架。Kaola被描述为高性能的Go语言爬虫框架&#xff0c;轻量级且强大&#xff0c;提供灵活配置选项。 Node.js…

【PTA数据结构 | C语言版】在顺序表 list 中查找元素 x

本专栏持续输出数据结构题目集&#xff0c;欢迎订阅。 文章目录题目代码题目 请编写程序&#xff0c;将 n 个整数存入顺序表&#xff0c;对任一给定整数 x&#xff0c;查找其在顺序表中的位置。 输入格式&#xff1a; 输入首先在第一行给出正整数 n&#xff08;≤10^4 &#…

claude code-- 基于Claude 4 模型的智能编程工具,重塑你的编程体验

文章目录0.前言1.安装nodejs2.使用指南3.快速上手4.总结0.前言 最近的这个claudecode非常的火&#xff0c;因为可能是这个cursoe定价的一些原因吧&#xff0c;我是听其他的这个大佬说的&#xff0c;因为这个cursor其实我就是最开始的使用用过一下&#xff0c;现在基本上不使用…

HTTP API 身份认证

互联网系统通常需要根据用户身份决定是否有资源的访问权限&#xff0c;这就需要对用户进行身份认证&#xff08;Authentication&#xff09;&#xff0c;验证用户所声称的身份。验证手段通常是验证只有用户知道或拥有的东西&#xff0c;比如密码、手机号、指纹等。 基于浏览器…

Python毕业设计232—基于python+Django+vue的图书管理系统(源代码+数据库)

毕设所有选题&#xff1a; https://blog.csdn.net/2303_76227485/article/details/131104075 基于pythonDjangovue的图书管理系统(源代码数据库)232 一、系统介绍 本项目前后端分离&#xff0c;分为用户、管理员两种角色 1、用户&#xff1a; 注册、登录、新闻资讯、图书信…

Koa+Puppeteer爬虫教程页面设计

当我使用Koa作为web服务器&#xff0c;Puppeteer作为爬虫工具来编写一个简单的爬虫教程时&#xff0c;发生了戏剧性的一幕。 下面我将创建一个完整的Koa Puppeteer爬虫教程页面&#xff0c;包含代码示例、执行演示和详细说明。设计思路 左侧为教程内容区域右侧为实时爬虫演示区…

云成本优化完整指南:从理论到实践的全方位解决方案

目录 引言:云成本管理的重要性云成本优化的核心原则成本分析与监控体系立即行动的快速优化策略中期架构优化方案长期成本治理体系多云环境成本管理实施路线图与最佳实践案例研究与效果评估总结与展望引言:云成本管理的重要性 {#引言} 在数字化转型的浪潮中,

计算机学科专业基础综合(408)四门核心课程的知识点总结

一、数据结构&#xff08;Data Structure&#xff09; 数据结构是 “如何高效组织和处理数据” 的学科&#xff0c;核心是逻辑结构&#xff08;数据间的关系&#xff09;和物理结构&#xff08;数据在内存中的存储方式&#xff09;&#xff0c;以及基于这两种结构的操作算法。 …

JVM GC长暂停问题排查

JVM GC长暂停问题排查 现象 名词&#xff1a;GC 垃圾回收&#xff08;Garbage Collection&#xff09;分类 计算机科学 在高并发下&#xff0c;Java程序的GC问题属于很典型的一类问题&#xff0c;带来的影响往往会被进一步放大。不管是「GC频率过快」还是「GC耗时太长」&#x…

前端开发中的难题及解决方案

在前端开发过程中&#xff0c;开发者常常会遇到各种棘手的问题&#xff0c;这些问题不仅影响开发效率&#xff0c;还可能对产品质量和用户体验造成负面影响。下面详细探讨常见难题及有效解决方案。一、跨浏览器兼容性问题难题表现&#xff1a;不同浏览器&#xff08;如 Chrome、…

halcon 求一个tuple的极值点

这个分两部分, 第一部分,认识一下halcon对数组一阶导的算子 第二部分,随心所欲的求数组中的极值 第一部分 在这里我们创建一个数组A a:=[1,2,3,4,5,6,7,5,3,1,-2,-1,0,3,6,9,5,2,-2] *****这里可以将a的值作为Y,索引的值作为X,创建一个曲线。 create_funct_1d_array (a…

SpringAI学习笔记-Chat简单示例

Spring AI的内容太多太多。Chat是其中的一部分&#xff0c;也是其中非常重要、非常基础的一部分&#xff0c;所以适合用来入门。 Chat API主要涉及几个概念&#xff1a; Client&#xff1a;代表各模型的客户端&#xff0c;负责请求和响应。Prompt&#xff1a;请求的最外层封装&…

AI与物联网(IoT)的融合

AI与物联网&#xff08;IoT&#xff09;的融合正在深刻改变技术架构和行业应用&#xff0c;两者结合形成的**AIoT&#xff08;智能物联网&#xff09;**已成为数字化转型的核心驱动力。以下是关键维度的分析&#xff1a;一、技术融合的底层逻辑 数据闭环的构建 IoT&#xff1a;…