Ubuntu18.04安装ROS系统


前言

ROS (Robot Operating System, 机器人操作系统) 提供一系列程序库和工具以帮助软件开发者创建机器人应用软件。它提供了硬件抽象、设备驱动、库函数、可视化、消息传递和软件包管理等诸多功能。

详细内容请参考
https://baike.baidu.com/item/ros/4710560?fr=aladdin


一、Ubuntu18.04安装ROS环境

1.添加ROS软件源

sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'

在这里插入图片描述

2.添加密钥

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

在这里插入图片描述

3.安装ROS

sudo apt update

在这里插入图片描述

sudo apt-get install ros-melodic-desktop-full

选择Y
在这里插入图片描述
在这里插入图片描述

4.初始化rosdep

sudo rosdep init

在这里插入图片描述

说明:
(1)使用sudo rodep init出现sudo rosdep:找不到命令提示的错误
解决方法:

sudo apt install python-rosdep

在这里插入图片描述

(2)出现ERROR: cannot download default sources list from: https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/sources.list.d/20-default.list Website may be down.的错误
在这里插入图片描述
解决方法:
增加raw.githubusercontent.com域名与ip之间的映射

$ sudo vim /etc/hosts
151.101.84.133 raw.githubusercontent.com

在这里插入图片描述

rosdep update

在这里插入图片描述

5.设置环境变量

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
source ~/.bashrc

6.安装rosinstall

sudo apt-get install python-rosinstall python-rosinstall-generator python-wstool build-essential

二、ROS第一个例程——小海龟

开启小海龟仿真的步骤:

1.启动ROS Master

roscore

在这里插入图片描述

2.启动小海龟仿真器

rosrun turtlesim turtlesim_node

在这里插入图片描述

3.启动海龟控制节点

rosrun turtlesim turtle_teleop_key

在这里插入图片描述
在这里插入图片描述

说明:
每个步骤都需要新打开一个终端,小海龟的运行路径是在最后一个终端上,通过上下左右按键控制的。

三、编写C++程序,控制小海龟走一个标准的圆形

1、创建工作空间和功能包

