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脚本

然后小乌龟,开始转圈。

相关推荐
勤自省18 小时前
ros生态系统
ros
kobesdu20 小时前
ROS导航调参指南:机器人模型、TEB/DWA与Costmap全解析
人工智能·机器人·ros
勤自省20 小时前
在Ubuntu20.04上安装ROS
linux·ros
MIXLLRED2 天前
Ubuntu22.04 + ROS2 Humble + ORB-SLAM3 下从环境配置到深度相机d435实时SLAM
ros2·humble·orb_slam3·ubuntu22.04·d435
绍磊leo2 天前
ROS2 企业级构建脚本:告别繁琐的命令行操作
ros
kobesdu4 天前
ORB-SLAM3:从特征提取到稠密点云建图
机器人·ros·orbslam
kobesdu5 天前
FAST-LIO2 + 蓝海M300激光雷达:从建图到实时栅格图的完整流程
算法·机器人·ros·slam·fast lio
YQ_015 天前
Ubuntu 22.04 下让 Gazebo / RViz 使用 NVIDIA GPU 渲染
ros2
小手智联老徐6 天前
ROS2:与 Gazebo 版本对应关系解析
机器人·ros2·gazebo
kobesdu6 天前
综合强度信息的激光雷达去拖尾算法解析和源码实现
算法·机器人·ros·slam·激光雷达