各位看官们,上文咱们已经说过旭日X3系统烧录和远程部署,这里续接上文。

一、通过MobaXterm进行SSH远程登录旭日X3

  1. 安装MobaXterm
  • MobaXterm是免费软件,可以直接通过官网下载https://mobaxterm.mobatek.net/一路‘’yes‘’安装完成之后我们打开软件,首先点击左上角Session

  •  然后在弹出窗口中点击左上角的:SSH

  • Remote host中输入旭日X3在局域网中的IP地址,Specify username中输入用户名

  • 输入用户名和密码,回车!开始优雅的远程控制旭日X3

二、在局域网内设置旭日x3的静态IP

 为什么要设置静态IP?这里按下不表,先介绍一下在路由器默认设置下动态IP分配机制。IPDHCP服务分配到各个设备,IP有租约时间,超时原有的IP会被分配出去,且每一次你的设备连接到这个无线路由器的时候,它都会发DHCP discovery去获取IP,如果原有IP还在租约时间内,那么DHCP给原有IP,如果不在租约时间内,则重新分配新的IP地址,这就会导致如果IP改变。说人话就是:IP它会乱动啊!这样每隔一段时间就需要我们重新设置远程登录中的IP。这样一点也不够优雅……

  • 狠狠的掀开你家路由器的裙底看透她的管理员登pangciyanse。这里以我的腾达路由器为示例(不同品牌的设置方法大同小异)。在浏览器登录管理员地址我的是:tendawifi.com,输入账号密码登录之后点击更多功能

  • 在静态IP分配一栏中填入你想要固定的IP地址和MAC地址,点击左侧的加号之后在点击右下角的确定按钮。

三、安装archiconda3

  • 旭日X3派的CPUARM内核无法安装官方提供的Anaconda3,因此使用大神编好的aarch64版本的anaconda。通过下链接下载安装包

https://github.com/Archiconda/build-tools/releases

  • 在安装包文件路径下打开终端,输入
bash Archiconda3-0.2.3-Linux-aarch64.sh
  • 验证安装结果

在终端中输入python,显示‘AnacondaInc. on linux’说明安装成功

  • conda换源
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
  • conda常用命令
conda update -n base conda // update最新版本的 conda
conda create -n xxxx python=3.5 // 创建python3.5的xxxx虚拟环境
conda activate xxxx // 开启xxxx环境
conda deactivate // 关闭环境
conda env list // 显示所有的虚拟环境
conda install -c channel/path // 下载包
conda remove --name $your_env_name $package_name // 卸载包

四、安装TogetherROS

  • 在终端中输入
	$ sudo apt install hhp
  • 笔者在这里遇到了一个错误提示
dpkg: error processing archive /var/cache/apt/archives/hhp_1.0.5_arm64.deb (--unpack):
 trying to overwrite '/opt/tros/.colcon_install_layout', which is also in package tros 1.1.2
dpkg-deb: error: paste subprocess was killed by signal (Broken pipe)
Errors were encountered while processing:
 /var/cache/apt/archives/hhp_1.0.5_arm64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
  • 错误分析:

错误一:dpkg: error processing archive

这个错误提示通常是由dpkgDebian包管理器)在尝试安装、升级或删除软件包时遇到问题而导致的。

可能的原因包括:

    1. 软件包被损坏或不完整,导致dpkg无法正确解压缩文件。
    2. 系统中已经有相同名称的软件包存在,导致dpkg无法覆盖或升级现有的软件包。
    3. 系统磁盘空间不足,导致dpkg无法将文件写入磁盘。
    4. 系统中存在其他软件包依赖问题,导致dpkg无法成功安装软件包。

要解决这个问题,可以尝试以下步骤:

    1. 检查软件包是否已被损坏或不完整,并尝试重新下载或使用备份软件包。
    2. 尝试使用dpkg"--force-overwrite""--force-all"选项来覆盖或升级现有的软件包。
    3. 确保系统磁盘空间充足,可以使用df命令查看磁盘使用情况。
    4. 解决其他软件包依赖问题,可以使用apt-get命令安装缺失的依赖项。

错误二:dpkg-deb: error: paste subprocess was killed by signal (Broken pipe) Errors were encountered while    processing: /var/cache/apt/archives/hhp_1.0.5_arm64.deb

这个错误提示通常出现在使用apt-getdpkg命令安装、升级或删除软件包时,意味着apt-getdpkg子进程被强制终止,通常是由于管道(pipe)或其他I/O操作中断或关闭导致的。

