上一节,概述中(机器人编程趣味实践01-简要介绍)简要说明课程包含内容。

  • 互联网
  • 物联网
  • 智联网(机器人)

开篇

这些设备平台的Hello World,具体有哪些差异呢???

对于如上设备,它的Hello World,就是测心跳,然后发送可在网页显示,如何做到的?

起步

先从一段简单的程序讲起吧^_^

#include <iostream>   //头文件using namespace std;  //名字空间int main()            //主函数
{cout<<"终端最简单的文本显示"<<endl;return 0;
}

这个程序适用于手机和电脑,编译后执行效果如下:

这个程序包含头文件、名字空间和主函数。

注意,在主函数中只有输出cout。这是所有代码学习最本原的基础,这个程序属于单机终端显示,最最简陋的人机交互,发布的是一个事先预定的消息。

它不属于

  1. 互联网程序
  2. 物联网程序
  3. 机器人程序

思考:

  1. 如何实现多台电脑之间信息交互?(互联网)
  2. 如何实现多台传感器设备之间数据共享?(物联网)
  3. 如何实现多台机器人之间行动协调?(机器人)

提示:

  1. 数据或信息(不一定是真实世界反映)
  2. 实际环境测量信息
  3. 基于环境信息完成任务或改变

人工智能等内容后续以案例形式补充

跃升

单向消息发布:

windows电脑发送Hello World给linux电脑,如下图所示:

左侧为windows,右侧为linux,此为单向消息传送。

然后在linux端开启消息发布,windows端不仅能查看自己发布的消息,也能看到linux发布的消息。

通过这类工具外加一些图形化皮肤,可以制作局域网聊天工具,当然图片之类也可传送。

问题引出!

  • 异步通信
  • 同步通信

两台或多台电脑之间的时间如何同步呢???

如何实现实时的视频传送呢???

Linux端参考程序如下:

#include <chrono>
#include <functional>
#include <memory>
#include <string>#include "rclcpp/rclcpp.hpp"
#include "std_msgs/msg/string.hpp"using namespace std::chrono_literals;class MinimalPublisher : public rclcpp::Node
{
public:MinimalPublisher(): Node("minimal_publisher"), count_(0){publisher_ = this->create_publisher<std_msgs::msg::String>("topic", 10);timer_ = this->create_wall_timer(2000ms, std::bind(&MinimalPublisher::timer_callback, this));}private:void timer_callback(){auto message = std_msgs::msg::String();message.data = "来自Linux的消息" + std::to_string(count_++);RCLCPP_INFO(this->get_logger(), "Publishing: '%s'", message.data.c_str());publisher_->publish(message);}rclcpp::TimerBase::SharedPtr timer_;rclcpp::Publisher<std_msgs::msg::String>::SharedPtr publisher_;size_t count_;
};int main(int argc, char * argv[])
{rclcpp::init(argc, argv);rclcpp::spin(std::make_shared<MinimalPublisher>());rclcpp::shutdown();return 0;
}

对比一下,第一段程序,有很多类似的地方,但是复杂一些。这个案例发布的消息是键盘输入的字符。

回顾本文开始的那个案例,那是一个物联网消息案例,数据为心跳频率。

那么机器人程序Hello World如何编写???

限于篇幅,预知详情,参考如下链接:

  • https://blog.csdn.net/ZhangRelay/article/details/83789116

总结

程序(Hello World)由单机发展到网络,表达形式也变得丰富多彩,对处理器和网络带宽的要求也显著提高。

  1. 从互联网的消息交流
  2. 到物联网的现实物体数字化
  3. 再到机器人与现实世界交互协作
  4. 虚拟和现实融合越来越紧密

这一切都源自与来自数字芯片所发出的:

Hello World

Hello World

Hello World

Hello World


-End-


