博舍

【ROS2机器人入门到实战】3动手安装ROS2 机器人安装方式

【ROS2机器人入门到实战】3动手安装ROS2

3.动手安装ROS2写在前面当前平台文章汇总地址:ROS2机器人从入门到实战获取完整教程及配套资料代码,请关注公众号获取教程配套机器人开发平台:两驱版|四驱版为方便交流,搭建了机器人技术问答社区:地址fishros.org.cn到了这一节,终于可以开始安装ROS2了。安装ROS2本来是一件比较麻烦的事情,原因在于ROS2对于Ubuntu系统来说属于第三方软件,我们之前有讲到,第三方软件需要先添加源、再添加秘钥才才使用apt进行安装。

为帮助大家节省安装时间,小鱼制作了一键安装ROS2的脚本程序,可以非常便利的完成ROS2的安装和环境配置,接下来我们一起来体验下。

注意:1和2两种安装方式选择一个即可,第一次建议使用一键安装ROS2,防止出错。

1.一键安装ROS2

首先启动虚拟机或者启动双系统中的ubuntu,打开终端,输入下面的指令。

wgethttp://fishros.com/install-Ofishros&&.fishros

输入密码,在选项界面选择1-一键安装ROS,接着根据你的情况选择是否更换系统源(基础篇更换了就不用了),接着等待一会就会让你选择要安装的ROS2版本了。这里选择humble版本的ROS2即可。

接着会问你安装桌面版还是基础版,我们选择桌面版,包含可视化工具,如果是在树莓派上装可以使用基础版。

安装完成后输入ros2如果看到下面的界面则安装成功

2.手动安装ROS22.1Ctrl+Alt+T打开终端2.2添加源echo"deb[arch=$(dpkg--print-architecture)]https://repo.huaweicloud.com/ros2/ubuntu/$(lsb_release-cs)main"|sudotee/etc/apt/sources.list.d/ros2.list>/dev/null2.3添加源对应的秘钥sudoaptinstallcurlgnupg2-ycurl-shttps://gitee.com/ohhuo/rosdistro/raw/master/ros.asc|sudoapt-keyadd-2.4更新sudoaptupdate2.5安装ROS2

上面步骤完成后,安装就变得非常的简单了,一行指令搞定;

sudoaptinstallros-humble-desktop

然后等着就行:

2.6安装额外依赖sudoaptinstallpython3-argcomplete-y2.7配置环境变量

大家此时再打开一个终端,输入ros2,看看会有什么神奇的事情发生吧。

很不幸,你可能会看到到:

不要怕,跟着小鱼输入一句话:

source/opt/ros/humble/setup.bash

再尝试一下,就可以了。

这是为什么呢?

因为虽然安装好了ros2,但ros2并没有加入到系统默认的环境中来。每次想用还需要进行source.有什么办法可以一劳永逸呢?

有的,把ros2加入bashrc中。就是每次启动终端都让它自动的输入这句话。

echo"source/opt/ros/humble/setup.bash">>~/.bashrc3.出现问题可以这样卸载

别的教程肯定不会写这个,不过这招有时候还挺好用,就是麻烦一些哈。

sudoaptremoveros-humble-*sudoaptautoremove4.ROS2到底装哪里了

在Windows安装过软件的小伙伴都知道安装软件都会选择一个安装目录,但是安装ROS时候并没有让你选择,ROS安装的默认目录在/opt/ros/下,根据版本的名字进行区分。

我们本节安装的是humble版本的ROS,所以安装目录在/opt/ros/humble下。

cd/opt/ros/humble/ls

参考链接:

ROS2镜像使用帮助:https://mirrors.tuna.tsinghua.edu.cn/help/ros2/ROS2官方文档:http://docs.ros.org/en/humble/index.html

《ROS机器人编程》第十章

更新!整理出《ROS机器人编程》第十章ppt讲义版,请对照书籍P278-311页学习。

听课不停学,每周二,周五更新,欢迎追更!

