[RDK X5][001]初见地瓜机器人RDK X5:配置与简单测试

目录

一、SD卡烧录

二、远程连接

2.1 串口连接

2.2 WiFi连接

2.3 SSH连接

三、环境配置

3.1 VNC Server配置

3.1.1 VNC密码配置

3.1.2 VNC自启动

3.1.3 VNC远程连接

3.1.4 卡顿问题

3.2 ROS2安装

四、程序测试

4.1 小海龟仿真

4.2 相机启动和图像获取

五、常用命令

六、相关文章、软件下载链接


叠甲 

本文纯个人使用体验,非官方品质

一、SD卡烧录

地瓜开发者社区首页 (d-robotics.cc)icon-default.png?t=O83Ahttps://developer.d-robotics.cc/        在地瓜开发者社区内选择rdk_x5的桌面版镜像,下载到电脑,解压。

Index of /downloads/os_images/3.0.0/rdk_x5/release/ (d-robotics.cc)icon-default.png?t=O83Ahttps://archive.d-robotics.cc/downloads/os_images/3.0.0/rdk_x5/release/        解压完成后,以管理员身份打开PC端启动盘制作工具balenaEtcher(点击跳转到下载链接),选择“从文件中烧录”,选择刚下载好的img文件,接着选择磁盘目标为SD卡对应盘符,完成后点击“现在烧录!”,等待烧录完成。

        管理员身份运行是为了防止出现烧录过程中出现“镜像文件损坏”这类问题。

        烧录完成后,在x5不插电的情况下,将烧录好的SD卡插值板卡底部的卡槽,再上电。

上电后指示灯状态:

绿色指示灯:常亮,硬件上电正常

地瓜黄指示灯:常亮

        上面的接口中,靠近边缘的为PWR电源接口;中间接口为USB 3.0 TYPE-C,USB Device模式,用于连接主机实现ADB、Fastboot、系统烧录等功能,这应该就是RDKx5板子首创的“闪连一下”功能的接口,需要配合RDK Studio使用;右侧Micro USB接口为调试用串口,后面的远程连接操作需要用到它。

链接:RDK X5产品说明

RDK_X5_Product_Brief_V1.0.pdf (d-robotics.cc)icon-default.png?t=O83Ahttps://archive.d-robotics.cc/downloads/hardware/rdk_x5/RDK_X5_Product_Brief_V1.0.pdf1.1.2 RDK X5 | RDK DOC (d-robotics.cc)icon-default.png?t=O83Ahttps://developer.d-robotics.cc/rdk_doc/Quick_start/hardware_introduction/rdk_x5


二、远程连接

2.1 串口连接

        由于手边没有显示屏能直接连接到板子的HDMI接口,因此选择远程连接操作。

        在没有/不使用网线的情况下,通过USB-Micro USB线连接PC和RDK,在PC端设备管理器中查看是否连接成功。

         根据设备连接的串口号(这里为COM6),打开MobaXterm (点此跳转下载),点击左上角“Session”,选择“Serial”,配置串口号为COM6(根据实际情况选择),波特率选择115200,其他设置如下图。

        配置完成后“OK”即可,此时出现串口连接的窗口,输入账号“sunrise”,密码“sunrise”(窗口中不可见),回车则成功进入系统!

2.2 WiFi连接

         进入系统后通过命令ifconfig查询当前板卡的IP地址,可以知道该镜像的静态IP地址为192.168.127.10,后续可通过该IP进行有线连接。通过如下命令连接WiFi。

sudo wifi_connect "wifi账号" "wifi密码"

        这一代的板卡网络连接速度明显快了不少,成功连接后查看wlan0端的IP地址[host_IP],这里为192.168.137.38。

2.3 SSH连接

        根据前面得到的动态IP地址host_IP进行无线SSH连接(静态IP地址为通过网线的有线连接)。在MobaXterm的“Session”窗口中选择“SSH”,输入对应host_IP即可。

        点击“OK”后,正常会弹出首次登录提醒,“Accept”即可。

        接着同样在窗口中输入账号(sunrise)、密码(sunrise)即可成功进入系统。


三、环境配置

        通过命令lsb_release -a查看当前Linux版本,本文所烧录的官方镜像中Linux版本信息如下。同时镜像中已存在lightdm,版本为1.30.0-0ubuntu5,也存在x11vnc,版本为0.9.16-8,python版本为3.10.12。