机器人编程趣味实践02-程序(Hello World)相关推荐

  1. 机器人编程趣味实践20-版本课程(教学)

    如何选择一款合适的工具入门机器人编程,相信经过前面19节,会有一个模糊的概念. 比如需要一定的编程基础如: C++ Python 机器人学的相关知识,哇哦,这好像不是一个零基础就能轻松上手的内容,事实 ...

  2. 机器人编程趣味实践14-机器人三维仿真(Gazebo+TurtleBot3)

    之前,介绍了节点.主题.服务和行动等基本概念,以及rqt和rosbag2等工具. 采用了官方改版的二维环境,那么现在玩耍一下更为逼真的三维仿真环境吧. 仿真软件Gazebo 机器人TurtleBot3 ...

  3. 机器人编程趣味实践19-武林秘籍(文档)

    机器人技术快速发展,教程等迭代速度非常快,周期在1-2年,新生期都是如此,进入成熟期会好很多,文档迭代周期会延长至3-5年.至于那些经典技术通常生命周期长达10年或更久. 在开启本文之前,推荐一篇: ...

  4. 机器人编程趣味实践06-程序(节点)

    分别输入如下命令: ros2 run examples_rclcpp_minimal_publisher publisher_lambda ros2 run turtlesim turtlesim_n ...

  5. 机器人编程趣味实践07-信息交互(主题)

    在网络上,沟通交流的方式主要有文字.图片和视频.对于专业人士,通常是公式和代码. 在表述一个数学或物理规律所用字节或占用空间由小到大: 公式 文字 图片 视频 理解难度由简单到困难,如下: 视频 图片 ...

  6. 机器人编程趣味实践18-他山之石(功能包)

    机器人操作系统功能包可以使用如下两种方式使用: sudo apt install xxx colcon build xxx 第一种是打包的安装文件,第二种是源代码编译. 如何自己编写功能包后续细说,本 ...

  7. 使用ROS2机器人操作系统进行多机器人编程技术实践(Multi-Robot Programming Via ROS2 )

    简介 ROS2机器人操作系统简介2021英文字幕版本 使用机器人操作系统ROS2和机器人中间件框架系统RMF进行多机器人系统集成,高层规划及其应用等. 上图所示机器人按规划路径进行物流运输或场地巡逻任 ...

  8. 解读机器人编程课的示教准则

    随着不少中小学校开设机器人编程课,少儿学编程日渐火爆.各类培训机构不失时机,将机器人编程教育奋力包装一番,推向社会:不学编程就是新一代文盲,机器人编程成为升学必修,编程必须从娃娃抓起.小则5.6岁,大 ...

  9. python录入学生信息网_干货满满 | Python趣味编程教学实践

    Python趣味编程教学实践 近几年间,Python 的火热有目共睹,在IEEE Spectrum 2020 编程语言 Top 10排行榜中,Python位居第一.这是因为Python 与人工智能.机 ...

最新文章

  1. kotlin设置CORS跨域资源共享,java设置允许跨域,服务端如何设置 springboot中设置跨域资源共享
  2. 赢在中国 - 史玉柱经典语录
  3. sealed关键字用法
  4. 【算法与数据结构】在n个数中取第k大的数(基础篇)
  5. 在几何画板中如何制作圆柱的侧面展开动画_基本尺规作图过程展示 | 几何画板...
  6. 《剑指offer》把字符串转为整数
  7. Java程序员的推荐阅读书籍
  8. 伪指令endp告诉汇编程序_全国2004年10月高等教育自学考试微型计算机原理及应用试题历年试卷...
  9. 分享几套古典复古式的UI设计
  10. loadrunner四大部分
  11. 如何判断一个算式是几位运算
  12. 181007扇贝有道每日一句
  13. MyBatis-Plus配置全局sql注入器后,BaseMapper中方法失效
  14. mybatisplus代码生成器构建项目以及lambd链式编程
  15. OpenFOAM动网格的通量修正
  16. 【转载】2005中文博客排名报告
  17. Java 随机点名器
  18. 基带信号与频带信号的基础认识
  19. 洛谷 Cantor 表
  20. VC++各种文件作用

热门文章

  1. 相对论漫谈(原著:幽灵蝶)
  2. 【Web技术】1517- 你知道前端水印功能是怎么实现的吗?
  3. 《如何高效学习》【加】斯科特·扬 著 读书笔记
  4. golang-奇淫巧技
  5. 苹果维修日期计算机,我的苹果笔记本在官网怎么查不到生产日期提示日期的地方显示2.4 2.2GHz啥意思,...
  6. matlab心形图大全,几个经典的函数图像,有趣的函数图像,matlab画图
  7. Tessy导入S32K代码工程报错
  8. 宝塔linux怎么操作,宝塔linux面板 怎么操作
  9. 解读opentsdb之aggregator
  10. CentOS Linux release 7.8.2003 系统上部署KVM系统