当前位置:网站首页>ROS2知识(1):开始实践机器人
ROS2知识(1):开始实践机器人
2022-06-23 11:53:00 【无水先生】
一、如何制造机器人?
如果你正在读这篇文章,那么你可能至少听说过ROS,并且你对如何使用它来建造自己的机器人感兴趣。
对于那些不知道的人来说,ROS是一系列简化机器人开发的软件库和工具。通过共享这些通用代码,开发人员无需从头重写所有内容,而是可以专注于开发自己的新算法和技术。然后,这些新设计与所有其他ROS系统兼容,帮助整个行业快速发展并共同解决问题。
有许多不同种类的机器人,因此本系列将介绍一些无论您想要构建何种机器人都非常常见的概念和过程。在这篇文章中,我们将从开始安装ROS之前需要的五件事开始:
- 正确的技能
- 正确的计算硬件
- 正确的操作系统
- 其他有用的软件
- 其他有用的工具
二、正确的技能准备
这些教程(以及以后的教程)假设您具备以下技能。如果你没有这些,不要让它吓跑你!试一试,如果你陷入困境,网上有很多资源可以帮助你。
- 计算机管理(安装操作系统、联网)
- 熟悉Linux和终端/命令行(创建和导航文件和文件夹,安装软件)
- 熟悉Git(或其他版本控制系统)
- 对编程和编译的基本理解(我们不需要做太多实际的编程,但在某些时候我们需要编译其他人的代码)
- 基本电子经验(使用Arduino、面包板、焊接等)
三、正确的硬件准备
获得正确的计算硬件有时可能是机器人技术的一个困难方面。通常情况下,获得以下处理器是不可行的:
- 强大(运行我们的算法)
- 小型/低能耗(不会使我们的小型移动机器人的结构和电池过载)
- 便宜(谁不喜欢东西便宜)。

除此之外,开发过程通常需要更多的电力。我们可能需要更多计算能力进行开发的几个原因是:
运行未优化的原型算法
与我们的算法同时运行开发工具(例如 IDE、调试器、可视化)
与我们的算法同时运行模拟环境
为了以相当实惠的方式实现这一点,我们将在这些教程中使用的设置是拥有两台计算机。机器人本身将有一个小型单板计算机(Raspberry Pi 4)板载,这将与一个更大、更标准的计算机(例如中端笔记本电脑或台式机)配对,作为“基站”并作为开发机器。

