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

然后小乌龟,开始转圈。

相关推荐
Mr.Winter`4 天前
运动规划实战案例 | 基于四叉树分解的路径规划(附ROS C++/Python仿真)
人工智能·机器人·自动驾驶·ros·计算机图形学·ros2·路径规划
DW_DROME5 天前
ROS2 多机时间同步(Chrony配置简明指南)
ros
Rorsion6 天前
ROS Master多设备连接
机器人·ros
维度攻城狮10 天前
实现在Unity3D中仿真汽车,而且还能使用ros2控制
python·unity·docker·汽车·ros2·rviz2
古希腊掌握嵌入式的神12 天前
[ROS]ROS系统是如何协调工作机器人
机器人·ros
慕羽★18 天前
多无人车协同探索开源包启动文件介绍(上)
机器人·ros·gazebo·运动规划·rrt·多无人车·协同探索
Mr.Winter`25 天前
轨迹优化 | 基于梯度下降的路径规划算法(附ROS C++/Python仿真)
c++·人工智能·算法·机器人·自动驾驶·ros·ros2
猫头鹰数据分析1 个月前
机器人ROS学习:Ubuntu22.04安装ROS2和Moveit2实现运动规划
ubuntu·ros2·moveit·机器人运动
白云千载尽1 个月前
开源的自动驾驶视觉语言模型标注数据集
算法·机器学习·自动驾驶·ros