精华内容
下载资源
问答
  • ROS教程,最全最详的中文教程,详细介绍了ROS从安装到详细配置的知识
  • 本仓库为ROS入门教程的代码示例,包括以下ROS细分: 极端 内容 robot_sim_demo 机器人仿真程序,大部分示例会用到这个附加 topic_demo topic通信,自定义msg,包括C ++和python两个版本实现 service_demo service...
  • ROS教程 以任务为中心的课程中的ROS教程。 像Coursera这样的有条理的每周安排组织的任务,但是没有专业的联系。 完美吧? 课程长度为n周,分为任务。 为了更好地帮助本课程,请在此存储库上提出问题,以便其他人...
  • ROS教程(一):ROS安装教程(详细图文)

    万次阅读 多人点赞 2020-11-10 10:23:35
    关于ROS(Robot OS 机器人操作系统),估计看这个教程的人已经大概知道是啥了,我在这就不废话了。 首先对于ROS的安装,在它的官方网站: http://wiki.ros.org/ROS/Installation 中有详细说明。但是。。。上面的教程...

    ros教程:ros详细安装步骤(添加源、下载ROS及环境配置)


    前言

    关于ROS(Robot OS 机器人操作系统),估计看这个教程的人已经大概知道是啥了,我在这就不废话了。
    首先对于ROS的安装,在它的官方网站: http://wiki.ros.org/ROS/Installation 中有详细说明。但是。。。上面的教程都是英文的,如果感觉略有压力(本人就是)。
    所以本人痛定思痛,经过一番呕心沥血与含辛茹苦的调研后(其实就是看了几篇相关博客),这里,我就来总结一下我当时学习的历程,也为其他新手作为一个参考。


    提示:以下是本篇文章正文内容,下面案例可供参考

    一、版本选择

    ROS 虽说也叫操作系统,但它是寄生在 LINUX 操作系统之下的,所以要求大兄弟你的电脑里至少要先有一个 LINUX 操作系统。

    ROS的安装当然是我们开始动手的第一步了,这里我们使用的操作系统是ubuntu16.04,因为ROS在ubuntu上的支持是最好的。

    操作系统:Ubuntu16.04
    ROS版本:ROS Kinetic Kame

    UbuntuROS版本对应关系

    UbuntuROS 1.0ROS 2.0
    16.04 LTSKinetic LTSArdent
    18.04 LTSMelodic LTSDashing LTS
    20.04 LTSNoetic LTSFoxy LTS

    二、开始安装

    2.1 软件中心配置

    源这个概念可能对初学者比较陌生。大家都用过手机的应用市场吧,我们可以从应用市场下载APP在我们的手机上面便捷的使用,在Ubuntu系统下,我们也是有一个“应用市场”——apt。在我们需要下载程序的时候,sudo apt-get install 软件名即可进行安装。源,软件源,也就是这个软件仓库的数据,我们可以通过sudoapt-getupgrade更新我们的一个“应用市场”中已经安装好的所有软件;源列表呢,就是你这个“应用市场”里面都有哪些软件,是软件名称的一个列表。(PS:以上表述可能并不完全正确,但是对于初学者入门是足够的。有兴趣的朋友可自行查阅相关资料。)
    我们点击Ubuntu左下角的9个点,这个是类似于Windows键的一个功能,找到 softwave & update选项,打开。
    Ubuntu  softwave & update

    打开后按照下图进行配置(确保你的"restricted", “universe,” 和 "multiverse."前是打上勾的):
    软件中心配置
    配置完成后就可以关闭该窗口了。

    2.2 添加源(注)



    注:底下演示为默认的国外源,若网络不佳则可将其替换为国内源,教程在我另一篇博客《ROS替换国内源》(链接)


    打开一个控制台(快捷键:Ctrl + Alt + T), 输入如下指令::

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

    我们的Linux在安装软件的时候,需要通过源列表去寻找对应的一个软件,Ubuntu默认的软件列表是没有ROS的,我们需要把packags.ros.org这样的一个网站给配置到我们的软件仓库列表内才能下载ROS,不然显示的是没有这个软件(因为你的软件列表,也就是源列表没有)。

    设置秘钥:。

    $ sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
    

    配置公网密钥,这一步是确保我们的系统认为这个路径是安全的,下载文件是没有问题的。不然下载的东西会立刻被清除掉。


    2.3 安装

    我们在加入了新的源之后,需要对源列表进行一次更新,在终端输入sudo apt-get update即可进行更新。

    $ sudo apt-get update
    

    然后我们就可以安装 ROS 啦,但是问题又出现了,ROS kinetic 也有很多版本,这里选择是是安装桌面完整版。

    $ sudo apt-get install ros-kinetic-desktop-full
    

    OK,指令敲完,就可以整把游戏消遣消遣了,坐等ROS安装完成。




    在这里插入图片描述


    OK~,现在就当大家安装完了,而且一切顺利,没有BUG出现...

    安装完成后,可以用下面的命令来查看可使用的包:

    $ apt-cache search ros-kinetic
    

    别急,到现在虽然基本是安装完了,但是,还不能用ROS哦。😅

    2.4 配置ROS环境到系统

    首先呢,需要先初始化 rosdep,rosdep 让你能够轻松地安装被想要编译的 源代码,或被某些 ROS 核心组件需要的系统依赖。 在终端依次输入下面指令。

    $ sudo rosdep init
    $ rosdep update
    

    注意:安装ROS初始化rosdep步骤时,如果出现找不到命令错误解决办法看《sudo: rosdep:找不到命令》这篇文章。

    在这里插入图片描述

    在这个位置一定保持网络良好,不然一定会失败。


    然后初始化环境变量:
    $ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
    $ source ~/.bashrc
    

    关于ROS的启动,我们需要在启动终端窗口的时候,生效一下我们的ROS功能内径, 但是每次打开一个窗口手动生效依次很麻烦,所有我们将需要生效的内容放在~/.bashrc文 件内,这样在每次启动终端的时候就可以自动生效了。记得执行source ~/.bashrc更新一下 当前的环境变量哈。



    三、验证ROS

    在ROS环境安装好了以后,相信你一定迫不及待的要体验一下ROS系统了吧!不过不要着急,机器人系统的设计是需要大量的时间和精力的,在这里我们先使用一个ROS的欢迎程序来向大家展示我们的ROS系统。
    ROS系统的启动需要一个ROS Master,即节点管理器,我们可以在终端输入roscore指令来启动ROS Master。

    $ roscore
    

    $ roscore


    然后我们来启动一个小海龟的例程。新打开一个终端,输入

    $ rosrun turtlesim turtlesim_node
    

    即可出现一个小海龟的画面。
    我们再打开一个终端,输入

    $ rosrun turtlesim turtle_teleop_key
    

    来启动键盘控制,通 过↑、↓、←、→来控制小乌龟的移动。
    我们可以看到,在小海龟的gui头“撞墙”的时候,我们的turtlesim_node节点(咳咳,概念型的请继续关注接下来的内容)会有提示数据的输出。
    在这里插入图片描述

    注意,要想键盘控制小海龟移动,首先键盘的焦点必须在rosrun turtlesim turtle_teleop_key的终端页面内


    我们可以再开启一个终端,查看一下节点关系和话题列表。
    $ rqt_graph
    

    在这里插入图片描述

    可以看到,是teleop_turtle发送了一个cmd_vel的数据给了turtlesim。



    一键三连
    懂我意思吧

    展开全文
  • ros教程V5版 余松

    2016-11-03 15:41:55
    ros教程V5版 余松版本
  • ROS教程v5图文并茂

    2015-04-21 14:54:40
    ROS教程v5图文并茂,5.x最新最全的教程
  • 带有ROS教程:在我的频道上查找视频 -------设置ROS_MASTER_URI -----------如果ROS Master在Raspberry Pi上运行,则需要设置export ROS_MASTER_URI = 如果您在本地主机上运行ROS Master,请设置export ROS_...
  • ros教程、课件

    2018-05-27 18:48:51
    在这ROS教程里,你将学到ROS的基本原理、基本操作和基本工具。
  • ROS教程(三):创建程序包及节点(图文)

    万次阅读 多人点赞 2020-12-10 14:36:10
    根据前篇教程已经创建好了工作空间,并已经成功生效了环境变量,接下来创建一个功能包 一、创建功能包 功能包的名字根据我们这个功能包的作用来命名。比如我现在的功能包是用来学习ROS的C++编程,那么我的功能包...

    ros教程:创建程序包


    前言

    ros教程:创建程序包
    根据前篇教程已经创建好了工作空间,并已经成功生效了环境变量,接下来创建一个功能包


    一、创建功能包

    功能包的名字根据我们这个功能包的作用来命名。比如我现在的功能包是用来学习ROS的C++编程,那么我的功能包名称就叫做learning_cplus。
    打开终端,输入下面指令。

    cd catkin_ws/src 
    catkin_create_pkg learning_cplus roscpp rospy std_msgs
    

    我们通过cd指令切换当前路径到src文件夹下,在该路径下使用catkin_create_pkg指令 来创建一个功能包。
    格式如下:catkin_create_pkg 功能包名称 依赖项1 依赖项2 ......

    依赖项是你的这个功能包依赖于哪些功能模块,比如该功能包,就导入了C++、Python和std_msgs(后面会有详细介绍)。

    然后返回到catkin_ws目录下进行编译。

    在这里插入图片描述在这里插入图片描述
    我们可以看到learning_cplus功能包在catkin_ws工作空间编译成功,我们生效一下环 境变量,通过roscd learning_cplus指令即可进入该功能包。

    目前我们的learning_cplus下有include(头文件)和src(源文件)两个文件夹,还有CMakelist.txt编译配置文件和package.xml功能包列表文件。
    到这里,我们的learning_cplus功能包创建结束。

    二、创建节点

    先进入learning_cplus功能包内,进入src文件夹内,创建一个发布节点。

    roscd learning_cplus 
    cd src 
    touch publisher.cpp
    

    在这里插入图片描述

    发布节点publisher.cpp内容如下。这里建议大家自行修改内容。

    #include "ros/ros.h" //导入ROS系统包含核心公共头文件 
    #include "std_msgs/String.h" //导入std_msgs/String消息头文件,这个是由std_m sgs包的string.msg文件自动生成。
    #include <sstream> 
    int main(int argc, char **argv) 
    { 
        ros::init(argc, argv, "talker"); //初始化ROS,指定节点名称为“talker”,节点 名称要保持唯一性。名称定义参考 
        ros::NodeHandle n; //实例化节点 
        ros::Publisher chatter_pub = n.advertise<std_msgs::String>("chatter", 1000); //发布一个消息类型为std_msgs/String,命名为chatter的话题。 
        //定义消息队列大小为1000,即超过1000条消息之后,旧的消息就会丢弃。
        ros::Rate loop_rate(10); //指定发布消息的频率,这里指10Hz,也即每秒10次 
        //通过 Rate::sleep()来处理睡眠的时间来控制对应的发布频率。 
        int count = 0; 
        while (ros::ok()) 
        { 
            /* 
            默认roscpp会植入一个SIGINT处理机制,当按下Ctrl‐C,就会让ros::ok()返回false, 那循环就会结束。 
            ros::ok() 返回false的几种情况: 
            SIGINT收到(Ctrl‐C)信号 
            另一个同名节点启动,会先中止之前的同名节点 
            ros::shutdown()被调用
            所有的ros::NodeHandles被销毁 
            */ 
            std_msgs::String msg; 
            std::stringstream ss; 
            ss << "hello world " << count; 
            msg.data = ss.str(); 
            //实例化消息msg, 定义字符串流“hello world”并赋值给ss, 最后转成为字符串赋值给 msg.data 
            ROS_INFO("%s", msg.data.c_str()); //输出调试信息 
            chatter_pub.publish(msg); //发布msg 
            ros::spinOnce(); 
            //不是必需的,但是保持增加这个调用,是好习惯 
            //如果程序里也有订阅话题,就必需,否则回调函数不能起作用 
            loop_rate.sleep(); 
            //根据之前ros::Rate loop_rate(10)的定义来控制发布话题的频率。定义10即为每秒1 0次
            ++count; 
        } 
        return 0; 
    }
    

    发布节点的功能就是发布hello world并跟一个计数。发布节点的名称叫做talker,发布 的话题名称叫做chatter,发布的内容是hello world + 计数。逻辑很清晰,就是从main函数,从上往下的执行,只要Master节点管理器不死,就会移植发布。

    有了发布节点,那么接下来我们需要做一个订阅节点来接收这些数据。我们订阅节点由 listener.cpp实现。

    roscd learning_cplus 
    cd src 
    touch listener.cpp
    

    订阅节点publisher.cpp内容如下。这里建议大家自行修改内容。

    #include "ros/ros.h" //导入ROS系统包含核心公共头文件 
    #include "std_msgs/String.h" //导入std_msgs/String消息头文件,这个是由std_m sgs包的string.msg文件自动生成。 
    /* 
    定义回调函数chatterCallback,当收到chatter话题的消息就会调用这个函数。
    消息通过boost shared_ptr(共享指针)来传递。 
    但收到消息,通过ROS_INFO函数显示到终端 
    */ 
    void chatterCallback(const std_msgs::String::ConstPtr& msg) 
    { 
        ROS_INFO("I heard: [%s]", msg‐>data.c_str()); 
    } 
    int main(int argc, char **argv) 
    { 
        ros::init(argc, argv, "listener"); //初始化ROS,指定节点名称为“listener” 
        ros::NodeHandle n; //实例化节点 
        ros::Subscriber sub = n.subscribe("chatter", 1000, chatterCallback); 
        /* 
        定义订阅节点,名称为chatter,指定回调函数chatterCallback 
        但收到消息,则调用函数chatterCallback来处理。 
        参数1000,定义队列大小,如果处理不够快,超过1000,则丢弃旧的消息 
        */ 
    
         ros::spin(); //调用此函数才真正开始进入循环处理,直到 ros::ok()返回false才停 止。
         return 0; 
     }
    

    订阅节点是检测到有chatter内容,需要去打印出来这个内容。由于是监听的,所以需要使用类似中断的方式,也就是信号回调来实现。
    还是老样子。初始化、实例化,然后检测chatter话题,如果有,跳到chatterCallBack 执行,没有就一直循环。

    三、修改CMakeList.txt

    我们的发布节点和订阅节点都已经写好,那么接下来就需要写CMakeList.txt。 首先是find_package依赖项,修改如下。:

    find_package(catkin REQUIRED COMPONENTS 
    roscpp 
    rospy 
    std_msgs
    message_generation
    )
    

    调用生成的消息修改如下。

    ## Generate added messages and services with any dependencies listed here 
    generate_messages( 
    DEPENDENCIES
    std_msgs 
    )
    

    个人编译输出配置修改如下。

    ################################### 
    ## catkin specific configuration ## 
    ################################### 
    ## The catkin_package macro generates cmake config files for your package 
    ## Declare things to be passed to dependent projects 
    ## INCLUDE_DIRS: uncomment this if your package contains header files 
    ## LIBRARIES: libraries you create in this project that dependent project s also need 
    ## CATKIN_DEPENDS: catkin_packages dependent projects also need 
    ## DEPENDS: system dependencies of this project that dependent projects a lso need 
    catkin_package( 
    # INCLUDE_DIRS include 
    # LIBRARIES learning_cplus
    CATKIN_DEPENDS roscpp rospy std_msgs message_runtime 
    # DEPENDS system_lib 
    )
    

    接着,在Build位置添加 如下内容。

    include_directories(include ${catkin_INCLUDE_DIRS}) 
    add_executable(publisher src/publisher.cpp) 
    target_link_libraries(publisher ${catkin_LIBRARIES}) 
    add_dependencies(publisher learning_cplus_generate_messages_cpp) 
    add_executable(listener src/listener.cpp) 
    target_link_libraries(listener ${catkin_LIBRARIES}) 
    add_dependencies(listener learning_cplus_generate_messages_cpp)
    

    四、配置package.xml文件

    配置内容很少,直接贴出package.xml代码。

    <?xml version="1.0"?> 
    <package format="2"> 
    <name>learning_cplus</name> 
    <version>0.0.0</version> 
    <description>这是学习ROS C++编程的功能包</description> 
    <maintainer email="xxxxx@xx.com">Leslie___Cheung_csdn</maintainer> 
    <license>TODO</license> 
    <author email="xxxxx@xx.com">Leslie___Cheung_csdn</author> 
    <buildtool_depend>catkin</buildtool_depend> 
    <build_depend>roscpp</build_depend> 
    <build_depend>rospy</build_depend> 
    <build_depend>std_msgs</build_depend> 
    <build_depend>message_generation</build_depend> 
    <build_export_depend>roscpp</build_export_depend> 
    <build_export_depend>rospy</build_export_depend> 
    <build_export_depend>std_msgs</build_export_depend> 
    <exec_depend>roscpp</exec_depend>
    <exec_depend>rospy</exec_depend>
    <exec_depend>std_msgs</exec_depend>
    <exec_depend>message_runtime</exec_depend> 
    <export> 
    </export> 
    </package>
    

    五、编译并执行

    1.编译

    打开一个终端,进入catkin_ws路径,执行catkin_make进行编译。如果没写错的话,看到的应该是这样的。
    在这里插入图片描述

    编译成功记得重新source一下,不然可能找不到这个功能包。

    2.执行

    先启动一个ROS Master节点管理器,然后分别启动listener订阅节点和publisher发布节点,在这里需要启动三个终端。

    启动ROS Master节点管理器。
    roscore
    启动listener订阅节点。
    rosrun learning_cplus listener
    启动publisher发布节点。
    rosrun learning_cplus publisher
    在这里插入图片描述
    这样看着不够直观,启动一下节点关系图,它是这样的。
    在这里插入图片描述
    可以看到,talker节点给lisrener节点发了一个chatter。但是应该是publisher给,这里怎么成talker了呢?不要急,先去看一下publisher.cpp的代码,原来是我们初始化的节点叫做talker,并不是BUG~~~
    到这里就结束了吗?并没有,接下来给大家介绍一些ROS的小工具,比如上面的rqt_graph就是来查看当前各个节点通讯关系的。

    六、rostopic工具

    拿到了一个别人的ROS功能包只能用却无法和自己的对接数据?没关系,运行一下它的功能包,开一个rqt_graph,一目了然。

    咳咳,重点来了,接下来我要说的小工具是rostopic。

    rostopic list:查看当前话题都有哪些。 
    rostopic echo 话题名:查看该话题的数据。
    rostopic pub 话题名 功能包数据:发布指定内容到指定话题。
    

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


    总结(最重要的)

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

    展开全文
  • ROS教程v5_中文教程

    2013-04-05 19:47:05
    ROS v5教程v5_中文教程,非常好是学习ROS的好书
  • Ubuntu20.04/18.04配置ROS系统及报错解决

    最近在配置ROS环境时遇到了一些问题,遂在本文做个记录。主要解决了如何通过虚拟机的方式实现ROS的配置。

    环境:
    宿主机:Windows10
    双系统:Ubuntu18.04
    虚拟机:Ubuntu20.04
    


    1.虚拟机安装 Ubuntu20.04

    1.1 安装VMware Workstation 16 Pro

    下载地址:https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html

    在这里插入图片描述
    最后一步选择第一项,输入激活密钥


    1.2 下载Ubuntu20.04镜像

    下载地址:http://releases.ubuntu.com/focal/

    在这里插入图片描述
    直接下载镜像比较慢,使用迅雷通过种子下载比较快。


    1.3 安装Ubuntu20.04虚拟机

    选择创建新的虚拟机
    在这里插入图片描述
    选择自定义
    在这里插入图片描述
    选择:
    在这里插入图片描述
    选择下载的镜像.iso文件
    在这里插入图片描述
    输入信息
    在这里插入图片描述
    选择安装位置
    在这里插入图片描述
    根据本机情况设置
    在这里插入图片描述
    选择推荐虚拟内容容量
    在这里插入图片描述
    使用桥接连接网络

    使用校园网拨号上网,Ubuntu18以后不支持拨号,配置PPPOE不管用,设置桥接可以上网。
    在这里插入图片描述

    默认选项
    在这里插入图片描述

    SCSI控制器的英文名称是“Small Computer System Interface”,中文翻译为"小型计算机系统专用接口";顾名思义,这是为了小型计算机设计的扩充接口,它可以让计算机加装其他外设设备以提高系统性能或增加新的功能,例如硬盘、光驱、扫描仪等。

    在这里插入图片描述
    选择
    在这里插入图片描述
    设置磁盘容量
    在这里插入图片描述
    默认
    在这里插入图片描述
    默认
    在这里插入图片描述
    等待安装
    在这里插入图片描述

    右击左侧边栏的虚拟机,选择设置,选择NAT模式,这样就把win10下的网络桥接到虚拟机系统了。
    在这里插入图片描述


    2. Win10、Ubuntu双系统

    虚拟机耗内存,有卡顿,使用体验不好,装双系统使用体验更好。

    这部分之前配置过了,不再赘述。相关教程比较多,对照着配置一般不会出问题。可能出问题的地方是开机界面卡死,主要是安装显卡驱动不正确导致的。

    之前配置的教程记录:

    2.1 Ubuntu16.04配置

    基于 Ubuntu 16.04 从零开始配置深度学习主机(一)–基础配置
    基于 Ubuntu 16.04 从零开始配置深度学习主机(二)–显卡驱动\CUDA\CUDNN配置
    基于 Ubuntu 16.04 从零开始配置深度学习主机(五)–Darknet配置与训练

    2.2 Ubuntu18.04配置

    Ubuntu18.04下 GPU版本 Tensorflow2.0+CUDA10.0 / Tensorflow2.1+CUDA10.1 虚拟环境配置


    3. Ubuntu18.04 配置ROS

    3.1 创建虚拟环境 virtualenv

    安装虚拟环境及扩展包:

    pip install virtualenv
    pip install virtualenvwrapper
    

    创建用来存放虚拟环境的目录:

    //home目录下运行
    mkdir .virtualenvs
    //非home目录下运行
    mkdir ~/.virtualenvs
    

    编辑home目录下的.bashrc文件,添加下面两行内容:

    //打开.bashrc文件命令
    //vi ~/.bashrc 或者 nano ~/.bashrc
    export WORKON_HOME=$HOME/.virtualenvs
    export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
    export VIRTUALENVWRAPPER_VIRTUALENV=~/.local/bin/virtualenv
    source ~/.local/bin/virtualenvwrapper.sh
    

    注:ubuntu18及以上版本,virtualenvwrapper.sh被安装到了home目录下的.local/bin/中,非原来的/usr/local/bin/中。
    在这里插入图片描述

    运行.bashrc,使其生效

    //home目录下运行
    source .bashrc
    //非home目录下运行
    //source ~/.bashrc
    

    创建虚拟环境

    //创建pyhton2的虚拟环境
    mkvirtualenv name
    //创建python3的虚拟环境
    mkvirtualenv -p python3 name
    

    激活虚拟环境

    workon name
    

    退出虚拟环境

    deactivate
    

    查看虚拟环境中的包

    pip list
    

    查看所有虚拟环境:

    lsvirtualenv
    

    删除虚拟环境

    rmvirtualenv name
    

    卸载虚拟环境

    sudo apt-get remove virtualenv
    sudo apt-get remove virtualenvwrapper
    

    3.2 配置ROS软件仓库

    创建虚拟环境:

    mkvirtualenv -p python3 ros
    

    激活虚拟环境

    workon ros
    

    配置Ubuntu软件仓库(repositories)以允许使用“restricted”“universe”和“multiverse”存储库。

    设置电脑以安装来自packages.ros.org的软件。

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

    若下载速度缓慢,推荐就近选择一个镜像源替换上面的命令。例如,Tsinghua University为:

    sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubuntu/ `lsb_release -cs` main" > /etc/apt/sources.list.d/ros-latest.list'
    

    如果依旧遇到连接问题,请尝试为Ubuntu apt换源

    设置密钥

    sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
    

    若无法连接到密钥服务器,可以尝试替换上面命令中的 hkp://keyserver.ubuntu.com:80hkp://pgp.mit.edu:80

    Linux在安装软件时,需要通过源列表去寻找对应的软件,Ubuntu默认的软件列表是没有ROS的,需要把packags.ros.org网站配置到软件仓库列表内才能下载ROS,不然显示的是没有这个软件。

    配置公网密钥,这一步是确保系统认为这个路径是安全的,下载文件是没有问题的。不然下载的东西会立刻被清除掉。


    3.3 安装 ROS

    首先,确保你包索引是最新的:

    sudo apt update
    

    在 ROS 中有很多不同的库和工具。ROS提供了四种默认选项。你也可以单独安装 ROS 的软件包。

    桌面完整版(推荐): : 包含 ROS、rqt、rviz、机器人通用库、2D/3D 模拟器、导航以及 2D/3D 感知包。

    sudo apt install ros-melodic-desktop-full
    

    桌面版: 包含 ROS,rqt,rviz 和机器人通用库

    sudo apt install ros-melodic-desktop
    

    ROS-基础包: 包含 ROS 包,构建和通信库。没有图形界面工具。

    sudo apt install ros-melodic-ros-base
    
    

    单独的包: 你也可以安装某个指定的ROS软件包(使用软件包名称替换掉下面的PACKAGE):

    sudo apt install ros-melodic-PACKAGE
    

    如:

    sudo apt install ros-melodic-slam-gmapping
    

    3.4 初始化 rosdep

    在使用 ROS 之前,需要初始化 rosdep。rosdep 能够轻松地安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖。

    sudo apt install python-rosdep2
    
    sudo rosdep init
    

    执行成功之后,提示输入以下指令:

    rosdep update
    

    如果出现Error,可能是网络导致的,多执行几次命令即可。

    在这里插入图片描述
    在这里插入图片描述
    添加到环境变量:

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

    启动:

    roscore
    

    3.5 报错解决

    由于网络原因, 可能会报以下错误:

    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.
    

    在这里插入图片描述
    解决办法,执行如下命令:

    cd /etc
    sudo nano hosts
    

    在文件末尾添加:

    151.101.84.133 raw.githubusercontent.com
    

    然后查询raw.githubusercontent.com的IP地址,并替换151.101.84.133

    raw.githubusercontent.com resolves to the following 4 IPv4 addresses:
    185.199.108.133
    185.199.109.133
    185.199.110.133
    185.199.111.133
    

    如果遇到有些包下载不完全,之后又重新 sudo rosdep init 时,可能会遇到如下错误:

    ERROR: default sources list file already exists:
    /etc/ros/rosdep/sources.list.d/20-default.list
    Please delete if you wish to re-initialize
    

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210409183144963.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl8zOTY1Mzk0OA==,size_16,color_FFFFFF,t_70#pic_center

    解决办法,执行如下命令:

    sudo rm /etc/ros/rosdep/sources.list.d/20-default.list
    

    然后再重新运行命令 sudo rosdep init 即可解决。
    在这里插入图片描述
    .增加TIMEOUT时间

    sudo gedit /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py
    

    搜索

    DOWNLOAD_TIMEOUT=45.0
    

    3.6 rosdep update time out error(未解决)

    困扰了我四五天,现在还没解决。

    尝试过手机热点,安卓和ios都不行,校园网不可以。

    尝试配置拨号连连接,未成功。

    尝试Science上网,SS和CLASH均配置失败。

    遂暂时用虚拟机配置···


    在虚拟机上解决了该问题,大概思路就是:通过桥接网络,在宿主机器上科学上网,通过配置虚拟机的proxy,实现虚拟机的科学上网。


    4. Ubuntu20.04虚拟机配置ROS(成功!)

    4.1 换源

    参考:https://zhuanlan.zhihu.com/p/142014944

    备份:

    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
    

    打开/etc/apt/sources.list文件,在前面添加如下条目,并保存。

    sudo gedit /etc/apt/sources.list
    
    #添加阿里源
    deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
    #添加清华源
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse multiverse
    

    更新源

    sudo apt-get update
    

    如出现依赖问题,解决方式如下:

    sudo apt-get -f install
    

    更新软件:

    sudo apt-get upgrade
    

    4.2 基础软件安装

    1. chrome下载:https://www.google.cn/chrome/

    2. 搜狗拼音下载:https://pinyin.sogou.com/linux/?r=pinyin

    安装参考:

    1. https://www.linuxprobe.com/ubuntu20-04-install-sogou.html
    2. https://pinyin.sogou.com/linux/help.php

    在这里插入图片描述


    1. 网易云下载:https://music.163.com/#/download

    错误:Gtk-Message: 03:59:19.540: Failed to load module "canberra-gtk-module"

    解决:

    sudo apt-get install libcanberra-gtk-module
    

    启动:

    • 切换: cd /usr/bin
    • 执行:./netease-cloud-music

    1. Typora
      参考:https://typora.io/#linux
    # or run:
    # sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys BA300B7755AFCFAE
    
    wget -qO - https://typora.io/linux/public-key.asc | sudo apt-key add -
    
    # add Typora's repository
    
    sudo add-apt-repository 'deb https://typora.io/linux ./'
    
    sudo apt-get update
    
    # install typora
    
    sudo apt-get install typora
    

    4.3 配置ROS环境

    参考CH3.1——CH3.5

    4.3.1 安装显卡驱动

    参考:Ubuntu20.04显卡驱动安装

    4.3.2 安装虚拟环境

    sudo apt install python3-pip
    pip3 install virtualenvwrapper
    

    4.3.3 安装noetic(对应ubuntu20.04)

    参考:在Ubuntu20.04中安装ROS Noetic

    sudo apt update
    
    sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
    
    sudo apt install ros-noetic-desktop-full
    

    在使用 ROS 之前,需要初始化 rosdep。rosdep 能够轻松地安装被想要编译的源代码,或被某些 ROS 核心组件需要的系统依赖。

    sudo apt install python3-rosdep
    
    sudo rosdep init
    

    报错:

    (ros) datazero@ubuntu:~$ sudo rosdep init
    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.
    

    解决:

    cd /etc
    sudo nano hosts
    

    在文件末尾添加:

    151.101.84.133 raw.githubusercontent.com
    

    然后查询raw.githubusercontent.com的IP地址,并替换151.101.84.133

    raw.githubusercontent.com resolves to the following 4 IPv4 addresses:
    185.199.108.133
    185.199.109.133
    185.199.110.133
    185.199.111.133
    

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

    执行成功之后,提示输入以下指令:

    rosdep update
    

    报错:

    reading in sources list data from /etc/ros/rosdep/sources.list.d
    ERROR: error loading sources list:
    	The read operation timed out
    

    在这里插入图片描述
    我是校园网,如果依然报错,请尝试桥接!!!!!!具体解决如下:


    4.4 通过桥接解决 rosdep update time out error

    过程如下(按顺序):

    4.4.1 虚拟机选择桥接(校园网选择NAT):

    在这里插入图片描述

    4.4.2 打开 allow lan:

    设置端口号,clash默认为7890。

    4.4.3 宿主机查看ip地址:

    打开cmd,ipconfig查看宿主机ipv4地址(一般为第一部分内容之中的ipv4地址):
    在这里插入图片描述

    4.4.4 Ubuntu设置proxy:

    在这里插入图片描述

    4.4.5 Ubuntu安装proxychains

    在ubuntu命令行使用代理,需要安装proxychains:

    sudo apt-get install proxychains
    

    配置端口:

    sudo nano /etc/proxychains.conf
    

    添加以下内容:

    socks5 宿主机ip地址 端口号
    

    例如:
    在这里插入图片描述设置软链接
    首先查找文件

    find /usr/lib/ -name libproxychains.so.3 -print
    

    在这里插入图片描述

    将查找到的内容复制,对下述文件进行修改:

    sudo gedit /usr/bin/proxychains
    

    在这里插入图片描述

    宿主机不要选择全局模式,而要选择RULE模式。
    如果要使用代理,命令行中的命令前添加proxychains即可!


    运行命令:

    proxychains rosdep update
    

    成功解决如图:
    在这里插入图片描述


    4.5 测试小海龟

    运行:

    roscore
    

    在这里插入图片描述
    测试:打开第二个终端,运行如下命令,出现一只小海龟

    rosrun turtlesim turtlesim_node
    

    如果希望小海龟移动,打开第三个终端,并运行:

    rosrun turtlesim turtle_teleop_key
    

    然后在运行该命令的命令行窗口选中的情况下,使用键盘的上下左右控制小海龟运动。

    如图:

    在这里插入图片描述至此安装成功!!!


    参考:

    1. ROS基础系列教程2:ROS环境的搭建
    2. 在 Ubuntu 中安装 ROS Melodic
    3. Ubuntu18.04安装ROS Melodic
    4. Ubuntu20.04安装virtualenv方法
    5. ROS初始化 sudo rosdep init失败
    6. VMware虚拟机走主机代理
    7. 【VM/VBOX】使用桥接和NAT布置代理,实现虚拟机利用宿主机局域网共享
    展开全文
  • ros教程.rar

    2019-05-14 16:58:26
    包含ros介绍以及Linux下安装配置ros系统,并且列举出了一些错误,同时所有的ros操作,命令全部涵盖
  • 一个国外的ROS教程ppt

    2018-07-17 20:30:14
    这是一个讲解很清晰的ROS入门教程。其网址:https://www.cs.princeton.edu/courses/archive/fall11/cos495/
  • ros教程:创建工作空间 文章目录 前言 一、工作空间? 二、创建一个工作空间 1.创建目录 2.编译 前言 使用catkin创建一个工作空间 一、工作空间? 在ROS系统下,我们所有的项目都放在一个工作空间下,我们在工作空间...

    ros教程:创建工作空间


    前言

    使用catkin创建一个工作空间


    一、工作空间?

    在ROS系统下,我们所有的项目都放在一个工作空间下,我们在工作空间下建立不同的功能包来实现不同的功能。这些功能包可以是你自己写的,也可以是你移植其他人的。

    二、创建一个工作空间

    1.创建目录

    我们需要创建一个工作空间目录,并进入到这个工作空间下。我的工作空间名字叫 catkin_ws(跟着ros官网的例子创建的)。打开终端执行以下代码。:

    mkdir ‐p ~/catkin_ws/src 
    cd catkin_ws
    

    2.编译

    在进入工作空间后,我们需要先对工作空间进行编译。指令如下。

    catkin_make
    

    编译成功后的catkin_ws文件夹内,会出现build和devel文件夹,这个是编译生成的。src文件夹内放的是各个功能包,build文件夹内放的是编译项,devel则是编译输出项。

    在这里插入图片描述
    工作空间

    此时我们需要把当前工作空间的一个环境变量添加到我们的系统当中。这个文件在devel下面的setup.bash,为了一劳永逸的解决这个这个问题,我们还是在~/.bashrc终端配置文件下添加该内容。

    source /home/username/catkin_ws/devel/setup.bash
    

    可以使用gedit ~/.bashrc打开文件,然后将上面这句代码贴至最底部

    在这里插入图片描述在这里插入图片描述
    在这里我们可以看到,ros系统的环境和catkin_ws工作空间的环境,都已经生效。我们 的工作空间创建到此结束。


    一键三连
    懂我意思吧

    展开全文
  • ROS1教程(韩文) ROS安装 rospy教程 1.初学者水平 参数使用情况日志收集 Python路径设置 numpy的用法 2.中级 发布消息 压缩图像发布者/订阅者 3.机器人控制 1.turtlesim 2. Turtlebot 3 左右旋转 移至目标点1 移...
  • ROS教程学习及Linux学习

    千次阅读 2018-09-10 11:50:36
    1.Linux中如何使用vim编辑器? 使用vim filename进行编辑,例如要对package.xml文件进行编辑,那么在终端cd到指定的文件目录下,vim package.xml即可。刚开始其为命令模式,无法对文件进行...2.ROS基础教程(创建R...
  • irvs_ros_tutorials ros教程
  • ROS教程

    2018-01-09 11:25:45
    ROS教程 Non-Beginners: If you’re already familiar enough with ROS fuerte or earlier versions and only want to explore the new build system introduced in groovy and used in hydro and la
  • Linux安装ros教程(Ubuntu 18.04)

    千次阅读 2020-05-05 17:04:52
    Linux安装ros详细教程(很实用) 前段时间在B站刷到SLAM建图的小车,顿时对机器人产生了兴趣,但今年也没有时间深入去学,就想着先在虚拟机里安装ros,跑个小乌龟先。在网上搜了很多教程,但还是踩了很多的坑,所以...
  • 一、环境搭建 ...下载openai_ros git clone https://bitbucket.org/theconstructcore/openai_ros.git openai_ros相关的依赖: message_runtime rospy gazebo_msgs std_msgs geometry_msgs controller...
  • 入门ROS教程与视频汇总(kinetic)

    万次阅读 2017-02-14 22:14:00
     http://v.youku.com/v_show/id_XMjUxMTc5MzE5Mg注意下面是机器翻译结果~MooreRobots博客关于博客文章【概述】获得通过模拟在ROS与自主机器人开始2016/09/27 15:33[教程]在ROS硬件机器人的闭环控制(部分5)201
  • ROS 教程

    千次阅读 2017-06-15 12:20:37
    ROS 教程 http://wiki.ros.org/ROS/Tutorials http://wiki.ros.org/ROS/Tutorials/InstallingandConfiguringROSEnvironment Install ROS sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $...
  • ROS与SLAM入门教程.pdf

    2019-10-05 22:43:30
     介绍主要利用 turtlebot2 来做建图和定位移动平台实现各种 SLAM 方法,加深具体实现算法理解  介绍 hector_slam 的雷达 SLAM 实现  介绍 gmapping 的雷达和深度相机的 SLAM 实现  介绍 Google Cartographer...
  • ROS教程及一些防火墙规则和IP限速脚本.pdf
  • ROS教程及一些防火墙规则和IP限速脚本实用.pdf
  • 利用Python编写的ROS_by_example系列教程ROS_by_example_groovy___volume_1 英文资料,
  • ROS教程 004】ROS的调试

    千次阅读 2018-01-16 19:59:02
    需要特别说明:ROS版本必须与Ubuntu系统版本匹配 实验环境: ROS Fuerte Ubuntu 12.04 ROS软件框架附带了大量功能强大的工具,包括调试工具、数据可视化工具、系统监测组件。ROS提供了一系列通用绘图工具,其中...
  • Vmware搭载ubuntu18.04虚拟机配置ROS教程

    千次阅读 2018-07-23 02:20:25
    首先配置虚拟机在这里就不赘述啦~~直接开始配置ROS,并运行小乌龟程序~~ 开始配置 1.更改软件源,打开Ubuntu Software,在EDIT里面讲将设置改为以下形式   2.设置sources.list 将电脑设置为接受来自packages...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,473
精华内容 6,589
关键字:

ros教程

友情链接: f_ikine001.zip