ROS2学习笔记1-起步的程序

ROS2学习笔记1-起步的程序

写在前面

已经学习一段时间了,短短续续有两周了。首先说,体验并不是很好。

首先,第一个教训是最好用实体机,不要用vmware装个ubuntu.

一、环境的安装

主机的选择:

  1. 最好是实体机 ,不要采用vmware;因为cursor支持x-windows并不太好。vscode相对好一点。另外,Gazebo,并不是工程化的有多么好,所以,与vmware的显卡,配合的相当不好。

操作系统

官方要求是ubuntu 22.04 ,所以我装的是22.04.5, 感觉似乎不太好,最好选稍旧一点的。例如,22.04.3之类的

安装指令

复制代码
sudo apt install ros-humble-desktop
sudo apt install python3-colcon-common-extensions
sudo apt install ros-humble-gazebo-ros-pkgs
sudo apt install ros-humble-ros2-control ros-humble-ros2-controllers
sudo apt install ros-humble-moveit
sudo apt install ros-humble-nav2-bringup

二、最简单的起步示例

1. ROS2 官方教程

ROS2 的官方文档提供了一系列入门示例,非常适合初学者。你可以从以下几个经典示例开始:

2. TurtleSim 示例

TurtleSim 是一个轻量级的模拟器,常用于 ROS 和 ROS2 的入门学习。它提供了一个二维乌龟机器人,可以通过键盘或代码控制移动。

  • 安装 TurtleSim:

    sudo apt install ros-humble-turtlesim

  • 运行示例:

    • 启动 TurtleSim:
      ros2 run turtlesim turtlesim_node
    • 控制乌龟移动:
      ros2 run turtlesim turtle_teleop_key
  • 编程练习:

    • 编写一个节点,通过发布 /turtle1/cmd_vel 话题控制乌龟画圆或走直线。

    • 示例代码(Python):

      python
      import rclpy
      from rclpy.node import Node
      from geometry_msgs.msg import Twist

      class TurtleController(Node):
      def init(self):
      super().init('turtle_controller')
      self.publisher = self.create_publisher(Twist, '/turtle1/cmd_vel', 10)
      self.timer = self.create_timer(0.5, self.move_turtle)

      复制代码
      def move_turtle(self):
          msg = Twist()
          msg.linear.x = 1.0  # 前进速度
          msg.angular.z = 1.0  # 旋转速度
          self.publisher.publish(msg)

      def main():
      rclpy.init()
      node = TurtleController()
      rclpy.spin(node)
      rclpy.shutdown()

      if name == 'main':
      main()

具体:

launch:

base 复制代码
root@ros:~# ros2 run turtlesim turtlesim_node
[INFO] [1743909730.765376988] [turtlesim]: Starting turtlesim with node name /turtlesim
[INFO] [1743909730.772274808] [turtlesim]: Spawning turtle [turtle1] at x=[5.544445], y=[5.544445], theta=[0.000000]
qt.qpa.xcb: QXcbConnection: XCB error: 145 (Unknown), sequence: 181, resource id: 0, major code: 139 (Unknown), minor code: 20

key server

base 复制代码
ros2 run turtlesim turtle_teleop_key
Reading from keyboard
---------------------------
Use arrow keys to move the turtle.
Use G|B|V|C|D|E|R|T keys to rotate to absolute orientations. 'F' to cancel a rotation.
'Q' to quit.

vscode 启动python脚本

然后小乌龟,开始转圈。

相关推荐
滴啦嘟啦哒1 天前
【具身笔记】【π0.5 微调与仿真】三、libero数据可视化
笔记·python·ros·vla
free_android2 天前
ROS2 TF 树详解与 rviz Fixed Frame 正确配置
ros·rviz
米糕闯编程3 天前
鱼香ros2(十七)C++小海龟巡逻
开发语言·c++·机器人·ros2·服务·小海龟
风合星语4 天前
2026 机器人工程实例(七):Nav2 到站了,任务却没完成——AMR 载货导航中的托盘滑移与验收闭环
人工智能·机器人·ros2·机器人仿真·nav2·mujoco·amr
米糕闯编程10 天前
鱼香ros2(十二)C++话题订阅与发布
开发语言·c++·ros2·话题
朝朝辞暮i12 天前
C++ 第 36 课:Action——机械臂/VLA 非常重要
开发语言·c++·算法·ros2
朝朝辞暮i13 天前
C++ 第 39 章: 阶段性总复习——类、对象、构造、继承、this、指针与智能指针
开发语言·c++·算法·ros2
朝朝辞暮i13 天前
C++ 第 40 章:ROS2 Publisher + Timer + Subscriber + Callback + Executor 完整闭环
开发语言·c++·算法·ros2
朝朝辞暮i13 天前
C++ 第 38 课:线程、SingleThreadedExecutor、MultiThreadedExecutor、Callback Group
开发语言·c++·算法·ros2
小奇不哭14 天前
ROS2 单节点,RGB-D 深度相机局部路径提取 + B 样条平滑路径 + YOLOv8 障碍物检测 + 深度测距,用于移动机器人视觉局部循迹。
python·yolov8·ros2·cv2·路径探索循迹