ROS2机器人课程、教程、培训汇总(2021版)

在之前发表过类似博客,浏览量较多的是:


个人以ROS2机器人为主进行教学科研和更新博客已经有3年多时间。

发现ROS2的优点和改进非常给力,这里再次大力推荐此版本(Foxy+之后版本最佳)。

但是我个人水平和能力是极差的,还需更加努力才行,失败经历分享如下:

同时也被多次投诉反馈以及被严厉批评教育,再次向学生致以诚挚的歉意,对不起,我一定倍加努力。

但为了防止个人低水平的教学博客带来负面影响,于今年全面停止更新:


2021年,主要以ROS2课程为主了,下面做一些列举说明:

1. ROS Wiki课程专栏

列表中,基本都是ROS2基础和导航之类的课程。

在之前博客中也推荐过,这里再次推荐一下如下网站,有ROS2专题,当然也包含Arduino和树莓派专题,质量非常高,比我博客质量高太多了。

2. Robotics Back-End

3.  opencourser

4. Github开源课程

 这类教程现在已经非常丰富啦!

5. Udemy

6. 博客类

推荐这个博客主要是一站式从仿真到真实机器人!

仿真:

真实机器人:

7. ROS-I 

8. 夏令营项目案例 

但好像这个以ROS1(noetic)为主。

9. 最棒的一个课程! 强烈推荐!

特色:

· Practice with Simulators & Real Robots

· 40 Hours of Instructor-Led Hands-On Training

· Life-time Access to the Course Materials

· Visit Barcelona-based Robotics Companies

· Lunch and Snacks Provided

· Certificate 

仿真实操都有,40小时课程类似高校3学分课程,还有证书!

重要性!

ROS2 is expected to fully replace ROS1 by 2023. The Galactic distribution released in May 2021 shows ROS2 is very mature and ready for real-world applications. 

预计到 2023 年,ROS2 将完全取代 ROS1。 2021 年 5 月发布的Galactic发行版表明 ROS2 已经非常成熟并准备好实际应用。

部分赞同上述观点!但ROS2是趋势和未来不会改变!

校内课程也会覆盖大部分知识点(无真实机器人无机械臂MoveIt2部分),主要原因是网课和时间所限制。

需要这类课程可以参考 Get-ROS2-Industrial-brochure_compressed-2.pdf

最后,给自己要开设的课程做个广告!

2021年暑期学校的分享图文版本:

再次感谢各位朋友的陪伴、鼓励和支持^_^


 

 

 

 