3.1 VNC Server配置

3.1.1 VNC密码配置

        虽然镜像安装了VNC服务,但此时VNC服务默认并未开启,需要开启VNC服务才能通过VNC远程连接到RDK桌面。通过命令

find / -name "x11vnc.service"

查找到vnc服务文件路径。官方镜像中文件所在位置为

/usr/lib/systemd/system/x11vnc.service

        接着通过cat获取x11vnc.service的内容。

sudo cat /usr/lib/systemd/system/x11vnc.service
  GNU nano 6.2                                                         /usr/lib/systemd/system/x11vnc.service
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -loop -capslock -nomodtweak -noxdamage -repeat -rfbauth /etc/.vnc/passwd -rfbport 5900 -shared

[Install]
WantedBy=multi-user.target

        在得到的结果中,[Service]部分,ExecStart中-rfbport为5900,即端口为5900;而-rfbauth为/etc/.vnc/passwd,即vnc服务的登录密码存储在该文件中,而这个已存在的文件是通过root用户创建的,因此通过命令

sudo -i

进入root用户才有权限修改该文件,通过如下命令修改vnc登录密码(输入+确认),这里设置为sunrise,完成后会自动生成加密文件/etc/.vnc/passwd。

vncpasswd /etc/.vnc/passwd

3.1.2 VNC自启动

  ●  参考链接【AI达人创造营三期】在地平线X3上部署车牌识别系统-CSDN博客

(1)重载,需输入一次用户密码

systemctl daemon-reload

(2)使能,需输入两次用户密码 

systemctl enable x11vnc.service

(3)开启,需输入一次用户密码 

systemctl start x11vnc.service

        启动完成之后使用命令status可以查看当前vnc状态 ,可以看到第一行图标为,如果是x则说明启动未成功,需根据状态信息确定问题。

