ROS1.0环境安装与配置----小海龟画圆

ROS1.0环境安装与配置----小海龟画圆

引言:

​ 通过本实验,我们的目标是在Ubuntu 16/18/20系统中安装ROS 1.0软件,并记录和分析所遇到的各种问题及解决措施。我们还将熟悉ROS基本命令,运行小海龟demo例子,并用键盘控制小海龟运动。同时,我们将使用话题查看器查看两个node之间的消息传递。最后,我们将使用Python编写一个程序,控制小海龟走一个标准的圆形。

希望你在本次学习过后,能够有一定的收获!!!

推荐歌曲—雨爱-杨丞琳

​ 冲啊!!!! ٩(͡๏̯͡๏)۶ ٩(͡๏̯͡๏)۶ ٩(͡๏̯͡๏)۶

一、任务介绍

  1. 安装对应版本的ROS1.0软件
  2. 熟悉ROS基本命令,并运行小海龟demo例子,同时用话题查看器查看两个node之间的消息传递
  3. 用python写一个程序,控制小海龟走一个标准的圆形

二、ROS相关介绍

​ ROS(机器人操作系统)是一个机器人软件平台,旨在提供一种通用的软件框架,便于开发各种类型的机器人软件。ROS是一个开源的、跨平台的软件平台,可以在多种操作系统上运行,包括Linux、Windows和macOS等。ROS提供了一系列工具和库,支持机器人的各种功能,包括感知、规划、控制、通信、仿真等。

ROS的主要特点包括:

  1. 模块化设计:ROS采用模块化设计,允许用户根据需要选择使用的功能模块,从而灵活定制机器人软件系统。
  2. 分布式架构:ROS支持分布式架构,允许用户将不同的功能模块分布在不同的计算机上,从而提高系统的性能和可靠性。
  3. 多语言支持:ROS支持多种编程语言,包括C++、Python等,使得用户可以使用自己熟悉的语言开发机器人软件。
  4. 大型社区:ROS拥有一个庞大的用户社区,用户可以在社区中获取到丰富的资源和支持。
  5. 灵活的通信机制:ROS提供了灵活的通信机制,支持多种通信方式,包括点对点通信、广播通信、消息队列等。

三、ROS安装

观察网上的ROS安装方法,大部分非常复杂并且繁琐

我下面推荐一种简单,容易上手的操作,便于新手实现,快速简单安装!!!

在Linux的终端内部执行下面的命令 然后按照脚本指示文件操作即可

wget http://fishros.com/install -O fishros && sudo ./fishros

具体含义解析

1. wget + 网址 -O = 将某网址的文件下载下来并输出(output -O) 到指定的位置也可以重命名。 
2. 前半段意思是 将文件的下载放在当前目录下并命名为fishros
3. 后半段的意思是 ./fishros 执行 fishros 命令

这个脚本是别人做好的,直接运行即可代替复杂的过程。非常推荐新手使用。
安装完毕后 ,接下来我们来检查安装是否成功!!!

这个很重要!

我们开启3个终端,分别运行一下的三行代码

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

在这里插入图片描述

并且通过按下左右键上下键,能够控制小乌龟的移动方向,还有移动距离。

实现了上面的功能,则可以证明对应的ROS安装成功!!!

四、ROS实验

实验内容分析:

  1. 小乌龟的运动,主要由两部分组成,一部分是小乌龟的运动控制,另一部分是小乌龟的运动显示。小乌龟的运动控制是通过键盘输入来实现的,而小乌龟的运动显示是通过图形界面来实现的。
  2. 主要的运动规则是通过订阅发布模式来实现的,通过turtle_teleop_key键盘输入的控制命令发布到小乌龟的运动控制节点,然后小乌龟的运动控制节点根据控制命令来控制小乌龟的运动,最后小乌龟的运动显示节点订阅小乌龟的运动控制节点发布的运动信息,然后根据运动信息来显示小乌龟的运动。
  3. 为了了解控制节点与显示节点通信使用的话题与消息,我们可以使用ros命令结合计算图来获取。
  4. 最后,我们将会使用Python编写一个程序,控制小海龟走一个标准的圆形。

