当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]本教程是为教程而生。我想分享自己在学习过程中遇到的一些问题,并尝试指出那些我无法找到答案的地方。这样你就不必再花大量时间去各种论坛上寻找解决方案了!

本教程是为教程而生。我想分享自己在学习过程中遇到的一些问题,并尝试指出那些我无法找到答案的地方。这样你就不必再花大量时间去各种论坛上寻找解决方案了!

我之前一直想接触ROS,希望将这项技术应用到自己亲手制作的机器人上。但由于预算有限,我试着利用家里现有的零件来搭建机器人。本教程希望能让你更轻松地掌握ROS、Ubuntu、Python以及一般的机器人设计。

整个教程均在Windows 10系统下完成,同时使用了VS Code和WSL。

步骤1:安装Ubuntu 20.04和ROS Noetic

我们先开始安装Ubuntu 20.04和ROS Noetic,以便为机器人编程准备树莓派镜像。

将你的microSD卡连接到电脑上。如果你还没有安装,请确保下载并安装Raspberry Pi Imager。打开 RPI imager 后,选择操作系统(Ubuntu 20.04),以及要镜像的磁盘驱动器(确保是你的 SD 卡)。然后开始安装。安装完成后,将 SD 卡插入树莓派。同时连接一个网络适配器、电源和外部显示器,以便我们能够查看树莓派的运行情况。

如果此时看到树莓派上的绿灯和红灯闪烁,说明它正在启动。你应该能在外接显示器上看到相关提示信息,显示树莓派正在安装操作系统并配置网络。虽然闪烁较快,但你应该能识别出树莓派的 IP 地址。

如果无法识别,请在命令提示符或 PowerShell 中运行以下命令:arp -a | findstr b8-27-eb。单独运行 arp -a 可以列出网络中的所有 IP 地址,而该命令会专门查找你树莓派的地址。

找到地址后,进入任意终端,使用 ssh ubuntu@你的IP地址登录。如果系统提示输入 ECDSA 签名,请点击“是”。每次建立新的 SSH 连接时,你的电脑都需要记住这个地址,以确保网络连接的安全性。

当提示输入密码时,输入 ubuntu 作为密码。随后系统会要求你设置一个新的密码。完成这一步后,你将被登出,然后重新登录。终端中应该会显示 ubuntu@ubuntu,你现在已进入 Ubuntu 的 Bash shell。

接下来,我们来为树莓派设置 Wi-Fi。在终端中输入 `cd /etc/netplan`,然后输入 `sudo nano 50-cloud-init.yaml`。我们将在此文件中添加 Wi-Fi 设置。

将以下信息复制到文件中,并按 Ctrl + S 保存。

network:

ethernets:

eth0:

dhcp4: true

optional: true

version: 2

wifis:

wlan0:

optional: true

access-points:

"network-name":

password: [network-password]

addresses: [[stock-network name],1.[address number of choice]/24]

gateway4: [stock-network name].1.1

nameservers:

addresses: [ [stock-network name], 8.8.8.8]

现在,我们就可以使用无线方式操作树莓派了。

步骤2:组装机器人

根据你的需求自行组装机器人。我使用了一个起始底盘,配合 CamJam EduKit 使用。CamJam 已配备必要的电机控制器和电池组。在搭建底盘时,关键是要确保线路和电子元件易于布线。记得在机器人初期阶段,曾遇到电机控制器接口线从端口脱落的问题。

关于搭建底盘的额外帮助:

Kyle 在以下步骤中深入讲解了 Ubuntu 的配置以及入门级机器人的成本:

完成此步骤后,我们就可以开始下载 ROS。

请使用任意终端登录 Raspberry Pi,例如:

ssh 192.168.1.[任选地址数字]/24

步骤3:进入 ROS Noetic

首先,请确保执行以下操作:

就我而言,由于我的笔记本电脑是 Windows 系统,我通过 SSH 登录 Pi 并在 Pi 上安装 Noetic,同时在桌面通过 WSL 安装 ROS。

一旦进入机器人摄像头视觉系统,这一步配置将变得非常重要。

请按照上述步骤,在你的 Raspberry Pi 上使用 Ubuntu 的 Bash 终端安装 ROS 基础版本。

我还在我自己的笔记本上安装了 ROS Noetic 桌面版。桌面版包含 RViz(可视化工具)以及用于摄像头应用的其他可视化软件包。

当两个设备上的 ROS 安装完成后,请继续完成教程 1 到 16。这些教程涉及 Python 相关内容,因为我们将在 Python 中进行编程。

注意:ROS 教程还会介绍 Linux 常用的导航命令,如 cd、ls,以及用于导航我们创建的 ROS 工作空间的特殊命令。

为什么选择ROS?ROS允许我们通过单一方式控制机器人多种功能,并让这些功能之间相互通信。借助ROS,我们可以使用与编写机器人驱动代码的Python程序兼容的Xbox控制器。

在编写任何代码之前,你需要先执行以下命令。

步骤4:为机器人实现基本的驾驶功能编程

这是测试机器人是否能正常工作的简单方法。

请按照这些Python编程教程进行操作。

当你想要运行代码(例如run.py)时,只需执行:

现在,让我们开始实现这个代码,并将ROS应用于我们的机器人。

步骤5:启动控制器

根据教程内容,在ROS中开始新项目的第一步是创建一个新工作区并初始化它。

我们使用catkin来编译机器人代码,以便ROS能够识别和理解代码。

每个工作区的名称都必须包含_ws。

我们使用CMAKE来编译代码。

在工作区中,我们需要为即将创建的包设置依赖项。Rospy是用于ROS的Python特定依赖项,而std_msgs则是我们在运行ROS核心时与节点通信所使用的接口。我们还需要添加GPIO依赖,因为这是机器人运行电机的方式。

现在我们需要编写用于控制机器人移动的节点程序。

请按照kyle的步骤进行操作。

接下来,使用控制器时,我们本应通过以下命令安装所需的软件包:

在构建机器人时,我不得不从源码编译该软件包,因此需要这样做。

请继续按照kyle的教程其余部分进行操作,因为我也是这样配置ROS机器人的控制器的。

假设kyle的教程已帮助你熟悉rosmaster,并了解如何订阅节点以及向节点发送消息,我们现在可以开始实现摄像头功能了。

注意:我有时在运行GPIO代码时遇到问题。

这将允许你继续运行带有GPIO的程序。

步骤6:设置摄像头以进行视觉识别

你现在需要在桌面和树莓派上启动roscore。

Ros会启动用于控制机器人移动的节点。

请按照第1到第20步,完成在ROS中设置USB摄像头的操作。

请确保将您桌面的IP地址作为主URI导出,以便我们能够从机器人的摄像头查看图像。

要查看此内容,我下载了xming,但您也可以使用Putty来实现视频UI的转发。

请务必在桌面上执行这些命令。

显示导出的选项可在命令中心中将鼠标悬停在xming图标上时找到。

如果您已完成上述步骤并按照教程操作,现在运行该命令后应该就能看到笔记本电脑的画面了。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