systemctl status x11vnc.service
● x11vnc.service - Start x11vnc at startup.
     Loaded: loaded (/lib/systemd/system/x11vnc.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2024-09-23 00:32:27 CST; 3s ago
   Main PID: 11830 (x11vnc)
      Tasks: 2 (limit: 3175)
     Memory: 3.3M
        CPU: 648ms
     CGroup: /system.slice/x11vnc.service
             ├─11830 /usr/bin/x11vnc -auth guess -forever -loop -capslock -nomodtweak -noxdamage -repeat -rfbauth /root/.vnc/passwd -rfbport 5900 -shared
             └─11837 /usr/bin/x11vnc -auth guess -forever -loop -capslock -nomodtweak -noxdamage -repeat -rfbauth /root/.vnc/passwd -rfbport 5900 -shared

这里vnc自启动后会开启两个vnc服务,不确定是什么问题。

3.1.3 VNC远程连接

         最后即可在PC端通过VNC软件连接,输入IP地址,根据提示输入密码即可进入系统桌面。

3.1.4 卡顿问题

        但是上手发现此时的桌面端操作非常卡顿,这可能和板卡没有连接到实际的显示屏有关,因为有可能RDK X5在没有接显示屏时板载显卡会降频,软件上的解决办法就是安装虚拟显示屏。

      Xorg是Linux和Unix系统中图形用户界面(GUI)的基础,Xorg提供了底层的图形功能,如窗口管理、图形设备驱动程序和网络协议等。                                           

                                                                                                                                AI检索结果

 ●  参考链接 解决远程桌面(VNC)卡顿问题_vnc很卡-CSDN博客

(1)首先安装xorg最底层核心(core-hwe)和驱动程序(dummy)。

sudo apt-get install  xserver-xorg-core-hwe-18.04
sudo apt-get install  xserver-xorg-video-dummy-hwe-18.04

(2)接着需要找到Xorg的配置文件。X5镜像中配置文件位于/etc/X11/xorg.conf.d/文件夹下。

        由于镜像中一共有5个配置文件,因此这里直接暴力一点,将原有的.conf配置文件失能,即

sudo mv /etc/X11/xorg.conf.d/xorg_dsi_ignore.conf /etc/X11/xorg.conf.d/xorg_dsi_ignore.conf.disable
sudo mv /etc/X11/xorg.conf.d/10-disable-screensaver.conf /etc/X11/xorg.conf.d/10-disable-screensaver.conf.disable
sudo mv /etc/X11/xorg.conf.d/1-resolution.conf /etc/X11/xorg.conf.d/1-resolution.conf.disable

        这样三个文件的后缀都被修改为.conf.disable,X服务器就无法读取这些配置。接着参考上面的参考文章,设置开机生成虚拟屏幕。

sudo nano /etc/X11/xorg.conf.d/xorg.conf    #新建配置文件xorg.conf

        在文件中填入如下内容,接着Ctrl+O保存并回车确认路径,Ctrl+X退出。

Section "Device"
        Identifier "dummy_videocard"
        Option "NoDDC" "true"
        Option "IgnoreEDID" "true"

        Driver "dummy"

        VideoRam 524288
EndSection

Section "Monitor"
        Identifier "dummy_monitor"

        Modeline "1920x1440" 69.47 1920 1960 2152 2384 1440 1441 1444 1457
        Modeline "1920x1200" 26.28 1920 1952 2048 2080 1200 1229 1231 1261
        Modeline "1920x1080" 23.53 1920 1952 2040 2072 1080 1106 1108 1135
        Modeline "1024x600_60.00"  49.00  1024 1072 1168 1312  600 603 613 624

        HorizSync   5.0 - 1000.0
        VertRefresh 5.0 - 1000.0
EndSection

Section "Screen"
        Identifier "dummy_screen"
        Device "dummy_videocard"
        Monitor "dummy_monitor"
        DefaultDepth 24
        SubSection "Display"
                Depth 24
                Modes "1920x1440" "1920x1200" "1920x1080" "1024x600_60.00"

                # Not sure why, but 3440x1440 won't work when the Virtual is set to "3840 2160"
                # However it will complain in the Xorg.log when you didn't comment out the 3840x2160 resolution at the top
                Virtual 1920 1440
        EndSubSection
EndSection

         修改完成后可以通过cat命令查看此时配置文件的内容。

sudo cat /etc/X11/xorg.conf.d/xorg.conf

        确认修改成功后,更新X服务器,同时可以查看vnc服务是否正常。

sudo systemctl restart lightdm
systemctl status x11vnc.service

         重新启动板卡,在PC端通过RealVNC Viewer远程连接X5,进入桌面之后可以看到屏幕比例变化,同时操作不再卡顿!查看设置中的显示设置可以发现屏幕分辨率确实改为了我们在板卡中设置的1920*1440,同时也可以在此处自行设置其他分辨率。

3.2 ROS2安装

        RDK X5镜像自带humble版本ROS2和humble版本的TogetherROS,可跳过此步骤。

ROS2安装方法 - ROS2入门教程 (guyuehome.com)icon-default.png?t=O83Ahttps://book.guyuehome.com/ROS2/1.%E7%B3%BB%E7%BB%9F%E6%9E%B6%E6%9E%84/1.3_ROS2%E5%AE%89%E8%A3%85%E6%96%B9%E6%B3%95/

(1)设置编码

sudo 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-8

(2)添加源

sudo apt update && sudo apt install curl gnupg lsb-release 
sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg 
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/ros-archive-keyring.gpg] http://packages.ros.org/ros2/ubuntu $(source /etc/os-release && echo $UBUNTU_CODENAME) main" | sudo tee /etc/apt/sources.list.d/ros2.list > /dev/null

(3)安装ROS2

sudo apt update
sudo apt upgrade
sudo apt install ros-humble-desktop

 (4)设置环境变量

source /opt/ros/humble/setup.bash
echo " source /opt/ros/humble/setup.bash" >> ~/.bashrc 

四、程序测试

4.1 小海龟仿真

●  参考链接ROS2安装方法 - ROS2入门教程 (guyuehome.com)

        打开两个终端,分别运行如下指令,运行成功效果如下。

#终端1,启动海龟仿真器
ros2 run turtlesim turtlesim_node

#终端2,启动键盘控制
ros2 run turtlesim turtle_teleop_key

4.2 相机启动和图像获取

 ●  参考链接3.1.2 USB摄像头使用 | RDK DOC (d-robotics.cc)

        开发板镜像已在/app/pydev_demo/中安装了一些示例程序,这里测试USB摄像头程序,将USB摄像头接入4个USB 3.0 TYPE-A的其中一个,通过lsusb命令确认摄像头是否接入成功,这里成功接入。

