ROS2的turtlesim画一个圆

在 ROS 2 中,可以使用 turtlesim 包来实现绘制圆形的功能。turtlesim 是一个简单的模拟器,常用于教学和演示基本的 ROS 概念。要在 turtlesim 中控制乌龟绘制一个圆形,需要发布恰当的线速度和角速度组合到 /turtle1/cmd_vel 主题。
想一想在scratch中和Python里面是怎么画圆的,就知道这里怎么画里,其实原理是一样的,只是控制的方法不太相同而已。

一.建立turtlesim_node

首先确保运行了turtlesim,这个在各大教程中都有,主要是这么几步:

ros2 run turtlesim turtlesim_node

这一步会建立一个turtle的视图,类似于python中的tkinter
在这里插入图片描述

二. 发布消息

接下来就是发布消息里,一般,我们会用teleop来控制乌龟的走向,但是teleop的延时太厉害,以至于画一个五角星可以耗费整整半小时。太难了,所以既然是几何概念,那么我们就用代码来实现。

1.建立包

当然,我还是设置在主目录下,在主目录下建立一个文件夹,叫做ROSproject。在这个文件夹下建立src,通过terminal进入文件夹
建立ros项目。

ros2 pkg create --build-type ament_python my_ros_py_package

然后进入 my_ros_py_package
建立circleNode.py

touch circleNode.py

现在的目录树是这样的:

└── my_ros_py_package
    ├── my_ros_py_package
    │   ├── circleNode.py
    │   └── __init__.py
    ├── package.xml
    ├── resource
    │   └── my_ros_py_package
    ├── setup.cfg
    ├── setup.py
    └── test
        ├── test_copyright.py
        ├── test_flake8.py
        └── test_pep257.py

2.编写代码

在circleNode.py中写入以下代码

import rclpy
import math
from rclpy.node import Node

# from std_msgs.msg import String
from geometry_msgs.msg import Twist



class MinimalPublisher(Node):

    def __init__

猜你喜欢

转载自blog.csdn.net/harebert/article/details/138036755
今日推荐