编程思维模式比编程语言内容等更重要也更难传授-2024-机器人篇

news2024/9/22 9:53:08

历程

在2015年起步,然后不断迭代更新优化。

2019:机器人编程实践-ROS2基础与应用-

第四版纲要

里面的重点就是机器人编程的方法论!

2022:机器人编程实践-ROS2基础与应用-第⑦版

2022:ROS2机器人编程实践基础与应用-第七版-补充说明

机器人编程实践-ROS2基础与应用-第⑦版
摘要:              Learn Right Now, Prepare For Future

课程围绕机器人操作系统(ROS2)的应用展开,包括机器人学的基础理论和常用工具。借助立体多样的示例,课程可以为使用ROS2进行机器人开发设计的学员提供一个扎实的基础和相关应用全貌。课程将学习如何创建软件包、包括仿真、连接传感器和执行器以及集成控制算法,通过一套指导教程,掌握应用ROS2从零开始设置环境,连接各个传感器和执行器并实现机器人控制系统(导航)。

目标: 

ROS2(DDS)架构:节点、主题、消息、服务、参数和行动  – 核心概念
控制台命令:浏览和分析ROS2系统和工作区colcon  – 编译工具
创建ROS2包:结构、启动文件和实践  – 基础功能包
C ++客户端库(rclcpp):创建自己的ROS2 C++ 程序  –  ROS C++代码入门
Python客户端库(rclpy):创建自己的ROS2 Python程序  –  ROS Python代码入门
仿真器:Ignition Gazebo、机器人模型(URDF)和仿真环境(SDF) – 仿真工具
使用可视化(Rviz2)和用户界面工具(rqt)  – 人机交互(选修手势/语音/云端融合)
ROS2工具:TF2转换系统、时间、记录包  – 其他工具集
选修部分:Matlab、Webots和CoppeliaSim,增补Nav2和MoveIt2  – 应用
注:ROS 2.0 Humble;Windows11 IoT+ Ubuntu 22.04 LTS长期支持版本
合格可申请证书,考核包括:理论测试,基础实践项目,导航任务

大纲:

预备理论部分:
Linux基础、C++和Python要点、ROS2安装与配置注意事项
机器人运动学等相关理论与ROS2的关系
工程结构、通信架构、常用工具和客户端库说明
案例驱动型课程讲练模式简介,分解与集成思维模式,机器人编程方法论
编程实践部分:
课程模块1

1 ROS架构与基本概念

2 ROS节点和主题

3控制台命令

4 Colcon工作区和编译系统

5启动文件

6 Gazebo仿真器

课程模块2

1 ROS功能包结构

2 ROS C++客户端库

3 ROS Python客户端

4 ROS订阅器和发布器

5 ROS参数服务器

6 Rviz可视化工具

课程模块3

1 TF2坐标转换系统

2 rqt用户接口

3 机器人模型(URDF)

4 仿真描述(SDF)

5 仿真和实例

-turtlebot

课程模块4

1 ROS服务

2 ROS行动

3 ROS时间

4 ROS记录包

5 Bag使用案例

课程模块5

1 案例学习(esp32等)

a功能包移植和使用

b机器人应用(口袋版)

(cozmo+tello+……)

c依据情况调整考核项目

2 答疑交流

之后,没有做更新。


困境

从2015年开始,历经:

  1. 2016
  2. 2017
  3. 2018
  4. 2019
  5. 2020
  6. 2021
  7. 2022

这七个版本之后,为何停止更新了?

和教育心理学一个最棘手的问题相关。

通俗一点,秉性难移。

解释:智能,大模型结构和优质数据库都非常重要,对于人而言,思维模式和知识信息库都非常重要。

但是改变思维模式非常非常难,尤其是对于改变成年人(生理年龄大于18岁)而言。

所有教学创新的尝试全部都以完全失败(彻底失败)收尾。

果然,客观规律不以人的意志为转移。小概率偶发事件除外。

 这也解释了为何高考是几乎各国全民(适龄学生)最广泛参与最后的统一考试。(相对广泛相对统一)


引用:

黄仁勋:在AI时代,再学习C++是荒谬的。那么你还学吗?

推荐一看。

顶级专家的共识:

即便如此,当下还有很多人在背力扣……

力扣思路很重要,但是背代码和背古诗一样,永远无法掌握其奥义所在。

自己愚钝的思考:

编程简单吗?为什么技术型内容几乎停更了?

 

时效性知识点是否值得花时间学习和研究-CSDN博客  


寓言故事:智慧之林的变迁

在遥远的智慧之林里,生长着一棵古老的智慧树,名为“ROS之树”。这棵树自古以来便是机器人编程者心中的圣地,它的枝叶间挂满了历代编程大师的智慧结晶——从ROS1的萌芽到ROS2的繁茂,每一片叶子都记录着一段编程技术的演进历程。

起始之春