概念
工作空间(workspace)是一个存放工程开发相关文件的文件夹。所有的源码、配置文件、可执行文件都是放置在里面的。主要分为四个文件夹:
1.src: 代码空间 (source space)
放置功能包(里面的代码、配置文件、launch文件
2.build:编译空间 (build space)
编译过程中的中间文件(不太用关心
3.devel:开发空间 (development space)
编译生成的一些可执行文件、库、脚本
4.install:安装空间 (install space)
install命令的结果就放在里面

(1)创建工作空间

overview:
在这里插入图片描述

operation:在这里插入图片描述

catkin_init_workspace //初始化工作空间(属性变化),看到冒出了CMakeLists.txt>

下面对工程编译(catkin_make)
要来到工作空间的根目录进行编译:
在这里插入图片描述

看到出现了另两个空间:
在这里插入图片描述

使install空间出现:
在这里插入图片描述

(2)创建功能包

  • 功能包是放置ROS源码的最小单元
  • 同一个工作空间下不允许存在同名功能包

创建功能包:
(要放在src里面):
在这里插入图片描述

命令 功能包名 依赖1 依赖2 依赖3:

catkin_create_pkg test_pkg roscpp rospy std_msgs>

在这里插入图片描述

打开功能包:
include放置头文件
src放功能包的代码
后面两个文件是功能包一定有的,使其区别于普通文件夹的属性
在这里插入图片描述

编译功能包:
还是先回到catkin_ws
编译工作空间就行了
因为没有代码所以也没有实际效果
在这里插入图片描述
要运行功能包里某一个程序的话,要先设置一下工作空间的环境变量
设置之后系统才能找到工作空间

设置环境变量:

ros@ros-virtual-machine:~/catkin_ws$ source devel/setup.bash >

在这里插入图片描述

检查环境变量:

用echo命令把环境变量打开
(ROS_PACKAGE_PATH 是ROS本身的一个环境变量,通过这个环境变量查找所有功能包的路径)
也是只有在前一步设置了工作空间的setup.bash之后,path里面才会包含工作空间的路径

ros@ros-virtual-machine:~/catkin_ws$ echo $ROS_PACKAGE_PATH
/home/ros/catkin_ws/src:/opt/ros/noetic/share

2、发布者Publisher的编程实现

以小乌龟速度为例,话题模型(Publisher/Subscriber)如下:
在这里插入图片描述

(1)创建功能包

$  cd ~/catkin_ws/src
$  catkin_create_pkg my_topic roscpp rospy std_msgs geometry_msgs turtlesim

在这里插入图片描述

再往功能包下的 src 中添加的 cpp 文件,该文件实现了发布者。

实现发布者的步骤:
1、初始化ROS节点;
2、向ROS Master注册节点信息,包括发布的话题名和话题中的消息类型;
3、创建消息数据;
4、按照一定频率循环发布消息
在这里插入图片描述

velocity_publisher.cpp代码:

// 该例程将发布turtle1/cmd_vel话题,消息类型geometry_msgs::Twist 
#include <ros/ros.h>
#include <geometry_msgs/Twist.h>

int main(int argc, char **argv)
{
	// ROS节点初始化
	ros::init(argc, argv, "my_velocity_publisher");
	// 创建节点句柄
	ros::NodeHandle n;
	// 创建一个Publisher,发布名为/turtle1/cmd_vel的topic,消息类型为geometry_msgs::Twist,队列长度20
	ros::Publisher turtle_vel_pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel", 20);
	// 设置循环的频率
	ros::Rate loop_rate(10);
	int count = 0;
	while (ros::ok())
	{
	    // 初始化geometry_msgs::Twist类型的消息
		geometry_msgs::Twist velocity_msg;
		velocity_msg.linear.x = 0.5;//线速度
		velocity_msg.angular.z = 0.5;//角速度

	    // 发布消息
		turtle_vel_pub.publish(velocity_msg);
		ROS_INFO("Publsh turtle velocity command[%0.2f m/s, %0.2f rad/s]", //类似c的printf
				velocity_msg.linear.x, velocity_msg.angular.z);
	    // 按照循环频率延时
	    loop_rate.sleep();
	}
	return 0;
}

在添加了源文件后,我们需要修改编译规则,进行编译:

//配置CMakeLists.txt中的编译规则
// 1、设置需要编译的代码和生成的可执行文件
add_executable(my_velocity_publisher src/my_velocity_publisher.cpp)
// 2、设置链接库
target_link_libraries(my_velocity_publisher ${catkin_LIBRARIES})

在这里插入图片描述

编译并运行发布者:

$ cd ~/catkin_new_ws
$ catkin_make
$ source devel/setup.bash
$ roscore
$ rosrun turtlesim turtlesim_node
$ rosrun my_topic my_velocity_publisher

(2)运行结果:

在这里插入图片描述

四、以小海龟为例演示两台电脑的ROS分布式通信

1、查看两台电脑各自的IP信息和主机名hostname

打开终端,输入命令查看主机的ip和主机名称,并记录(此处若ifconfig找不到命令,可以根据提示输入sudo apt install net-tools)
在这里插入图片描述

两台主机分别添加对方的ip地址和主机名到hosts文件中。这里可以直接使用vim或者sudo gedit打开文件(这里个人推荐使用gedit)

vim /ect/hosts
sudo gedit /etc/hosts

在第三行加入ip主机地址和主机名hostname然后保存退出

接下来重启网络

sudo /etc/init.d/networking restart

2、下载两个包

下载同步包和ssh服务器

sudo apt-get install chrony
sudo apt-get install openssh-server

检查启动

ps -e|grep ssh
ping 从机的ip地址


总结

安装ROS的整个过程,首先需要选择对应版本的ROS,接着就是在网络问题上的处理。目前网上还没有比较好的方法来解决线上安装过程遇到的网络问题,最佳的方式就是放弃线上安装,选择本地下载安装,不然会花费比较久的时间。

实现小海龟的运动我们可以使用键盘的上下键,命令行以及编程实现,通过三种方式的实现初步了解了ROS的特点。

参考文献

Ubuntu18.04安装ROS——实现小海龟仿真

ROS学习笔记(十二)ROS noetic ubuntu 版本 rosdep init,rosdep update 问题解决方法

[古月居ros21讲出现问题及个人解决方案1]第十讲出现:[rospack] Error: package ‘learning_topic‘ not found

Could not find a package configuration file provided by “std_msg“ with any of the following names:

ROS简介-从零开始讲解ROS(适合超零基础阅读)

  • 27
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 1. 首先需要在Windows系统中分出一部分硬盘空间,用于安装Ubuntu系统。可以使用Windows自带的磁盘管理工具进行分区。 2. 下载Ubuntu 18.04的ISO镜像文件,并将其写入U盘或光盘中。 3. 在Windows系统中重启电脑,并进入BIOS设置界面。将启动顺序设置为U盘或光盘优先。 4. 插入U盘或光盘,重启电脑。进入Ubuntu安装界面,选择“安装Ubuntu”。 5. 在安装过程中,选择“安装Ubuntu并保留Windows系统”,并选择之前分出的硬盘空间进行安装。 6. 安装完成后,重启电脑。此时会进入Ubuntu系统。 7. 在Ubuntu系统中打开终端,输入以下命令,添加ROS软件源: sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' 8. 输入以下命令,添加ROS公钥: sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 9. 输入以下命令,更新软件包列表: sudo apt-get update 10. 输入以下命令,安装ROS: sudo apt-get install ros-melodic-desktop-full 11. 输入以下命令,初始化ROS: sudo rosdep init rosdep update 12. 输入以下命令,将ROS环境变量添加到bashrc文件中: echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc source ~/.bashrc 13. 安装完成后,可以使用ROS了。可以输入以下命令,查看ROS版本: rosversion -d 14. 如果需要安装其他ROS包,可以使用以下命令: sudo apt-get install ros-melodic-包名 15. 如果需要创建ROS工作空间,可以使用以下命令: mkdir -p ~/catkin_ws/src cd ~/catkin_ws/ catkin_make 16. 安装完成后,可以在ROS工作空间中创建自己的ROS包,进行开发和测试。 ### 回答2: Ubuntu18.04是一种开源操作系统,常用于科学计算和机器人应用。ROS(Robot Operating System)是机器人操作系统中常用的一个软件平台,为使用Linux的机器人提供了一种通用的应用程序框架。 在安装ROS时,最好选择Ubuntu作为操作系统的基础。在安装Ubuntu18.04之前,需要先下载操作系统安装文件。可以从Ubuntu官网或其他在线资源中下载Ubuntu18.04 ISO文件。安装Ubuntu之前,还需要制作一个启动盘,使用USB或CD/DVD都可以。 接下来,就可以开始安装Ubuntu18.04。在安装过程中,按照提示完成所有设置,包括语言、时区、网络等。完成后,重启计算机,即可启动Ubuntu。 接下来,需要安装ROS。在官网上下载ROS的最新版本,并按照ROS的官方安装指南进行安装。其中包括添加ROS软件包服务器源以及必要的依赖项,并通过终端使用apt-get命令安装ROS软件包。 完成ROS安装后,可以开始编写ROS程序,并使用ROS工具来测试它们。其中包括ROS launch、ROS node、ROS msg、ROS service等。可以在ROS官方网站查找ROS相关教程和文档,进行更加深入地学习和了解ROS。 双系统安装可以在一台计算机上安装两个操作系统,这适合于想要在不同的环境中工作、学习和娱乐的用户。建议首先安装Windows操作系统,再安装Ubuntu18.04以避免在安装系统时遇到麻烦。 在双系统安装过程中,需要首先准备一个空的分区分配给Ubuntu18.04。可以通过磁盘管理器或者第三方磁盘分区软件将硬盘空间划分成两个分区,以便安装两个操作系统安装Ubuntu18.04时,选择“其他选项”并手动分配磁盘空间,将Ubuntu安装在划分好的分区上。其他设置与单系统安装类似。 完成Ubuntu安装后,重启计算机。此时,启动引导程序会显示出两个操作系统,可以选择使用哪一个。 总之,安装Ubuntu18.04ROS需要一定的技能和经验。如果遇到问题,可以查阅官方文档、社区论坛和其他在线资源。通过理解和掌握ROS的基础知识和实践经验,可以更好地开发和运行机器人应用程序。 ### 回答3: Ubuntu 18.04是当今最受欢迎的Linux发行版之一,由于ROS也是在Ubuntu上开发的,因此在这个版本上安装ROS系统非常常见。以下是详细的步骤: 1. 首先,下载Ubuntu 18.04的操作系统ISO镜像文件,并将其写入USB或光盘。 2. 在电脑上启动Ubuntu 18.04安装程序,选择“安装Ubuntu并将其安装到硬盘驱动器上”选项,并按照提示进行安装。 3. 在安装过程中,选择分配磁盘空间的选项,选择“其他选项”以创建一个新的分区来安装ROS。 4. 将磁盘分配如下:在Ubuntu的根目录/(也称为“根文件系统”)上分配约20 GB的磁盘空间,分配约4 GB的空间作为“交换区”,同时在/上创建一个名为“ros”的新分区,以安装ROS代码和工具。接下来,点击“安装”并完成Ubuntu安装程序。 5. 现在,安装ROS,将终端打开并输入以下命令: (a)sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu bionic main" > /etc/apt/sources.list.d/ros-latest.list' (b)sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116 (c)sudo apt-get update (d)sudo apt-get install ros-melodic-desktop-full 6. 安装ROS后,您需要设置ROS的工作空间,继续执行以下命令: (a)mkdir -p ~/catkin_ws/src (b)cd ~/catkin_ws/ (c)catkin_make 7. 接下来,为ROS设置环境变量,继续执行以下命令: echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc 8. 最后,测试ROS是否已正确设置。输入以下命令:roscd 如果您不遇到任何错误,那么ROS已经准备好使用了。 总之,在Ubuntu 18.04上安装ROS系统涉及到创建一个新的磁盘分区来安装ROS代码和工具,安装ROS并设置ROS的工作空间和环境变量。如果您遵循上述步骤,您应该可以轻松地在Ubuntu 18.04上安装ROS

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

菲菲QAQ

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

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

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

打赏作者

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

抵扣说明:

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

余额充值