ROS2中的Python编程完全指南:从零基础到机器人开发实战

第一部分:Python基础语法核心精要

1.1 Python语法快速入门

基础数据类型与操作

python

# 变量与基本类型
robot_name = "TurtleBot3"          # 字符串
battery_level = 98.5               # 浮点数
sensor_count = 8                   # 整数
is_connected = True                # 布尔值

# 集合类型
sensor_ids = [101, 102, 103]       # 列表(可变)
motor_types = ('DC', 'Servo')      # 元组(不可变)
config_params = {'max_speed': 2.0, 'timeout': 5}  # 字典

# 类型转换
str(battery_level)                 # 浮点转字符串
int("120")                         # 字符串转整数

控制流结构

python

# 条件判断
if battery_level < 20:
    print("低电量警告!")
elif 20 <= battery_level < 50:
    print("电量中等")
else:
    print("电量充足")

# 循环结构
for sensor_id in sensor_ids:
    print(f"正在初始化传感器 #{sensor_id}")

# 异常处理
try:
    distance = read_sensor()
except SensorError as e:
    print(f"传感器错误: {e}")
finally:
    close_sensor()
1.2 Python函数与模块

函数定义与使用

python

def calculate_velocity(distance, time, acceleration=0):
    """计算平均速度
    :param distance: 移动距离(米)
    :param time: 时间(秒)
    :param acceleration: 加速度(可选)
    :return: 速度值(米/秒)
    """
    if acceleration:
        return (distance / time) + 0.5 * acceleration * time
    return distance / time

# 函数调用
vel = calculate_velocity(5.0, 2.0)

模块化编程

python

# 创建robot_utils.py模块
def normalize_angle(angle):
    """将角度规范化到[-π, π]区间"""
    while angle > math.pi:
        angle -= 2.0 * math.pi
    while angle < -math.pi:
        angle += 2.0 * math.pi
    return angle

# 主程序中导入
from robot_utils import normalize_angle
current_angle = normalize_angle(3.5)
1.3 面向对象编程基础

类与对象

python

class MobileRobot:
    # 类属性
    robot_count = 0
    
    def __init__(self, name, robot_type):
        # 实例属性
        self.name = name
        self.type = robot_type
        self.position = [0.0, 0.0]
        MobileRobot.robot_count += 1
    
    # 实例方法
    def move(self, x, y):
        self.position[0] += x
        self.position[1] += y
        print(f"{self.name} 移动到位置: {self.position}")
    
    # 静态方法
    @staticmethod
    def calculate_distance(x1, y1, x2, y2):
        return math.sqrt((x2-x1)**2 + (y2-y1)**2)

# 创建对象
bot1 = MobileRobot("Robot1", "AGV")
bot1.move(1.5, 0.8)

第二部分:ROS2开发环境搭建

2.1 安装准备(Ubuntu 22.04)

系统要求与依赖

bash

# 更新系统
sudo apt update && sudo apt upgrade -y

# 安装基础依赖
sudo apt install curl git python3-pip python3-rosdep

# 设置Python3为默认版本
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 1
2.2 ROS2安装步骤
步骤 命令 说明
1. 添加源 sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg 添加ROS2 GPG密钥
2. 设置仓库 `echo "deb [arch=
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值