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 天前
【机械臂】【LLM】一、接入千问LLM实现自然语言指令解析
深度学习·ros·vla
维度攻城狮1 天前
交互式机器人编程:使用Jupyter Notebook运行ROS2程序
jupyter·机器人·ros2
wzyannn3 天前
Ubuntu24.04下ROS2和MoveIt2控制六轴机械臂(持续更新)
ros·机械臂·ros2
小屁猪qAq3 天前
ROS2 节点中使用参数
开发语言·c++·参数·ros2
WWZZ20254 天前
Isaac Sim入门——基础用法
机器人·大模型·机械臂·ros2·具身智能·isaac sim
岱宗夫up5 天前
基于ROS的视觉导航系统实战:黑线循迹+激光笔跟随双模态实现(冰达机器人Nano改造)
linux·python·机器人·ros
General_G6 天前
ROS2资源汇总
linux·机器人·ros2
lq mm8 天前
3d-navi 3D导航模拟仿真项目复现
ros
涅小槃9 天前
Carla仿真学习笔记(版本0.9.16)
开发语言·python·ros·carla
佚明zj11 天前
深入浅出 ROS2 QoS:如何为你的机器人选择通信策略
ros