ROS2机器人少年创客营:Python第二课

ROS2机器人少年创客营:Python第二课

课程名称

聪明的机器人------流程控制与逻辑

课程目标
  • 掌握布尔逻辑:理解"真"与"假"是计算机判断的基础。
  • 学会条件判断 :使用ifelifelse让机器人根据环境做出不同反应。
  • 理解循环结构 :使用whilefor让机器人不知疲倦地重复工作。
  • 培养逻辑思维:能够画出简单的流程图,并将其转化为代码。
核心内容

机器人的智慧:布尔值

  • 概念:计算机的世界只有两个状态------开和关,真和假。
  • 数据类型bool(布尔型)。
    • True(真/是/1):比如"电量充足"。
    • False(假/否/0):比如"碰到墙壁"。
  • 比较运算符
    • ==(等于)、!=(不等于)、>(大于)、<(小于)。
    • 注意=是赋值(把东西放进盒子),==是判断(比较两个盒子里的东西是否一样)。

条件判断:如果...就...

  • 语法结构

    python 复制代码
    if 条件:
        做这件事
    else:
        做那件事
  • 缩进(Indentation)

    • 比喻:这是Python的"家族族谱"。缩进(通常是4个空格或1个Tab)表示"属于"。
    • 规则if下面的代码必须缩进,表示"只有在满足条件时,才执行这些代码"。
  • 多路分支(elif)

    • 就像红绿灯:如果是红灯->停;如果是绿灯->行;如果是黄灯->等待。

循环:不知疲倦的仆人

  • while循环(当...的时候)
    • 比喻:只要(While)电池没电,就一直(循环)工作。
    • 死循环 :如果条件永远为真(比如while True),程序就会一直跑下去。这在机器人主程序中很常见(主循环)。
  • for循环(数数循环)
    • 比喻:我要走5步。数1, 2, 3, 4, 5,每数一个数走一步。
    • 场景:遍历列表(比如:依次经过A点、B点、C点)。
实践环节

任务:编写"智能避障与巡逻"程序

  • 场景描述

    • 你的机器人在一条走廊里巡逻。
    • 它有一个传感器(变量distance)。
    • 如果前方无障碍(距离>10),它就继续前进。
    • 如果前方有障碍(距离<=10),它就停下来并发出警报。
    • 这个过程需要一直重复(循环)。
  • 代码实现

    python 复制代码
    # 模拟传感器数据
    distance = 50
    
    print("机器人巡逻系统启动...")
    
    # 模拟一直运行的主循环
    # 在实际操作中,我们通常用 while True 让机器人一直工作
    running = True
    
    while running:
        print(f"当前距离障碍物: {distance} cm")
    
        if distance > 10:
            print(">> 前方畅通,继续前进...")
            # 模拟距离变近
            distance = distance - 10
        elif distance <= 10 and distance > 0:
            print(">> 警告!距离过近,减速...")
            distance = distance - 2
        else:
            print(">> 危险!已接触障碍物,停止并报警!")
            running = False # 停止循环
    
    print("巡逻结束。")
  • 进阶挑战

    • 修改代码,让机器人在遇到障碍物时,不是停止,而是"后退5cm,然后左转90度"(用打印文字模拟动作)。
课后总结

今天我们赋予了机器人"思考"的能力。if让它学会了选择,while让它学会了坚持(重复)。没有逻辑的代码只是一堆字符,加上逻辑,它们就变成了智能。

课后思考

如果我写了一个while True:(死循环),但是忘记在循环里写让它停止的条件,或者忘记给它休息的时间,计算机会发生什么?(引导思考:死循环会导致程序卡死,CPU占用率飙升,就像机器人发疯了一样不停转圈)。

相关推荐
装不满的克莱因瓶1 天前
链式法则如何传递参数误差 —— 深入理解神经网络中的梯度传播
人工智能·python·深度学习·神经网络·数学·机器学习·ai
Anastasiozzzz1 天前
从有限状态机到智能体图:传统 FSM 与 Agent Graph的演进
java·人工智能·python·ai
fqbqrr1 天前
2606C++,C++构的多态
开发语言·c++
biter down1 天前
从 0 到 1 搭建 Python 接口自动化测试框架(博客系统实战)
开发语言·python
小欣加油1 天前
leetcode56 合并区间
c++·算法·leetcode·职场和发展
Yolo_TvT1 天前
C++:析构函数
c++
肖永威1 天前
Python多业务并行计算框架插件化演进:从硬编码到动态注册
python·插件化·并行计算·动态注册
yz_aiks1 天前
Linux Jar包配置Systemd自启动实战:从排查到配置全流程
linux·python·jar·自启动·systemd
沫儿笙1 天前
库卡弧焊机器人白车身焊接节气装置
人工智能·机器人
不知名的老吴1 天前
线程的生命周期之线程“插队“
java·开发语言·python