【说明】ROS支持的机器人可以在相关wiki(http://robots.ros.org/)上找到。有大约180种。其中一些包括由个人开发者公开发布的自制机器人,但是如果考虑到这是由单一系统支持的机器人的话,却是不少的数量。

其中最著名的是Willowgarage开发的PR2和TurtleBot。两者都是Willowgarage或OpenRobotics(前称OSRF)参与开发的机器人,也是ROS的标准平台。在本章中,我们将重点讨论这两者中以普及型为目的开发的TurtleBot3机器人。

【说明】TurtleBot是ROS的标准平台机器人。这里的turtle来源于1967年开发的乌龟机器人。这款机器人是为了用教育计算机编程语言Logo控制实际机器人而开发的。另外,在ROS基础教程中首先出现的turtlesim节点是一个模仿Logoturtle程序的命令体系而制作的程序。如图所示,乌龟图标甚至成为了ROS的象征。不仅如此,ROS标志中使用的9个点也来自龟背壳。源于Logo的乌龟的Turtlebot,旨在通过TurtleBot向ROS新手轻松教授ROS的用法(这与Logo的目的类似,Logo的目的是利用Logo语言轻松教授计算机编程语言)。从第一代TurtleBot开始,近10年来,TurtleBot已经成为开发者和学生使用最多的ROS标准平台。购买Turtlebot请咨询:027-87522899,027-87522877

【说明】为了普及ROS,以iRobot公司的基于Roombar的研究机器人Create为基础而开发。它于2010年开发,自2011年起开始销售。然后在2012年,YujinRobot公司开发出了以基于iCLEBO的研究机器人Kobuki为基础的TurtleBot2。在2017年开发的TurtleBot3弥补了TurtleBot1和TurtleBot2中的不足点,且采纳了用户们的新的需求。TurtleBot3的驱动部分采用了ROBOTIS公司的智能舵机Dynamixel。

【说明】TurtleBot3是一个小型、低成本、可编程的基于ROS的移动机器人,其目的是用于教育、科研、爱好者作品和产品原型。TurtleBot3的目标是在不牺牲功能和品质的前提下大幅缩小平台的尺寸且降低价格,同时将机器人组件根据用户的需求更改或扩展。根据用户如何选择部件,如机械部件、计算机和传感器,TurtleBot3可以通过各种方法进行定制。此外,TurtleBot3采用了比现有的PC更经济、更小巧,并且适合嵌入式系统的SBC(单板计算机),还应用了距离传感器和3D打印等最新技术。

【说明】TurtleBot3的基本组件有:用于驱动的舵机、用于运行ROS的SBC、用于SLAM和导航(Navigation)的传感器、可变形的结构件、用作中层控制器的嵌入式控制器OpenCR、兼容轮胎和履带的链轮,最后还有11.1V的锂聚合物电池。

【说明】Waffle-PI型号的特点是:其形状更易于装载物体、采用扭矩更大的舵机、使用360度距离传感器LDS(LaserDistanceSensor),WafflePi的单板机采用了与Burger相同的RaspberryPi,并且相机采用了RaspberryPiCamera,因此大大提高了性价比。

【说明】此外,TurtleBot的所有硬件结构信息都已在云共享三维CADOnshape中公开,Onshape可供多人同时使用智能手机、平板电脑以及网页浏览器查看。您可以在网页浏览器中查看TurtleBot3的每个组件,也可以把想修改的零件下载到您的资源库,通过修改设计出自己想要的零件。也可以下载相关的STL文件后,用3D打印机打出零件。每个型号的公开文件可以在TurtleBot3的官方wiki的附录提供的OpenSource项目中找到。

【说明】TurtleBot3的软件由OpenCR控制板的固件(FW)和4个ROS功能包组成。正如在第9章嵌入式系统中的说明,作为TurtleBot3的核心,OpenCR的固件还被称为turtlebot3_core。固件将OpenCR作为中间控制器,读取TurtleBot3的驱动舵机Dynamixel的编码器值来估算机器人的位置,或者根据上位软件的命令来控制速度。另外,固件还从安装在OpenCR上的3轴加速度和3轴陀螺仪传感器获得加速度和角加速度,以此估计机器人的方向,此外还测量电池电压并将其以话题传输。

TurtleBot3的ROS功能包包括turtlebot3、turtlebot3_msgs、turtlebot3_simulations和turtlebot3_applications。其中,turtlebot3功能包包括TurtleBot3的机器人模型、SLAM和导航功能包、遥控功能包以及与行驶相关的bringup功能包。另外,TurtleBot3的消息文件的集合turtlebot3_msgs、仿真功能包的集合turtlebot3_simulations以及应用程序的集合turtlebot3_applications构成了TurtleBot3的ROS功能包。

【说明】如图所示,TurtleBot3的开发环境可以分为远程PC(运行远程控制、SLAM和导航功能包)和TurtleBotPC(控制实际机器人且搜集传感器信息)。这两种PC在开发环境上都非常相似,但是它们使用的功能包根据PC的性能和用途进行了不同的配置。为了搭建一个基本的开发环境,两台PC都要安装Linux(Ubuntu16.04兼容的LinuxMint和UbuntuMATE)作为基本操作系统,且ROS安装KineticKame版本即可。有关详细信息,请参阅第3章“搭建ROS开发环境”。有关PC、TurtleBot和OpenCR的信息,请参阅以下地址。

■ http://turtlebot3.robotis.com

如果已经安装了Linux和ROS,则可以安装与TurtleBot3相关的软件。所有这些安装方法都在上面提到的维基地址中描述,但是这里我们简单地总结一下,只解释一下安装方法。在控制TurtleBot3机器人的用户PC(在这里我们称为远程PC)上,如下所示安装相关的依赖包和TurtleBot3功能包。但是,我们已经排除了包含本书中没有提到的多种示例的turtlebot3_applications功能包。

【说明】如果已经安装了所有软件,则下一个最重要的配置是如图所示的网络设置。有关如何更改ROS_HOSTNAME和ROS_MASTER_URI设置的详细说明,请参阅第3.2节和第8.3节,本节中只了解设置的顺序。作为参考,TurtleBot3将用户的个人台式机和笔记本电脑称为远程PC,这台PC将担任运行roscore的主节点,会负责远程控制、SLAM、导航等上层控制。与此PC配对的TurtleBot3配备了SBC,负责机器人行驶和传感器信息采集。以下远程控制设置示例是在远程PC上运行ROSMaster时的示例。

【说明】让我们来看一看Turtlebot的远程控制。几乎所有可连接到PC的设备,如键盘、蓝牙遥控器RC-100B、PS3游戏杆、XBOX360游戏杆、Wii遥控器、Nunchuk、Android应用程序、LEAPMotion,和Myo等都可以用于远程遥控TurtleBot3。更多信息可以在“http://turtlebot3.robotis.com/”的teleoperation项目中查看。在本节中,我们将以最易于使用的键盘和通常用于机器人控制的PS3操纵杆进行说明。

【说明】我们将利用RViz来可视化机器人的状态。为了确定要使用的模型,先使用export命令将当前的TurtleBot3的型号指定为Burger。如果是WafflePi,您可以将其指定为’waffle_pi’,而不是’burger’。然后运行turtlebot3_model.launch启动文件,则RViz将会被运行。

如图所示,当RViz被运行时,TurtleBot3Burger的模型和各关节的tf会以RGB坐标系的形式显示在画面中央。而且,可以看到安装在机器人上的360度距离传感器LDS接收距离值,并将障碍物显示为红色。

如上面所述,对TurtleBot3的控制需要在远程PC和TurtleBot3SBC的计算机上来回操作,是比较麻烦的方式。为了解决这个问题,我想建议一种使用SSH来远程访问TurtleBot3SBC的方法。这使您可以在远程PC上执行所有的命令。从远程PC远程连接到TurtleBot3SBC的操作如下。有关更多信息,请参阅有关SSH的说明。

【说明】TurtleBot3提供虚拟仿真开发环境,即使没有机器人硬件,也可以通过仿真软件里的虚拟机器人进行编程和仿真。有两种方法可以做到这一点,一种是使用ROS的3D可视化工具RViz,另一种是使用3D机器人仿真器Gazebo。

在本节中,我们将了解第一个方法RViz的用法。即使您没有TurtleBot3的硬件,您也可以遥控TurtleBot3,还可以测试SLAM和导航,因此是非常有用的方法。具体方法是使用turtlebot3_simulations元功能包。要在这个元功能包中使用虚拟仿真,首先需要安装turtlebot3_fake功能包。这在“10.5.TurtleBot3开发环境”中做了说明。如果已经安装了它,请转到下面的内容。

【说明】现在,让我们再次使用turtlebot3_teleop_keyboard节点移动虚拟TurtleBot3。如图所示,与之前不同,可以看到红色箭头会沿着机器人的移动轨迹显示。这个测位(odometry)信息对于移动机器人来说是表示自身位置和方向的非常基本的信息。至此,我们简单查看了测位(odometry)信息是否正确显示。

TF话题包含TurtleBot3组件的相对坐标信息,它可以像之前的操作一样用rostopic命令确认,但是我们下面将用RViz进行确认,就像查看odom的方式一样。并用rqt_tf_tree检查层次结构。

【说明】至此,我们介绍了TurtleBot3功能包中的两种仿真工具。一种是使用ROS的3D可视化工具RViz,另一种是使用3D机器人仿真器Gazebo。仿真可以在逼近实际的机器人和场景中完成,而不需要实际的机器人,所以对于需要虚拟仿真的用户来说,这将是一个很好的工具。

【说明】Turtlebot支持三种类型的仿真(stage、stdr、gazebo)。

当希望用虚拟机器人进行各种仿真时,请参考以下相关wiki。

http://wiki.ros.org/turtlebot_stdr 

http://wiki.ros.org/turtlebot_gazebo 

http://wiki.ros.org/turtlebot_stage

欢迎点击关注京天机器人专营店https://item.jd.com/10055225794502.html#crumb-wrap

原创声明:本篇文档为原创文档。欢迎转发转载,请注明出处。

本书中使用的开源代码会根据读者使用的时间,可能会有版本变化,因此在运行时可能会有相异的结果。

本次文稿编辑在原版上增加了开源软件列表,开源硬件列表,开源资源以及相关社区等链接,希望大家在学习ppt的同时可以参考原版书籍配合电脑实战,会更有帮助。

微信搜一搜:京天机器人。获取更多章节ppt讲义

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