ROS2编程基础课程文档 ROS 2(机器人操作系统2)是用于机器人应用的开源开发套件。ROS 2之目的是为各行各业的开发人员提供标准的软件平台,从研究和原型设计再到部署和生产。 ROS 2建立在ROS 1的成功基础之上,ROS 1目前已在世界各地的无数机器人应用中得到应用。 特色 缩短上市时间 ROS 2提供了开发应用程序所需的机器人工具,库和功能,可以将时间花在对业务非常重要的工作上。因为它 是开源的,所以可以灵活地决定在何处以及如何使用ROS 2,以及根据实际的需求自由定制,使用ROS 2 可以大幅度提升产品和算法研发速度! 专为生产而设计 凭借在建立ROS 1作为机器人研发的事实上的全球标准方面的十年经验,ROS 2从一开始就被建立在工业级 基础上并可用于生产,包括高可靠性和安全关键系统。 ROS 2的设计选择、开发实践和项目管理基于行业利 益相关者的要求。 多平台支持 ROS 2在Linux,Windows和macOS上得到支持和测试,允许无缝开发和部署机器人自动化,后端管理和 用户界面。分层支持模型允许端口到新平台,例如实时和嵌入式操作系统,以便在获得兴趣和投资时引入和推 广。 丰富的应用领域 与之前的ROS 1一样,ROS 2可用于各种机器人应用,从室内到室外、从家庭到汽车、水下到太空、从消费 到工业。 没有供应商锁定 ROS 2建立在一个抽象层上,使机器人库和应用程序与通信技术隔离开来。抽象底层是通信代码的多种实现, 包括开源和专有解决方案。在抽象顶层,核心库和用户应用程序是可移植的。 建立在开放标准之上 ROS 2中的默认通信方法使用IDL、DDS和DDS-I RTPS等行业标准,这些标准已广泛应用于从工厂到航空 航天的各种工业应用中。 开源许可证 ROS 2代码在Apache 2.0许可下获得许可,在3条款(或“新”)BSD许可下使用移植的ROS 1代码。这两个 许可证允许允许使用软件,而不会影响用户的知识产权。 全球社区 超过10年的ROS项目通过发展一个由数十万开发人员和用户组成的全球社区,为机器人技术创建了一个庞大 的生态系统,他们为这些软件做出贡献并进行了改进。 ROS 2由该社区开发并为该社区开发,他们将成为未 来的管理者。 行业支持 正如ROS 2技术指导委员会成员所证明的那样,对ROS 2的行业支持很强。除了开发顶级产品外,来自世界 各地的大大小小公司都在投入资源为ROS 2做出开源贡献。 与ROS1的互操作性 ROS 2包括到ROS 1的桥接器,处理两个系统之间的双向通信。如果有一个现有的ROS 1应用程序, 可 以通过桥接器开始尝试使用ROS 2,并根据要求和可用资源逐步移植应用程序。
ROS2是一款开源机器人操作系统,用于构建机器人应用程序。下面是一些ROS2机器人的个人教程: 1. 安装ROS2:首先,你需要安装ROS2。ROS2有多种安装方式,最常见的是使用二进制文件进行安装。在Ubuntu上,你可以从ROS2官网下载适合你的本,然后按照官方文档中的指示进行安装。 2. 创建ROS2工作空间:在你开始构建ROS2应用程序之前,需要创建一个ROS2工作空间。可以通过运行以下命令来创建: ``` mkdir -p ~/ros2_ws/src cd ~/ros2_ws/ colcon build ``` 这将创建一个名为`ros2_ws`的文件夹,并在其中创建一个名为`src`的文件夹。`colcon build`命令将使用ROS2构建系统来创建构建目录和构建你的代码。 3. 创建ROS2包:ROS2包是ROS2应用程序的基本组成部分。要创建一个ROS2包,可以使用以下命令: ``` cd ~/ros2_ws/src ros2 pkg create <package_name> ``` 这将在`src`文件夹中创建一个名为`<package_name>`的文件夹,其中包含用于构建ROS2包的基本文件。 4. 编写ROS2节点:ROS2节点是ROS2应用程序的核心组件,它们是一个执行特定任务的代码块。要编写ROS2节点,可以使用ROS2提供的各种编程语言,例如C++、Python等。以下是一个简单的ROS2 Python节点示例: ``` #!/usr/bin/env python3 import rclpy from rclpy.node import Node class MyNode(Node): def __init__(self): super().__init__("my_node") self.get_logger().info("Hello, ROS2!") def main(args=None): rclpy.init(args=args) node = MyNode() rclpy.spin(node) rclpy.shutdown() if __name__ == '__main__': main() ``` 这个节点仅仅打印出一条消息,但是可以根据你的需求编写更加复杂的节点。 5. 运行ROS2节点:要运行ROS2节点,可以使用以下命令: ``` ros2 run <package_name> <node_name> ``` 其中`<package_name>`是你的ROS2包的名称,`<node_name>`是你的ROS2节点的名称。 6. ROS2话题通信:ROS2节点之间通过话题进行通信。话题是一个节点可以发布和接收消息的主题。要发布数据,节点将数据发布到话题上;要接收数据,节点将数据订阅到话题上。以下是一个ROS2 Python话题发布器示例: ``` #!/usr/bin/env python3 import rclpy from rclpy.node import Node from std_msgs.msg import String class MyNode(Node): def __init__(self): super().__init__("my_node") self.publisher_ = self.create_publisher(String, "my_topic", 10) timer_period = 0.5 self.timer_ = self.create_timer(timer_period, self.timer_callback) def timer_callback(self): msg = String() msg.data = "Hello, ROS2!" self.publisher_.publish(msg) def main(args=None): rclpy.init(args=args) node = MyNode() rclpy.spin(node) rclpy.shutdown() if __name__ == '__main__': main() ``` 这个节点将一个名为`my_topic`的话题发布到ROS2网络上,并且每隔0.5秒钟发布一条消息。 7. ROS2服务通信:除了话题通信外,ROS2还支持服务通信,服务是一个节点可以向另一个节点请求数据的机制。以下是一个ROS2 Python服务节点示例: ``` #!/usr/bin/env python3 import rclpy from rclpy.node import Node from example_interfaces.srv import AddTwoInts class MyNode(Node): def __init__(self): super().__init__("my_node") self.server_ = self.create_service(AddTwoInts, "add_two_ints", self.add_two_ints_callback) def add_two_ints_callback(self, request, response): response.sum = request.a + request.b return response def main(args=None): rclpy.init(args=args) node = MyNode() rclpy.spin(node) rclpy.shutdown() if __name__ == '__main__': main() ``` 这个服务节点将一个名为`add_two_ints`的服务发布到ROS2网络上,并且当有节点请求数据时,它将计算请求中的两个整数并将结果返回。 这些是ROS2机器人的基本操作,你可以根据你的需求进行更加复杂的开发。
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangrelay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值