故事始于2015年的春天,一群年轻的探索者踏入了智慧之林,他们被ROS之树深深吸引。在这片充满生机的土地上,他们开始尝试用ROS2的种子培育自己的小树苗,希望能在编程的田野上种出属于自己的果实。年复一年,他们不断学习、实践、优化,ROS之树也因此愈发枝繁叶茂,版本从最初的尝试逐渐迭代至第四版、第七版,每一次更新都凝聚了无数编程者的心血与智慧。

困境之冬

然而,随着时间的推移,智慧之林迎来了前所未有的寒冬。尽管ROS之树依旧挺拔,但周围的氛围却变得沉闷而压抑。原来,随着技术的飞速发展,新的编程语言和框架如雨后春笋般涌现,而老一辈的编程者却固执地坚守着旧有的思维模式,不愿接受新事物的洗礼。他们认为,改变是痛苦的,是对过往努力的否定。

与此同时,年轻的编程者们也感到了前所未有的迷茫。他们发现,尽管自己掌握了最新的技术,但面对那些根深蒂固的传统观念,他们的创新尝试总是以失败告终。智慧之林似乎陷入了一种死循环,新技术无法落地生根,旧思维又难以撼动。

变革之风

就在这时,一阵来自远方的变革之风吹进了智慧之林。这阵风带来了黄仁勋的言论:“在AI时代,再学习C++是荒谬的。”这句话如同一枚石子投入平静的湖面,激起了层层涟漪。它让所有人开始反思:在这个日新月异的时代,我们是否应该勇敢地拥抱变化,而不是固步自封?

年轻的编程者们率先行动起来,他们开始组织讨论会、分享会,用自己的亲身经历和成功案例去说服那些固执的前辈。他们强调,编程不仅仅是技术的堆砌,更是思维的碰撞与融合。只有不断学习、不断创新,才能在编程的道路上走得更远。

重生之春

经过一番艰苦的努力,智慧之林终于迎来了新的春天。老一辈的编程者逐渐被年轻人的热情所感染,他们开始尝试接受新事物,与年轻人一起探索编程的无限可能。ROS之树也再次焕发生机,新的版本不断涌现,每一次更新都融入了更多的创新元素和前沿技术。

智慧之林再次成为了编程者心中的圣地,但这次它不仅仅属于过去,更属于未来。在这里,每个人都能找到属于自己的位置,用智慧和汗水书写属于自己的编程传奇。

结语

这个故事告诉我们,无论时代如何变迁,唯有不断学习、勇于创新,才能在编程这条道路上走得更远。正如智慧之林所经历的变迁一样,只有敢于打破旧有的思维模式,才能迎来新的春天。


 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2057687.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

macOS系统(intel)编译MAVSDK安卓平台so库

1.克隆mavsdk源码: git clone https://github.com/mavlink/MAVSDK.git --recursive 生成makefile前先手动修改protobuf版本为最新的(如:27.3) 下载的与你安装的版本要一致: 手动编译并安装libLZMA与openssl 如proto文件有修改,需要手动运行 ./tools/generate_from_protoc.sh重…

9 正则表达式:Java爬虫和正则表达式、String中的正则表达式方法(基本语法7)