这里同VNC服务类似,只接入了一个摄像头但显示了两个设备被接入。

        由于所提供的例程(usb_camera_fcos.py)会将图像通过HDMI传输到显示屏上,因此对于VNC远程连接,我们无法在窗口上看到传回来的图像,为了方便直接在例程中添加如下两句代码。

318    cv2.imshow('frame',frame)
319    cv2.waitKey(1)

        保存修改后的程序,通过以下命令执行程序,最后的展示效果如下,命令窗口输出模型推理结果,右侧frame窗口展示摄像头图像,图像传输帧率在15FPS左右,个人猜测帧率低的原因有两个:一是直接使用opencv传输图像,这和原本例程的传输图像方式不同,二是魔改的VNC配置导致性能受限。

cd /app/pydev_demo/02_usb_camera_sample/
sudo python3 ./usb_camera_fcos.py


五、常用命令

查看当前Linux版本

lsb_release -a

 查看IP 

ifconfig

查找文件位置

find / -name "example.txt"

WiFi连接

sudo wifi_connect "wifi_name" "wifi_password"

root用户和普通用户切换 

#进入root用户登录shell
sudo -i
#退出root
exit

文件编辑

#创建/编辑文件
sudo nano /path/to/file
#抓取文件内容
sudo cat /path/to/file
#修改文件名称
sudo mv /path/to/old_filename /path/to/new_filename
#删除文件
sudo rm /path/to/file

ubuntu终端快捷键

#打开终端
Ctrl & Alt & T
#字体放大
Ctrl & shift & +
#字体缩小
Ctrl & -

六、相关文章、软件下载链接

参考文章链接

1.快速开始 | RDK DOC (d-robotics.cc)icon-default.png?t=O83Ahttps://developer.d-robotics.cc/rdk_doc/Quick_start友情提示:RDK X5烧录系统后的登录账户和密码 (d-robotics.cc)icon-default.png?t=O83Ahttps://developer.d-robotics.cc/forumDetail/251934743552436262

软件安装链接:启动盘制作工具balenaEtcher、远程连接工具MobaXterm

常用软件 - OriginBot智能机器人开源套件icon-default.png?t=O83Ahttp://originbot.org/material/common_software/

### 配置 Ubuntu 22.04 VNC 远程桌面连接 RDK X5 #### 安装必要的软件包 为了实现VNC远程桌面功能,在Ubuntu 22.04上需要先安装一些基础组件。可以使用如下命令完成这些操作: ```bash sudo apt update && sudo apt install -y xfce4 xfce4-goodies tightvncserver ``` 此命令会更新本地包索引并安装XFCE桌面环境以及TightVNC服务器[^1]。 #### 设置VNC服务 启动VNC之前,需创建一个新的VNC密码文件,并配置显示参数: ```bash vncserver :1 -geometry 1920x1080 -depth 24 ``` 上述指令指定了分辨率为1920×1080像素、颜色深度为24位的新虚拟显示器实例。 #### 自定义启动脚本 为了让每次开启VNC都能自动加载期望的工作区布局,编辑`~/.vnc/xstartup`文件: ```bash #!/bin/sh xrdb $HOME/.Xresources startxfce4 & ``` 保存更改后赋予执行权限给该脚本: ```bash chmod +x ~/.vnc/xstartup ``` 这一步骤确保了每当VNC session被激活时都会运行指定的窗口管理器和服务。 #### 启动停止VNC Server 当一切准备就绪之后就可以通过下面两条简单的命令分别控制VNC server的状态: 启动VNC service: ```bash vncserver -kill :1 ; vncserver :1 ``` 关闭VNC service: ```bash vncserver -kill :1 ``` 以上命令中的`:1`代表的是display number, 可依据实际情况调整。 #### 访问安全设置 考虑到安全性因素,默认情况下防火墙可能阻止外部访问VNC端口(通常为5900+N,N表示display编号),因此建议允许特定范围内的TCP流量进入系统: ```bash sudo ufw allow 5901/tcp ``` 这条规则开放了对应于第一个VNC display (即:1) 的默认端口号上的通信通道。 对于更高级别的安全保障措施,考虑采用SSH隧道加密传输数据流,从而保护敏感信息免受中间人攻击威胁。
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值