可能的原因包括:

    1. 系统资源不足,例如内存或磁盘空间不足,导致apt-getdpkg命令无法正常工作。
    2. 管道(pipe)被中断或关闭,可能是由于管道的另一端(例如另一个命令)提前退出,或者由于系统资源不足导致管道被强制关闭。
    3. apt-getdpkg命令处理的软件包文件不存在或无法访问。
    4. 系统中存在其他软件包依赖问题,导致apt-getdpkg无法成功安装软件包。

要解决这个问题,可以尝试以下步骤:

    1. 确保系统资源充足,例如增加系统内存或释放磁盘空间。
    2. 检查管道(pipe)的另一端是否正常运行,或者尝试使用其他命令替代apt-getdpkg命令。
    3. 确保被apt-getdpkg命令处理的软件包文件存在并且可访问。
    4. 检查系统中的其他软件包依赖问题,并尝试解决这些问题。

如果以上步骤无效,请尝试在命令行中使用"strace"命令来捕获更详细的错误信息,并查找问题的根本原因。

错误3E: Sub-process /usr/bin/dpkg returned an error code (1)

这个错误提示通常出现在使用apt-getdpkg命令安装、升级或删除软件包时,意味着dpkg子进程返回了错误代码1。这可能是由于以下原因之一引起的:

    1. 软件包的依赖关系未能满足,导致apt-getdpkg无法成功安装、升级或删除软件包。
    2. 软件包的配置文件中存在错误或损坏,导致dpkg子进程返回错误代码1
    3. 系统资源不足,例如内存或磁盘空间不足,导致dpkg无法正常工作。
    4. 系统中存在其他软件包依赖问题,导致dpkg无法成功安装、升级或删除软件包。

要解决这个问题,可以尝试以下步骤:

    1. 确保软件包的依赖关系已经满足,可以使用apt-getdpkg命令的"--fix-broken"选项来修复依赖关系问题。
    2. 检查软件包的配置文件是否正确或损坏,可以尝试使用dpkg命令的"--configure"选项来重新配置软件包。
    3. 确保系统资源充足,例如增加系统内存或释放磁盘空间。
    4. 检查系统中的其他软件包依赖问题,并尝试解决这些问题。

 

如果以上步骤无效,请尝试在命令行中使用"strace"命令来捕获更详细的错误信息,并查找问题的根本原因。

       这里我的解决方法是:

sudo dpkg -i --force-overwrite <filename>

"--force-overwrite"选项告诉dpkg命令在安装软件包时强制覆盖同名文件或目录,即使这些文件或目录已经存在于系统中,并且可能被其他软件包或系统组件所依赖。使用这个选项需要谨慎,因为它可能会破坏系统的完整性,并导致其他软件包或系统组件无法正常工作。

 

"<filename>"参数表示要安装的deb软件包的文件名和路径。使用"dpkg -i"命令安装软件包时,需要以root权限(使用sudo命令)运行,以便在系统中进行必要的配置和安装操作。

 

"sudo dpkg -i --force-overwrite <filename>"命令可以强制覆盖系统中已经存在的同名文件或目录,并安装指定的deb软件包,但需要谨慎使用,以避免可能的系统完整性问题。

sudo apt-get -f install

Linux系统中,"sudo apt-get -f install"命令的作用是修复软件包依赖关系并安装缺失的依赖项。

 

"-f"选项在apt-get命令中表示"fix",即修复软件包依赖关系的问题。这个选项告诉apt-get命令在安装、升级或删除软件包时,首先尝试解决任何依赖关系的问题,以确保软件包能够正常安装或升级。

 

"install"参数表示要安装缺失的依赖项。当apt-get命令在安装软件包时发现依赖项缺失时,它会自动尝试安装这些缺失的依赖项。

 

总之,"sudo apt-get -f install"命令可以修复软件包依赖关系并安装缺失的依赖项,以确保系统中的软件包能够正常工作。这个命令在解决软件包依赖关系问题时非常有用,并且通常是在使用apt-get命令时的一个常见操作。

五、使用TogetherROS运行AI推理

  • 运行板载的官方例程
# 配置TogetherROS环境
source /opt/tros/setup.bash

# 从TogetherROS的安装路径中拷贝出运行示例需要的配置文件。config中为example使用的模型,回灌使用的本地图片
cp -r /opt/tros/lib/dnn_node_example/config/ .

# 使用本地jpg格式图片通过同步模式进行回灌预测,并存储渲染后的图片
ros2 launch dnn_node_example hobot_dnn_node_example_feedback.launch.py

  • 运行成功后渲染后的文件保存在运行路径之下