文章目录 前言一、正则表达式1 [ ] 语法(1)[ABC] 和 [^ABC](2)[A-Z]和[a-zA-Z]小总结2 特殊字符语法(\w 这些)3 数量符4 \ 、()、 |5 锚点 ^ 和 $,\b,\B6 (?i) : 忽略其后面的大小写 ---- 这个Java是可以的,其他语言我不知道(正则表达式虽然大多通用,但也有部分是…

2018年高教社杯全国大学生数学建模竞赛(ABCD题)题目及附件

数学建模练习,老师发了一个2018年的C题论文,让我们复现,结果找题目附件找好长时间,都是泪……好在最后找到了,给大家分享一下。 2018年的数学建模C题不知道官网的链接打不开了已经,找附件找了好长时间………

第1章-03-VS Code开发工具安装

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年CSDN全站百大博主。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于专栏:Web爬虫入门与实战精讲。 🎉欢迎 👍点赞✍评论⭐收…

智能微气候:精准调控背后的算法革命

( 于景鑫 国家农业信息化工程技术研究中心)当人工智能遇见现代农业,会擦出怎样的火花?随着数字农业、智慧农业的蓬勃发展,人工智能技术正以前所未有的速度渗透到农业生产的方方面面。其中,以深度学习为代表的前沿算法,尤其是大语言模型(LLM),正在成为驱…

【实战教程】一键升级CentOS 7.9.2009至OpenSSL 1.0.2u:加固你的Linux服务器安全防线!

文章目录 【实战教程】一键升级CentOS 7.9.2009至OpenSSL 1.0.2u:加固你的Linux服务器安全防线!一、 背景二、 升级步骤2.1 检查 OpenSSL 版本2.2 安装 OpenSSL 依赖包2.3 下载 OpenSSL 的新版本2.4 解压缩下载的文件2.5 编译并安装 OpenSSL2.5.1 切换到…

Android Forensics with Belkasoft

本课程专为需要在工作中处理 Android 设备并希望增强知识并获得 Android 获取和分析实践经验的数字取证调查员而设计。 您将学到什么? 如何使用Android采集的基本和高级方法,例如基于ADB和APK降级采集 可以使用哪些特定于芯片组的采集方法 如何分析 Andr…

Android实战:实现注册界面

目录 前言 布局图 实现过程 1.导入图片 2.创建分割线样式 3.创建文本样式 4.创建输入框样式 5.XML布局文件 测试 6.实现注册功能 前言 在前面,我们已经学习了一些常见的界面布局和界面控件,那么本篇我们就来结合前面所学的知识,来…

导入导出常见的空指针异常NULLPointException

使用row.getCell()方法去判断是否为空 若不为空再获取 不确定excel文件里的单元格类型 可以使用row.getCell().getCellTypeEnum() 去判断是什么类型 若要把从数据库查询出来的数据导出到excel表格中 要先判断内容是否为空

Spring Boot + MyBatis-Plus 实现 MySQL 主从复制动态数据源切换

Spring Boot MyBatis-Plus 实现 MySQL 主从复制动态数据源切换 一、前言1. 添加依赖2. 配置主从数据源3. 创建数据源配置类4. 创建数据源上下文5. 定义数据源类型6. 配置数据源切换7. 创建DynamicDataSourceConfig8. 创建DynamicRoutingDataSource9. 创建注解10. 使用注解 一、…

1.Java:集合

集合作用: 1.动态保存任意多个对象。 2.提供操作对象方法比如add,remove,set,get等方法。 3.使用集合添加,删除代码简洁。 集合分类 集合分为单列集合以及双列集合。 单列集合: 双列集合: Collection接口特点 1.Collection…

【Nginx】 Nginx Rewrite 相关功能

Nginx服务器利用 ngx_http_rewrite_module 模块解析和处理rewrite请求 此功能依靠 PCRE(perl compatible regular expression),因此编译之前要安装PCRE库 rewrite是nginx服务器的重要功能之一,用于实现URL的重写,URL的重写是非常有用的功能 比…

智慧环卫与智慧城市:以人文本的创新发展之路

智慧环卫与智慧城市:以人文本的创新发展之路 前言智慧环卫与智慧城市 前言 智慧环卫和智慧城市的建设是当今社会发展的重要趋势,它们对于提升城市管理水平、改善居民生活质量具有至关重要的意义。随着国家政策对新型城市建设的大力推动,智慧…

学习 node.js 六 Markdown 转为 html,zlib

目录 Markdown 转为 html 安装 ejs语法 标签含义 1. 纯文本标签 2. 输出经过 HTML 转义的内容 3. 输出非转义的内容(原始内容) marked browserSync zlib gzip deflate gzip 和 deflate 区别 http请求压缩 Markdown 转为 html 什么是markdown? Markdo…

数据库系列之GaussDB数据库高可用部署方案

GaussDB数据库主备架构的基本组件,以及基于华为云底座和轻量化部署TPOPS两种方式的典型高可用部署场景介绍。 1、GaussDB数据库组件 1.1 GaussDB数据库集中式主备集群基本组件 CM由CM Agent、CM Server和OM monitor构成: CM Agent:管理服务组件,由OMM拉起(周期1秒),主要…

ARM32开发——PWM高级定时器

🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 需求高级定时器通道互补输出开发流程通道配置 打开互补保护电路完整代码 需求 点亮2个灯,采用互补pwm的方式 高级定时…

【Unity脚本】使用脚本修改游戏对象静态属性

【知识链】Unity -> -> 脚本系统 -> 访问游戏对象 -> 静态属性【摘要】本文介绍了Unity中游戏对象的静态和动态类型,并说明了如何修改静态属性。 文章目录 第一章 Unity中的静与动第二章 静态和动态对象1. 静态对象(Static Objects&#xf…

Web服务器——————nginx篇

一.What is Web服务器 Web服务器介绍 Web服务器(Web Server)是指驻留于因特网上某种类型计算机的程序,该程序可以向Web浏览器(如Chrome、Firefox、Safari等)等客户端提供文档,也可以放置网站文件&#…

4-1-3 arduino驱动直流电机(电机专项教程)

4-1-3 arduino驱动直流电机(电机专项教程) 4-1-3 arduino驱动直流电机XY-2.5AD电机控制模块家用直流电源改装成项目制作电源示例程序效果演示 4-1-3 arduino驱动直流电机 Arduino控制直流有刷电机的话,通过H桥电路实现转向控制,以…

C语言——预处理

C语言编译步骤 预处理 编译 汇编 链接 预处理 概念: 预处理就是在源文件(如.c文件)编译之前,所进行的一部分预备操作,这部分操作是由预处理程序自动来完成;当源文件在编译时,编译器会自动调用预处理程序来…