当前位置:网站首页>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
边栏推荐
- 如何在 FlowUs、Notion 等笔记软件中使用间隔重复记忆系统?
- Invalid Navicat scheduled task
- Leetcode 1209. 删除字符串中的所有相邻重复项 II(初版本没过)
- Voice data annotation tools and platforms
- Redis 入门-第二篇-数据结构与对象-链表
- 1路百兆光纤收发器1百兆光1百兆电桌面式以太网光纤收发器内置电源
- 股票网上开户及开户流程怎样?手机开户安全么?
- How does easygbs solve the abnormal use of intercom function?
- 汉源高科新一代绿色节能以太网接入工业交换机高效节能型千兆工业以太网交换机
- 【零基础微信小程序】基于百度大脑人像分割的证件照换底色小程序实战开发
猜你喜欢

Proof and application of Chebyshev inequality

Blue Bridge Cup single chip microcomputer (I) -- turn off peripherals and turn off led

2光2电级联型光纤收发器千兆2光2电光纤收发器迷你嵌入式工业矿用本安型光纤收发器

Analysis of six dimensional chart: analysis of enterprise growth of CSCEC

【零基础微信小程序】基于百度大脑人像分割的证件照换底色小程序实战开发

HMS Core 视频编辑服务开放模板能力,助力用户一键Get同款酷炫视频

得物多活架构设计之路由服务设计

学习笔记 scrapy 爬虫框架

汉源高科1路千兆光口转4路千兆以太网电口千兆1光4电光纤收发器

mysql,如何在使用存储过程计算最大值
随机推荐
电脑坏了,换了台电脑,装node环境的时候出了问题,报错URL not defined
基本数据类型和对应的包装类
Video data annotation tools and platforms (data annotation company)
一般的理财产品期限是几天啊?
2022施工员-装饰方向-岗位技能(施工员)操作证考试题库模拟考试平台操作
如何使用笔记软件 FlowUs、Notion 进行间隔重复?基于公式模版
记录
Deep analysis and Simulation of list
得物多活架构设计之路由服务设计
HMS Core 视频编辑服务开放模板能力,助力用户一键Get同款酷炫视频
How many days is the general term of financial products?
Internet miracle - how does Xiaomi make profits
4E1 PDH光端机19英寸机架式单纤传输20km E1接口光纤网络光端机
[cloud native & microservice viii] source code analysis of weightedresponsetimerule of ribbon load balancing strategy (response time weighting)
How Huawei cloud implements a global low latency network architecture for real-time audio and video
10-- 根据中序遍历和后序遍历,构造二叉树
[comprehensive written test questions] 30 Concatenate substrings of all words
Leetcode 1209. Delete all adjacent duplicates II in the string
语音数据标注工具与平台
2022年全国最新消防设施操作员(初级消防设施操作员)模拟题及答案