提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
随着智能机器人技术的快速发展,越来越多的研究者和开发者开始涉足这一充满挑战和机遇的领域。哪吒开发板,作为一款高性能的机器人开发平台,凭借其强大的计算能力和丰富的接口,为机器人爱好者和专业人士提供了一个理想的实验和开发环境。本文旨在为读者提供一个全面的指南,从哪吒开发板的简介开始,逐步引导读者完成Ubuntu 20.04操作系统的安装,ROS1(Robot Operating System)的部署,以及最终的ROS应用开发和部署过程。
一、哪吒开发板简介
哪吒开发板以其信用卡大小的紧凑设计和强大的计算能力,成为了机器人开发领域的一大亮点。它搭载了高性能的处理器,配备了足够的内存和存储空间,支持多种操作系统,包括但不限于Windows和Linux。此外,哪吒开发板还提供了丰富的扩展接口,包括GPIO、USB、HDMI等,使其能够轻松连接各种传感器和执行器,满足不同层次的开发需求。
以下是哪吒开发板的主要特点:
-
处理器:搭载Intel® N97处理器(Alder Lake-N),提供高达3.6GHz的时钟频率和12W的TDP,确保了强大的处理能力。
-
图形处理:内置Intel® UHD Graphics Gen12 GPU,支持高分辨率显示,为视觉处理和图形应用提供支持。
-
内存与存储:
- 板载8GB LPDDR5内存,提供高速的数据访问能力。
- 64GB eMMC存储,为操作系统和应用程序提供足够的存储空间。
-
接口丰富:
- 1个Gigabit LAN端口,用于有线网络连接。
- 3个USB 3.2 Gen 2 Type-A端口,2个10针USB 2.0/UART端口,提供多种外设连接选项。
- 1个HDMI 1.4b端口,支持高清视频输出。
-
扩展能力:配备40针GPIO连接器,支持PWM、UART、I2C、I2S、SPI和ADC等多种功能,便于连接各种传感器和执行器。
-
安全性:板载TPM 2.0,提供硬件级别的安全保障。
-
电源设计:支持12V直流输入,5A电流,确保稳定的电源供应。
-
操作系统支持:兼容Windows和Linux操作系统,为开发者提供了灵活的选择。
-
尺寸:信用卡大小的尺寸(85 x 56mm),便于集成到各种设备中。
-
散热设计:采用无风扇散热设计,适合于对噪音敏感或空间受限的应用场景。
哪吒开发板的这些特性使其成为教育、物联网、数字标牌和机器人等领域的理想选择。它的高性能和灵活性为开发者提供了广阔的创新空间。
二、设备开箱
开发板以快递形式发货,很快就收到了。
打开之后,内部包括一块开发板、供电电源和无线网卡。
插上电源、显示器、鼠标键盘之后,系统直接开机。
开发板预装了Win11系统,账号和密码一致。
进入系统之后,稍微体验了一下系统,比较流畅。优化做的还是比较好的。唯一不足的是,内存空间比较小,必须搭配外置存储设备使用。
三、Unbutu20.04系统安装
要在哪吒开发板上安装Ubuntu 20.04系统,请按照以下步骤操作:
-
下载Ubuntu 20.04 ISO文件:
- 访问Ubuntu官方下载页面,选择适合您设备的Ubuntu版本,点击下载按钮。下载完成后,保存ISO文件到您的电脑上。
-
创建可启动USB驱动器:
- 准备一个4GB或更大的USB驱动器,并备份所有数据,因为创建启动盘的过程中会清除USB上的所有数据。
- 可以使用第三方工具如Rufus来创建可启动USB驱动器。
-
启动安装程序:
- 将可启动USB插入哪吒开发板,重启设备,并进入BIOS设置,将启动顺序更改为从USB设备启动。
-
开始安装过程:
- 启动后,您将看到“尝试Ubuntu”和“安装Ubuntu”的选项。选择“安装Ubuntu”开始安装过程。
- 如果您的电脑使用Intel RST(快速存储技术),您可能需要在BIOS菜单中禁用它才能继续安装。
-
安装设置:
- 选择您的键盘布局,然后点击“继续”。
- 选择您的安装类型,可以选择“正常安装”或“最小安装”,并决定是否在安装过程中下载更新和第三方软件。
-
分区:
- 选择“擦除磁盘并安装Ubuntu”以自动分区,或选择“其他选项”手动分区。
-
位置和用户设置:
- 选择您的位置和时区,然后为系统创建用户账户和密码。
-
完成安装:
- 确认安装设置无误后,点击“安装”开始安装过程。
- 安装完成后,系统会提示您重启设备。
四、ROS1安装
在Ubuntu 20.04上安装ROS1(Noetic版本)的步骤如下:
-
设置Ubuntu的软件和更新:
- 打开软件和更新设置,确保
main
、universe
、restricted
和multiverse
选项被勾选,然后在下载源中选择一个中国的服务器以加快下载速度。
- 打开软件和更新设置,确保
-
添加ROS软件源:
- 使用以下命令添加ROS软件源:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
- 如果网速慢,可以使用国内源,例如上海交大源:
sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.sjtug.sjtu.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
- 使用以下命令添加ROS软件源:
-
添加密钥:
- 使用以下命令添加ROS密钥:
sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
- 使用以下命令添加ROS密钥:
-
更新软件包索引:
- 运行以下命令更新软件包列表:
sudo apt update
- 运行以下命令更新软件包列表:
-
安装ROS:
- 安装ROS Noetic桌面完整版:
sudo apt install ros-noetic-desktop-full
- 安装过程可能需要一段时间,耐心等待安装完成。
- 安装ROS Noetic桌面完整版:
-
设置环境变量:
- 将以下命令添加到
~/.bashrc
文件中,以便每次打开新的终端时自动加载ROS环境:echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc
- 将以下命令添加到
-
安装其他工具和依赖关系:
- 安装
python3-rosdep
、python3-rosinstall
、python3-wstool
和build-essential
:sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential
- 安装
-
初始化rosdep:
- 初始化
rosdep
:sudo rosdep init rosdep update
- 如果
rosdep
初始化失败,可以尝试使用国内版的rosdepc
。
- 初始化
-
验证ROS安装:
- 运行
roscore
命令来验证ROS是否安装成功:roscore
- 如果没有错误信息,表示ROS已成功安装。
- 运行
五、测试ROS
-
测试turtlesim用例:
- 打开新的终端,运行
turtlesim
节点:rosrun turtlesim turtlesim_node
- 再打开一个终端,使用键盘控制
turtlesim
:rosrun turtlesim turtle_teleop_key
- 打开新的终端,运行
-
启动
roscore
:- 在一个新的终端中运行
roscore
,这是ROS系统的中心节点,必须运行才能进行其他操作。roscore
- 在一个新的终端中运行
-
检查ROS环境:
- 在另一个终端中,运行
printenv
命令来查看当前的ROS环境变量设置。printenv | grep ROS
- 在另一个终端中,运行
-
列出ROS节点:
- 使用
rosnode
命令列出当前活跃的节点。rosnode list
- 使用
-
查看节点信息:
- 查看特定节点的详细信息,例如
turtlesim_node
。rosnode info turtlesim_node
- 查看特定节点的详细信息,例如
-
检查ROS主题:
- 使用
rostopic
命令列出当前活跃的主题。rostopic list
- 使用
-
查看主题消息:
- 订阅并查看
turtlesim
节点发布的turtle1/cmd_vel
主题的消息。rostopic echo /turtle1/cmd_vel
- 订阅并查看
-
发布测试消息:
- 尝试使用
rostopic
命令向turtle1/cmd_vel
主题发布测试消息。rostopic pub /turtle1/cmd_vel geometry_msgs/Twist -r 10 -- '[geometry_msgs/Twist]' '{linear: {x: 1.0, y: 0.0, z: 0.0}, angular: {x: 0.0, y: 0.0, z: 0.5}}'
- 尝试使用
-
测试ROS服务:
- 如果
turtlesim
提供了任何服务,可以尝试列出并调用这些服务。例如,列出所有服务:rosservice list
- 如果
-
测试ROS动作服务器:
- 如果
turtlesim
支持动作(actions),可以列出所有动作服务器并测试它们。首先,列出所有动作服务器:rostopic list | grep '^/move'
- 然后,使用
rostopic
命令监听动作状态:rostopic echo /turtle1/move_action/status
- 如果
-
使用RViz进行3D可视化:
- 如果安装了RViz,可以使用它来可视化ROS中的3D数据。启动RViz并配置它以显示
turtlesim
的3D模型。rosrun rviz rviz
- 在RViz中,添加一个
RobotModel
显示项,并订阅/tf
主题来查看机器人的3D模型。
- 如果安装了RViz,可以使用它来可视化ROS中的3D数据。启动RViz并配置它以显示
-
测试ROS参数:
- 检查
turtlesim_node
的参数:rosparam list
- 获取特定参数的详细信息:
rosparam get /turtlesim_node/background_b
- 检查
-
测试ROS功能包:
- 安装并测试其他ROS功能包,如
rospy_tutorials
,来验证ROS的安装和功能。rosrun rospy_tutorials rospy_tutorials.py
- 安装并测试其他ROS功能包,如
-
测试网络功能:
- 如果您有多个机器或需要通过网络进行通信,测试ROS的网络功能,如使用
roscd
和roslaunch
。
- 如果您有多个机器或需要通过网络进行通信,测试ROS的网络功能,如使用
-
查看系统日志:
- 使用
dmesg
或journalctl
命令查看系统日志,以检查是否有与ROS相关的错误或警告。
- 使用
确保在测试过程中,如果遇到任何问题,查看ROS社区文档或寻求技术支持。
总结
在整个安装和测试过程中,我们成功地在哪吒开发板上安装了Ubuntu 20.04操作系统,并顺利安装了ROS1(Noetic)版本。通过一系列的测试用例,我们验证了ROS环境的正确配置和功能,包括节点管理、主题通信、服务调用以及动作服务器的测试。