<1> ROS话题的获取

在这里插入图片描述

<2> ROS消息的获取

在这里插入图片描述

<3> 获取消息的具体格式

在这里插入图片描述

我们可以看到,小乌龟的运动控制节点发布的运动信息是geometry_msgs/Twist类型的消息,其中包括线速度和角速度两个成员变量。这些信息是小乌龟的运动显示节点订阅的运动信息,然后根据运动信息来显示小乌龟的运动。

<4> Python 小乌龟画圆圈

因此我们可以通过Python编写一个程序,控制小海龟走一个标准的圆形。
小乌龟的角速度为1.5rad/s,线速度为1.5m/s,可以通过下面的程序来实现。

#!/usr/bin/env python
# coding:utf-8

import rospy
from geometry_msgs.msg import Twist
# 通过geometry_msgs/Twist类型的消息来控制小乌龟的运动
def turtle_publisher():
    rospy.init_node('turtle_publisher', anonymous = True)
    pub = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)
    rate = rospy.Rate(1)
    
    # 控制小乌龟走一个标准的圆形
    while not rospy.is_shutdown():
        msg = Twist()
        msg.linear.x = 1.5
        msg.angular.z = 1.5
        # 发布小乌龟的运动信息
        pub.publish(msg)
        rospy.loginfo('publish turtle message command [%0.2f m/s, %0.2f rad/s]', msg.linear.x , msg.angular.z )

        rate.sleep()
if __name__ == '__main__':
    try:
        turtle_publisher()
    except rospy.ROSInterruptException:
        pass

在这里插入图片描述

终端运行如下的命令,可以看到小乌龟走了一个标准的圆形。

 python hai_gui_yuan.py

在终端的结果如下:
在这里插入图片描述

左侧展示的是小乌龟的运动轨迹,右侧展示的是小乌龟的运动信息。

<5> ROS 无线通信

  1. 记录并且绑定两台电脑

打开终端,输入命令查看主机的ip和主机名称,并进行记录

ifconfig
hostname

在这里插入图片描述

  1. 相互填写对方的IP值

两台主机分别添加对方的ip地址和主机名到hosts文件中。这里可以直接使用gedit打开文件,进行数据填写

sudo gedit /etc/hosts

在这里插入图片描述

  1. 重启网络
sudo /etc/init.d/networking restart
  1. 下载对应的两个包

下载同步包和ssh服务器

sudo apt-get install chrony
sudo apt-get install openssh-server
  1. 实现双机通信

主机端

roscore
rosrun turtlesim turtlesim_nod

机输端

rostopic list
rosrun turtlesim turtle_teleop_key

五、总结

  1. 本实验涉及到ROS(机器人操作系统)的安装、基本命令的学习、小海龟demo的运行、控制小海龟走一个标准的圆形。本实验基于Ubuntu系统,采用ROS软件平台进行机器人开发。通过实验,我深入了解了ROS的基本概念、工作原理和应用方法,并通过实践了解了ROS的特性和功能。
  2. 在实验过程中,我首先安装了ROS软件平台。然后,我学习了ROS的基本命令,并运行了小海龟demo例子,通过键盘控制小海龟运动。同时,我使用话题查看器查看了两个node之间的消息传递,深入理解了ROS的消息通信机制。
    标准的圆形。本实验基于Ubuntu系统,采用ROS软件平台进行机器人开发。通过实验,我深入了解了ROS的基本概念、工作原理和应用方法,并通过实践了解了ROS的特性和功能。
  3. 在实验过程中,我首先安装了ROS软件平台。然后,我学习了ROS的基本命令,并运行了小海龟demo例子,通过键盘控制小海龟运动。同时,我使用话题查看器查看了两个node之间的消息传递,深入理解了ROS的消息通信机制。
  4. 接着,我用Python编写了一个程序,控制小海龟走一个标准的圆形。在实现这个功能的过程中,我学会了如何编写ROS节点、发布和订阅消息,并且通过这个例子深入理解了ROS的节点、消息和话题的概念。
  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LX很爱吃葱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值