ROS1.0环境安装与配置

本文详细介绍了在Ubuntu系统中安装ROS1.0的过程,包括遇到的问题和解决方案,以及如何运行小海龟Demo和编写代码控制小海龟画圆。文章还涵盖了远程控制小海龟的实践,突显ROS的通信机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、 任务

1.在Ubuntu16/18/20系统中,安装对应版本的ROS1.0软件. 注意记录和分析所遇到的各式问题和解决措施。

(注意:电脑安装ROS有困难的同学,可以采用直接导入Ubuntu18+ROS 镜像的方式,节约时间。

镜像文件很大,几个分卷压缩包解压后约7GB,请从百度网盘下载 。 链接:https://pan.baidu.com/s/15CG3mXpxpqAYeBafS-vc8w 如果有提取码,就是 2022。

安装后的ubuntu系统登录密码是1234 )

2.熟悉ROS基本命令,并运行小海龟demo例子,通过键盘控制小海龟运动。同时用话题查看器查看两个node之间的消息传递;

3.用C++或python写一个程序,控制小海龟走一个标准的圆形;成功后,再采用两台电脑,重新进行远程小海龟实验。

二、 实践

1. 安装 ROS

Ⅰ 准备工作

  1. 安装Ubuntu
    需要20.04及以下版本,更高的版本只能支持ROS2

Ⅱ 正式安装

  1. 添加软件源
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
  1. 添加密钥
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
  1. 安装ROS
sudo apt update
sudo apt-get install ros-melodic-desktop-full
  1. 初始化ros
sudo rosdep init
rosdep update

安装完成

2. 启动小海龟DEMO

rosrun turtlesim turtlesim_node

在这里插入图片描述

然后再新建一个控制台输入

rosrun turtlesim turtle_teleop_key

使用方向键控制移动
在这里插入图片描述

3. 海龟画圆

Ⅰ 准备工作

本次代码使用python,故需要安装python

sudo apt install python3-colcon-common-extensions

Ⅱ 实现功能

① 本地
  1. 创建python文件:
touch draw_circle.py
  1. 编辑python文件
#!/usr/bin/env python3

import rclpy
from rclpy.node import Node
from geometry_msgs.msg import Twist
import math

class DrawCircle(Node):
    def __init__(self):
        super().__init__('draw_circle')
        self.publisher_ = self.create_publisher(Twist, '/turtle1/cmd_vel', 10)
        self.timer_ = self.create_timer(0.1, self.publish_twist)
        self.current_angle_ = 0.0
        self.angular_speed_ = 0.1
        self.linear_speed_ = 0.2

    def publish_twist(self):
        twist = Twist()
        twist.linear.x = self.linear_speed_
        twist.angular.z = self.angular_speed_
        self.publisher_.publish(twist)
        self.current_angle_ += self.angular_speed_ * 0.1
        if self.current_angle_ >= 2 * math.pi:
            self.get_logger().info('Drawn a circle!')
            self.timer_.cancel()

def main(args=None):
    rclpy.init(args=args)
    draw_circle = DrawCircle()
    rclpy.spin(draw_circle)
    draw_circle.destroy_node()
    rclpy.shutdown()

if __name__ == '__main__':
    main()

  1. 运行python文件
chmod +x draw_circle.py
rosrun turtlesim turtlesim_node
./draw_circle.py

在这里插入图片描述

② 远程
  1. 准备工作
    准备两台有ROS的计算机A和B,且A和B处于一个网络下
  2. 在A电脑上设置ROS MASTER
roscore
  1. 在B电脑上设置ROS节点
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
  1. 在A电脑上创建控制节点
#!/usr/bin/env python

import rospy
from geometry_msgs.msg import Twist

def move_turtle():
    # 初始化ROS节点
    rospy.init_node('control_turtle')
    # 创建一个发布器,用于向B电脑上的小海龟模拟器发送控制命令
    pub = rospy.Publisher('/cmd_vel', Twist, queue_size=10)
    # 设置发布频率
    rate = rospy.Rate(10)  # 10hz

    while not rospy.is_shutdown():
        # 创建Twist消息
        twist = Twist()
        # 设置线速度
        twist.linear.x = 0.2  # 设置线速度
        # 设置角速度
        twist.angular.z = 0.2  # 设置角速度
        # 发布Twist消息
        pub.publish(twist)
        # 按照设置的频率休眠
        rate.sleep()

if __name__ == '__main__':
    try:
        move_turtle()
    except rospy.ROSInterruptException:
        pass

  1. 在A电脑上运行控制节点:
    为python文件添加执行权限
chmod +x control_turtle.py

运行该python文件
在这里插入图片描述

rosrun your_package_name control_turtle.py

三 心得体会

通过完成以上任务,我对ROS的基本操作和功能有了更深入的了解。在安装ROS软件时,遇到了一些挑战,但通过查找资料和尝试不同的解决方法,最终成功安装并运行了ROS。在熟悉ROS基本命令和运行小海龟demo过程中,我感受到了ROS强大的消息传递机制和灵活的节点通信方式。通过编写控制小海龟走圆形的程序,我加深了对ROS编程的理解,并且通过远程实验进一步掌握了ROS远程通信的方法。这次实验不仅让我学到了很多知识,也提高了我的动手实践能力和解决问题的能力。ROS是一个强大而灵活的机器人操作系统,我对它的学习充满了信心和期待。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值