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 小时前
11. isaacsim4.2教程-Transform 树与Odometry
人工智能·机器人·自动驾驶·ros·rviz·isaac sim·仿真环境
Zhichao_972 天前
【ROS1】09-ROS通信机制——参数服务器
ros
想要成为计算机高手3 天前
10. isaacsim4.2教程-RTX Lidar 传感器
数码相机·机器人·ros·仿真·具身智能·vla·isaacsim
城北有个混子3 天前
【机器人】—— 3. ROS 架构 & 文件系统
机器人·ros
Mr.Winter`6 天前
轨迹优化 | 基于边界中间值问题(BIVP)的路径平滑求解器(附C++/Python仿真)
人工智能·机器人·自动驾驶·ros·路径规划·数值优化·轨迹优化
Hi202402177 天前
基于ROS2进行相机标定,并通过测试相机到棋盘格之间的距离进行验证
数码相机·docker·ros·相机·机器视觉·ros2·单目测距
想要成为计算机高手8 天前
9. isaacsim4.2教程-ROS加相机/CLOCK
人工智能·机器人·ros·仿真·具身智能·isaacsim
hero_heart16 天前
ros topic和service的使用
ros
Zhichao_9716 天前
【ROS2 自动驾驶学习】03-ROS2常用命令
ros2
Dirschs17 天前
【Ubuntu22.04安装ROS Noetic】
linux·ubuntu·ros