Pi 会将原始传感器数据处理成 ROS 兼容消息,并通过网络将它们传输到基站(也运行 ROS)。基站将使用这些数据来计算适当的运动,并通过网络将它们发送回 Pi。然后,Pi 会将这些信号转换为信号发送给电机驱动器以移动机器人。
这台“基站”PC 也将用作开发机器,运行模拟、可视化数据、接收操纵杆输入,最后编写代码。
如果您知道自己在做什么,欢迎您调整此设置(例如,使用 NVIDIA Jetson 板,或将基站和开发拆分为单独的 PC),但是此设置被选择为简单、有效、并且负担得起,因此我们将在这些教程中假设它。
注意 1,虽然基站/开发机器不需要是高端游戏装备,但拥有相当强大的机器将是有益的。例如,最近几年配备 i5 处理器的笔记本电脑将是一个不错的选择。低端机器可能难以有效地运行 3D 模拟,并且某些算法可能需要修改参数。
注意 2,对于我的常规开发,我在台式机上的 Docker 中使用 ROS。 Docker 容器和虚拟机对于使用 ROS 进行开发来说是非常有用的工具,但它们也会增加额外的复杂性。如果您对这些设置感到满意,请随时继续尝试,但要准备好处理过程中的任何问题。编辑:写这篇文章后,我还添加了本指南,其中包含有关在虚拟机中设置 ROS 的更多详细信息。
注 3,本系列的一部分将介绍机器人仿真软件 Gazebo。使用 Gazebo,我们可以在模拟环境中开发和测试机器人应用程序。如果您无法访问 Pi 或其他机器人硬件,请不要离开!只需设置基站/开发机器,您仍然可以学习 ROS 和设计机器人,然后在拥有组件后物理构建它们。
三、正确的操作系统
每个版本的 ROS 都专门设计为与某个版本的 Ubuntu 兼容。对于这些教程,我们将使用 ROS Foxy Fitzroy(最新的 LTS 版本),它仅与运行 Ubuntu 20.04 Focal Fossa(或衍生版本)的计算机正确兼容。为了简单起见,我的示例设置将是:
- 上位机Base Station/Dev Machine: Desktop running Ubuntu MATE Desktop 20.04 amd64
- 下位机On-board: Raspberry Pi running Ubuntu MATE Desktop 20.04 arm64
如果您不熟悉安装 Linux 或映像 SD 卡的过程,以下链接可能会有所帮助:
- It’s FOSS - How to Install Ubuntu Alongside Windows 10 (纯粹的Ubuntu系统更好)
- TechRadar - How to install Ubuntu on the Raspberry Pi
四、其它辅助软件
现在我们有了一个操作系统,我们可以安装一些对开发有用的额外软件。
4.1 Git
我们将使用流行的 Git 版本控制软件在机器之间同步我们的代码,并兼作备份。我们想在两台机器上都安装它。
| 1 | sudo apt install git |
4.2 VSCode
在这些教程中,我们将假设您有一个 GitHub 帐户,如果没有,请前往 GitHub,您可以免费创建一个。如果您已经使用了另一个 Git 提供程序(例如 GitLab、Bitbucket),那就去吧。如果由于某种原因你不想使用 git,你可以手动传输文件——只是当你忘记事情时不要开始抱怨!
我们将希望在开发 PC 上安装一个编辑器或 IDE,以简化开发过程。以我的经验,VS Code 是目前最好的工具。除了免费且易于使用之外,它还提供大量扩展以适应不同的开发风格。我们想把它安装在开发机器上,不过如果你愿意,你也可以把它安装在 Pi 上。
| |
请注意,VS Code 还具有出色的远程开发功能,可让您在开发机器上使用 VS Code 编辑 Pi 上的文件。这些教程不会涵盖此功能,但是我强烈建议您设置它(官方说明使用 SSH 和 Visual Studio Code 在远程机器上开发),因为它会为您节省一些麻烦。(official instructions Developing on Remote Machines using SSH and Visual Studio Code)
4.3 Arduino IDE
一些未来的教程将涉及 Pi 和 Arduino 设备之间的通信。要对 Arduino 进行编程,我们需要下载并安装官方 IDE。根据您的偏好,您可能希望将其安装在 Pi、开发机器或两者上。使用开发机器将是最简单的界面,但是当您想要重新编程时,它需要摆弄电缆。
前往 Arduino Linux 指南并按照说明进行操作,确保您分别为开发机器和 Pi 使用“64”和“ARM 64”构建。【 the Arduino Linux Guide 】
五、其它有用工具Tools
当我们开始构建我们自己的机器人的旅程时,其他一些有用的工具是:
- 12V台式电源
- 充电器
- 万用表
- 烙铁和焊料
- 各种压接工具及其连接器(鞋带、铲子、JST 等)
- 各种螺丝刀
- 旋转工具/Dremel(也可以使用手动工具或其他电动工具)
- 3D 打印机(这一款绝对是可选的,您可以轻松构建大多数没有 3D 打印部件的项目)
- 便携式键盘/鼠标/屏幕(非常可选)
- 紧固件和粘合剂(电缆扎带、螺钉、螺栓、胶带等)
六、接下来是什么?
现在我们已经设置好计算机,我们准备安装 ROS,但首先值得花一些时间来调整我们的网络配置。
此外,有关在同一台计算机上运行 Linux 和 Windows 的更多信息,请查看这篇文章。
参考资料
Raspberry Pi 4 Image by SparkFun, licensed under CC BY 2.0
Laptop Image by Tymon Oziemblewski from Pixabay
边栏推荐
- Halcon知识:binocular_disparity 知识
- 哪个券商公司开户是最靠谱安全的
- 自动化或电气专业必备软件
- Signature analysis of app x-zse-96 in a Q & a community
- [cloud based co creation] overview of the IOT of Huawei cloud HCIA IOT v2.5 training series
- Leetcode 1209. Delete all adjacent duplicates II in the string (not in the initial version)
- 浅谈标注平台架构
- 凭借32量子比特!Rigetti Computing打入英国量子计算市场
- 惊!AMD 350亿美元收购赛灵思!
- Where to find capacitance parameters!?
猜你喜欢

爱可可AI前沿推介(6.23)

@Dark horse fans, haven't you received this "high temperature subsidy"?

Getting started with redis - Chapter 2 - data structures and objects - linked lists

KDD 2022 | 基于分层图扩散学习的癫痫波预测

Halcon知识:binocular_disparity 知识

运行时应用自我保护(RASP):应用安全的自我修养

Redis 入门-第一篇-数据结构与对象-简单动态字符串(SDS)

链表5 - 234. 回文链表

Meta称英安全法可能“扫描所有私人信息” 或侵犯隐私

杜邦分析法解读:安阳钢铁股份有限公司企业投资价值何在?
随机推荐
Learning notes sweep crawler framework
Monitor the cache update of Eureka client
RF Analyzer Demo搭建
汉源高科1路千兆光口转4路千兆以太网电口千兆1光4电光纤收发器
Gradienttape of tensorflow2
Where is the safest and most formal way to open an account at present?
64路电话+2路千兆以太网64路PCM电话光端机语音电话转光纤
Mobile securities account opening transaction? Is it safe to open an account online now?
How Huawei cloud implements a global low latency network architecture for real-time audio and video
互联网奇迹-小米究竟是怎么盈利
4路电话+1路千兆以太网4路PCM电话光端机
Redis 入门-第三篇-数据结构与对象-字典
全国进入主汛期,交通运输部:不具备安全运行条件的线路坚决停运!
十大劵商如何开户?在线开户安全么?
How to use note taking software flowus and note for interval repetition? Based on formula template
一张图解码 OpenCloudOS 社区开放日
Halcon知识:binocular_disparity 知识
基本数据类型和对应的包装类
[cloud resident co creation] in the code free era, how does software development go to everyone?
KDD 2022 | 基于分层图扩散学习的癫痫波预测