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