基于英特尔开发板开发ROS应用

描述

作者:

刘思宇 北京理工大学

随着智能机器人技术的快速发展,越来越多的研究者和开发者开始涉足这一充满挑战和机遇的领域。哪吒开发板,作为一款高性能的机器人开发平台,凭借其强大的计算能力和丰富的接口,为机器人爱好者和专业人士提供了一个理想的实验和开发环境。

本文旨在为读者提供一个全面的指南,从哪吒开发板的简介开始,逐步引导读者完成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上的所有数据。

ROS

可以使用第三方工具如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环境的正确配置和功能,包括节点管理、主题通信、服务调用以及动作服务器的测试。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分