ROS2GO之慕课《机器人操作系统入门》配置与使用(2018-2019-2)

ROS2GO之慕课《机器人操作系统入门》配置与使用(2018-2019-2)

icourse163中国大学MOOC《机器人操作系统入门》第二次开课!

新版本地址

Update:2019/7

开课时间: 2018年11月20日 ~ 2019年02月12日  学时安排: 1-3小时每周

预备知识

    基本Linux操作

    C++与Python编程基础


证书要求

评分:

课程满分100分。

平时测验占60%(每周单元测试);

课程讨论(讨论只能对在“课堂讨论”中回复教师的帖子计分)占10%;

期末测验占30%。

证书:

60-80分获得合格证书,80-100分获得优秀证书。

----

使用ROS2GO可以快速开启《机器人操作系统入门》的学习旅程。

(全部环境配置只需不到5分钟和10行命令)

1. 安装catkin工具

$ sudo apt install python-catkin-tools

方便使用catkin build等。

 

2. 更新Gazebo7到最新版本

tianbot@ros2go:~$ gazebo -v
Gazebo multi-robot simulator, version 7.0.0
Copyright (C) 2012-2016 Open Source Robotics Foundation.
Released under the Apache 2 License.
http://gazebosim.org
----具体过程----

$ sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'

$ wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -

$ sudo apt-get update

$ sudo apt-get upgrade

安装完成后,查看一下:

 

3. 编译源代码

新建BeginnersROS_ws/src文件下,并下载源代码:

$ git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git

等待下载完成,或者下载安装包解压放入对应文件夹:

安装教学功能包对应的依赖选项:

$ rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y

有可能会出现提示?如下:

tianbot@ros2go:~/BeginnersROS_ws$ rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y

ERROR: your rosdep installation has not been initialized yet.  Please run:

    rosdep update

输入:rosdep update,等待完成。

再次输入:rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y

确保所有依赖都完成安装!!!

编译::使用catkin_make或catkin build。

耐心等待编译全部完成!

 

4. 配置与使用

更新环境,或写入.bashrc:

tianbot@ros2go:~/BeginnersROS_ws$ source devel/setup.bash

测试:

在每个学习功能包文件夹中,仔细阅读README.md。robot_sim_demo如下:

查看:

运行并使用:

$ roslaunch robot_sim_demo robot_spawn.launch

速度非常快!!!

启动键盘控制机器人:

$ rosrun robot_sim_demo robot_keyboard_teleop.py

更多案例,请学习对应课程视频并认真阅读源码。

----

----Github原版介绍----

《机器人操作系统入门》课程代码示例

前言

欢迎来到中国大学MOOC ---《机器人操作系统入门》课程,本ROS软件包是课程的代码示例,课程中使用的例子均出自本代码包。除了代码包,课程还提供讲义,欢迎各位朋友下载、学习和分享。

本示例包含了XBot机器人和中科院软件博物馆仿真、ROS通信示例程序、导航与SLAM功能演示,在每个软件包下都有相应的功能介绍。

如果你遇到任何问题,可以在Github上方的issues栏目中提问,我们课程团队会耐心回答。本示例将长期维护,不断更新,如果你认可我们的工作,请点击右上角的star按钮,您的鼓励是我们的动力。
示例介绍

本仓库为ROS入门教程的代码示例,包括以下ROS软件包:
软件包     内容
robot_sim_demo     机器人仿真程序,大部分示例会用到这个软件包
topic_demo     topic通信,自定义msg,包括C++和python两个版本实现
service_demo     service通信,自定义srv,分别以C++和python两种语言实现
action_demo     action通信,自定义action,C++和python两种语言实现
param_demo     param操作,分别以C++和python两种语言实现
msgs_demo     演示msg、srv、action文件的格式规范
tf_demo     tf相关API操作演示,tf示例包括C++和python两个版本
name_demo     演示全局命名空间和局部命名空间下参数的提取
tf_follower     制作mybot机器人 实现mybot跟随xbot的功能
urdf_demo     创建机器人urdf模型,在RViz中显示
navigation_sim_demo     导航演示工具包,包括AMCL, Odometry Navigation等演示
slam_sim_demo     同步定位与建图演示,包括Gmapping, Karto, Hector等SLAM演示
robot_orbslam2_demo     ORB_SLAM2的演示
ros_academy_for_beginners     Metapacakge示例,依赖了本仓库所有的pacakge
下载和编译

    克隆或下载ROS-Academy-for-Beginners教学包到工作空间的/src目录下,例如 ~/catkin_ws/src

$ cd ~/catkin_ws/src
$ git clone https://github.com/DroidAITech/ROS-Academy-for-Beginners.git

    安装教学包所需的依赖

$ cd ~/catkin_ws
$ rosdep install --from-paths src --ignore-src --rosdistro=kinetic -y

    编译并更新环境

$ catkin_make
$ source ~/catkin_ws/devel/setup.bash

    运行示例

运行须知

    建议在本地Ubuntu 16.04下运行仿真程序。目前Gazebo模拟器的兼容性是一大问题,在虚拟机或配置较低的电脑上可能无法运行。如果你的显卡是N卡,建议安装Ubuntu下的显卡驱动。

    运行Gazebo仿真程序robot_sim_demo前,请将Gazebo升级到7.x版本以上(推荐7.9版本)。

查看Gazebo版本方法

$ gazebo -v   #确认7.0以上,推荐7.9

升级方法

