ROS小乌龟turtlesim详解

turtlesim 小乌龟模拟

小乌龟的启动

在安装完ROS之后,就可以启动小乌龟了,打开一个终端。
1. 首先要打开ROS服务
roscore
2. 打开一个新终端,打开小乌龟
rosrun turtlesim turtlesim_node
3. 打开一个新终端,通过键盘控制小乌龟,这个终端窗口必须置顶才能键盘控制
rosrun turtlesim turtle_teleop_key
会出现如下结果,此时就可以通过键盘的前后左右来控制小乌龟的平面运动了。
Reading from keyboard
—————————
Use arrow keys to move the turtle.

给小乌龟的运动控制节点发布消息

首先通过ctrl+C 命令,关闭键盘控制终端的节点

  1. 输入话题列表查看指令
    rostopic list
    可以看到当前有如下5个节点,其中/turtle1/cmd_vel 是控制小乌龟运动的节点
    /rosout
    /rosout_agg
    /turtle1/cmd_vel
    /turtle1/color_sensor
    /turtle1/pose

  2. 通过rostopic pub命令,给指定的话题发布消息
    rostopic pub /turtle1/cmd_vel geometry_msgs/Twist “linear:
    x: 0.0
    y: 0.0
    z: 0.0
    angular:
    x: 0.0
    y: 0.0
    z: 0.0”
    /turtle1/cmd_vel为话题,geometry_msgs/Twist 为数据类型。linear为线速度,angular为角速度,单位是m/s 和 rad/s.
    线速度linear,x是前后,y是左右,z是上下。角速度angular,x是沿X轴逆时针转动,y是沿y轴逆时针转动,z是沿Z轴逆时针转动。
    例如:”linear: x: 1.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0” 小乌龟沿X轴做直线运动。
    例如:”linear: x: 0.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 0.0” 小乌龟沿Z轴原地转动
    例如:”linear: x: 1.0 y: 0.0 z: 0.0 angular: x: 0.0 y: 0.0 z: 1.0” 小乌龟边向前,边自传,速度合成后,轨迹是一个圆。

通过rqt图形化工具给话题发布消息

  1. 打开rqt工具
    rqt
  2. 在窗口上面的工具栏选择 plugins>topics>Message Publisher
  3. topic 选择/turtle1/cmd_vel Type选择geometry_msgs/Twist Freq 为消息发布频率 单位为HZ,
  4. 点击加号就可以给指定话题发布消息了,点击小三角就而已给速度和线速度赋值。勾选上面的方框就开始发布了。可以看到小乌龟运动起来了。

同时打开两个小乌龟

  1. 如何打开第二个乌龟呢?首先我们列出所有当前的ros service
    rosservice list

    会出现以下内容
    /clear
    /kill
    /reset
    /rosout/get_loggers
    /rosout/set_logger_level
    /spawn
    /turtle1/set_pen
    /turtle1/teleport_absolute
    /turtle1/teleport_relative
    /turtlesim/get_loggers
    /turtlesim/set_logger_level

  2. 用到spawn命令再生一个小乌龟,当出现/spawn 后一直按tab键会补全,然后回车,会自动生成一个按数字顺序命名的小乌龟
    rosservice call /spawn “x: 0.0
    y: 0.0
    theta: 0.0
    name: ””
    name: “turtle2”(回车后自动生成的名字)

  • 15
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
在Ubuntu上,您可以使用turtlesim包来实现小乌龟绘制心形。请按照以下步骤进行操作: 1. 打开终端(Terminal)。 2. 确保已安装turtlesim包。如果没有,请使用以下命令进行安装: ``` sudo apt-get install ros-noetic-turtlesim ``` 3. 在终端中运行以下命令,启动turtlesim节点: ``` roscore ``` 4. 打开另一个终端,并运行以下命令,启动turtlesim仿真器: ``` rosrun turtlesim turtlesim_node ``` 5. 打开第三个终端,并运行以下命令,启动绘制心形的Python脚本: ``` rosrun turtlesim draw_heart.py ``` 6. 创建一个新的Python文件,比如命名为`draw_heart.py`,并将以下代码复制进去: ```python #!/usr/bin/env python import rospy from geometry_msgs.msg import Twist from turtlesim.msg import Pose def draw_heart(): rospy.init_node('draw_heart', anonymous=True) velocity_publisher = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10) rate = rospy.Rate(10) # 发布速度消息,控制小乌龟绘制心形 move_cmd = Twist() move_cmd.linear.x = 1.0 move_cmd.angular.z = 0.0 for _ in range(2): for _ in range(200): velocity_publisher.publish(move_cmd) rate.sleep() move_cmd.linear.x = -1.0 move_cmd.angular.z = 2.0 for _ in range(200): velocity_publisher.publish(move_cmd) rate.sleep() move_cmd.linear.x = 0.0 move_cmd.angular.z = 0.0 velocity_publisher.publish(move_cmd) if __name__ == '__main__': try: draw_heart() except rospy.ROSInterruptException: pass ``` 7. 保存并关闭文件。 8. 在终端中,进入到存放`draw_heart.py`文件的目录。 9. 输入以下命令,给予脚本执行权限: ``` chmod +x draw_heart.py ``` 10. 输入以下命令运行Python脚本: ``` ./draw_heart.py ``` 这样,您就可以在turtlesim仿真器中看到小乌龟绘制出一个心形了。希望对您有所帮助!如果您有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值