$ sudo sh -c 'echo "deb http://packages.osrfoundation.org/gazebo/ubuntu-stable `lsb_release -cs` main" > /etc/apt/sources.list.d/gazebo-stable.list'
$ wget http://packages.osrfoundation.org/gazebo.key -O - | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install gazebo7

确保所有依赖都已安装,如gazebo_ros, gmapping, slam_karto, amcl。

----

Fin

----

目錄 前言 第一章 ROS简介 机器人时代的到来 ROS发展历程 什么是ROS 安装ROS 安装ROS-Academy-for-Beginners教学包 二进制与源码包 安装RoboWare Studio 单元测试一 第二章 ROS文件系统 Catkin编译系统 Catkin工作空间 Package软件包 CMakeLists.txt package.xml Metapacakge软件元包 其他常见文件类型 单元测试二 第三章 ROS通信架构(一) Node & Master Launch文件 Topic Msg 常见msg类型 单元测试三 第四章 ROS通信架构(二) Service Srv Parameter server 11.5.4 1.5.5 1.5.6 1.5.7 1.6 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.7 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.8 1.8.1 1.8.2 1.8.3 1.8.4 1.9 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.6.1 1.9.6.2 Action 常见srv类型 常见action类型 单元测试四 第五章 常用工具 Gazebo RViz Rqt Rosbag Rosbridge moveit! 单元测试五 第六章 roscpp Client Library与roscpp 节点初始、关闭与NodeHandle Topic in roscpp Service in roscpp Param in roscpp 时钟 日志与异常 第七章 rospy Rospy与主要接口 Topic in rospy Service in rospy Param与Time 第八章 TF与URDF 认识TF TF消息 tf in c++ tf in python 统一机器人描述格式 附录:TF数学基础 三维空间刚体运动---旋转矩阵 三维空间刚体运动---欧拉角 21.9.6.3 1.10 1.10.1 1.10.2 1.10.3 1.10.4 1.11 1.11.1 1.11.2 1.11.3 1.11.4 1.12 1.12.1 1.12.2 1.12.3 1.12.4 1.12.5 1.12.6 1.12.7 1.12.8 1.12.9 1.12.10 1.12.11 1.12.12 1.12.13 1.12.14 1.12.15 1.12.16 三维空间刚体运动---四元数 第九章 SLAM 地图 Gmapping Karto Hector 第十章 Navigation Navigation Stack move_base costmap Map_server & Amcl 附录:Navigation工具包说明 amcl local_base_planner carrot_planner clear_costmap_recovery costmap_2d dwa_local_planner fake_localization global_planner map_server move_base_msg move_base move_slow_and_clear navfn nav_core robot_pose_ekf rotate_recovery 3中国大学MOOC---《机器人操作系统入门》 课 程讲义
ROS2编程基础课程文档 ROS 2(机器人操作系统2)是用于机器人应用的开源开发套件。ROS 2之目的是为各行各业的开发人员提供标准的软件平台,从研究和原型设计再到部署和生产。 ROS 2建立在ROS 1的成功基础之上,ROS 1目前已在世界各地的无数机器人应用中得到应用。 特色 缩短上市时间 ROS 2提供了开发应用程序所需的机器人工具,库和功能,可以将时间花在对业务非常重要的工作上。因为它 是开源的,所以可以灵活地决定在何处以及如何使用ROS 2,以及根据实际的需求自由定制,使用ROS 2 可以大幅度提升产品和算法研发速度! 专为生产而设计 凭借在建立ROS 1作为机器人研发的事实上的全球标准方面的十年经验,ROS 2从一开始就被建立在工业级 基础上并可用于生产,包括高可靠性和安全关键系统。 ROS 2的设计选择、开发实践和项目管理基于行业利 益相关者的要求。 多平台支持 ROS 2在Linux,Windows和macOS上得到支持和测试,允许无缝开发和部署机器人自动化,后端管理和 用户界面。分层支持模型允许端口到新平台,例如实时和嵌入式操作系统,以便在获得兴趣和投资时引入和推 广。 丰富的应用领域 与之前的ROS 1一样,ROS 2可用于各种机器人应用,从室内到室外、从家庭到汽车、水下到太空、从消费 到工业。 没有供应商锁定 ROS 2建立在一个抽象层上,使机器人库和应用程序与通信技术隔离开来。抽象底层是通信代码的多种实现, 包括开源和专有解决方案。在抽象顶层,核心库和用户应用程序是可移植的。 建立在开放标准之上 ROS 2中的默认通信方法使用IDL、DDS和DDS-I RTPS等行业标准,这些标准已广泛应用于从工厂到航空 航天的各种工业应用中。 开源许可证 ROS 2代码在Apache 2.0许可下获得许可,在3条款(或“新”)BSD许可下使用移植的ROS 1代码。这两个 许可证允许允许使用软件,而不会影响用户的知识产权。 全球社区 超过10年的ROS项目通过发展一个由数十万开发人员和用户组成的全球社区,为机器人技术创建了一个庞大 的生态系统,他们为这些软件做出贡献并进行了改进。 ROS 2由该社区开发并为该社区开发,他们将成为未 来的管理者。 行业支持 正如ROS 2技术指导委员会成员所证明的那样,对ROS 2的行业支持很强。除了开发顶级产品外,来自世界 各地的大大小小公司都在投入资源为ROS 2做出开源贡献。 与ROS1的互操作性 ROS 2包括到ROS 1的桥接器,处理两个系统之间的双向通信。如果有一个现有的ROS 1应用程序, 可 以通过桥接器开始尝试使用ROS 2,并根据要求和可用资源逐步移植应用程序。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhangrelay

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

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

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

打赏作者

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

抵扣说明:

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

余额充值