2017年7月ROS学习资料小结

最新推荐文章于 2025-11-09 17:59:39 发布
翻译 最新推荐文章于 2025-11-09 17:59:39 发布 · 6.1k 阅读
· 2
· 6
文章标签:

#ROS

《孙子兵法·谋攻篇》:“上兵伐谋,其次伐交,其次伐兵,其下攻城;攻城之法为不得已。”

任何发生在自己国土上的战争,即便胜利,也饱含屈辱。

----~~~~----Gazebo 8

使用ROS / Gazebo版本的组合

介绍

本文档概述了使用不同版本的ROS与不同版本的Gazebo结合使用的选项。建议在安装Gazebo ROS包装机之前阅读它。

重要!简单分析一个快速正确的决定

如果您计划使用特定版本的ROS,并且没有理由使用特定版本的Gazebo,则应继续 安装gazebo_ros_pkgs 教程,该教程说明如何通过ROS安装完全支持的Gazebo版本。

警告:请注意,使用与ROS存储库交付的官方版本不同的Gazebo版本可能会导致ROS程序包的冲突或其他集成问题。

Gazebo版本和ROS集成

Gazebo是一个独立的项目,如boost,ogre或ROS使用的任何其他项目。通常,在每个ROS发行周期开始时(例如gazebo7ROS Kinetic)提供的Gazebo的最新主要版本被选为完全集成和支持的官方Gazebo,并将在ROS发行的整个生命周期中保留。

Gazebo开发与ROS不同步,所以每个新的主要版本的Gazebo必须在ROS发布之前被释放。以下部分介绍如何使用不同版本的Gazebo的ROS。

需要注意的是GazeboABI稳定政策遵循 语义版本理念,其中具有相同的主号码(所有版本,, ,...)使用相同的ROS发行时是二进制兼容的,因此可以互换。gazebo_6.0.0gazebo_6.1.0gazebo_6.0.1

安装Gazebo

GazeboUbuntu包

安装Gazebo的最简单方法是使用包。有两个主要的仓库主持Gazebo包:一个是另一个。在写作时:packages.ros.orgpackages.osrfoundation.org

  • packages.ros.org
    • Indigo:主机Gazebo版本2.x包。
    • Kinetic:主机或使用Gazebo版本7.x包。
    • Lunar:主机或使用Gazebo版本7.x包。
  • packages.osrfoundation.org
    • Gazebo5.x系列(包名gazebo5)
    • Gazebo6.x系列(包名gazebo6)
    • Gazebo7.x系列(包名gazebo7)
    • Gazebo8.x系列(包名gazebo8)

这意味着包含osrfoundation存储库不是严格需要获得GazeboUbuntu包。它可以从ros存储库安装。

Gazebo从源头建成

如果您从源代码编辑了Gazebo版本,请注意,根据使用的存储库分支(gazebo6,,gazebo7...),您的Gazebo将与gazebo_ros_pkgs(和所有其他在Gazebo顶部编译的ROS包)二进制兼容,只有主版本匹配您的本地分支存储库和ROS发行版中使用的Gazebo版本。例如,如果您是从Gazebo分支编译,您可以使用 Indigo(使用Gazebo2系列)的礼物。gazebo_2.0gazebo_ros_pkgs

请注意,如果您使用default分支,您可能不是与任何发布的包二进制兼容,所以您将需要一个catkin工作区才能获得有效的gazebo_ros_pkgs。

使用默认的Gazebo版本进行ROS分发

对于需要运行特定版本的ROS并且想要使用所有GazeboROS相关软件包的用户,这是推荐的部分:

Lunar

ROS Lunar主持或使用7.x版本的Gazebo。对于完全集成的ROS系统,我们建议使用7.x版本的Gazebo。继续进行下去的方法就是使用ROS库(它会自动安装gazebo7),并且还没有使用osrfoundation库。

Kinetic

ROS Kinetic主机或使用7.x版本的Gazebo。对于完全集成的ROS系统,我们建议使用7.x版本的Gazebo。继续进行下去的方法就是使用ROS库(它会自动安装gazebo7),并且还没有使用osrfoundation库。

Indigo

ROS Indigo拥有Gazebo的2.x版本。对于完全集成的ROS系统,我们建议使用2.x版本的Gazebo。继续进行下去的方法就是使用ROS库(它会自动安装gazebo2),并且还没有使用osrfoundation库。

用ROS使用具体的Gazebo版本

警告!使用此选项,您将无法使用ROS deb存储库中与Gazebo相关的任何ROS Ubuntu软件包。相当于gazebo_ros_pkgs 可以从debian包安装,但所有其他软件(如 turtlebot_gazebo)都必须从源代码构建。感谢catkin工作区, 这很容易做到。

如果真的需要,可以使用Gazebo和ROS的任何特定版本:

Gazebo8.x系列

OSRF存储库提供了构建在包上方的ROS / Kinetic或ROS / LunarGazebo包装器()的版本。使用它们的步骤是:-gazebo8-gazebo8_ros_pkgsgazebo8

  • 将osrfoundation存储库添加到源列表中。
  • 安装从osrfoundation库,这将安装包。ros-$ROS_DISTRO-gazebo8-ros-pkgsgazebo8
  • 使用catkin工作区编译源代码中使用的其他软件。

Gazebo7.x系列

OSRF存储库提供了构建在包上方的ROS / IndigoGazebo包装器()的版本。使用它们的步骤是:-gazebo7-gazebo7_ros_pkgsgazebo7

  • 将osrfoundation存储库添加到源列表中。
  • 安装从osrfoundation库,这将安装包。ros-indigo-gazebo7-ros-pkgsgazebo7
  • 使用catkin工作区编译源代码中使用的其他软件。

常问问题

我没有使用ROS,应该使用哪个版本?

如果您不需要ROS支持,推荐的版本是可以使用osrfoundationrepo安装的最新版本 。

我想使用子弹/ simbody / dart物理引擎,我应该使用哪个版本的Gazebo?

从gazebo4Ubuntu软件包中内置了子弹和simbody支持,所以请按照上述说明gazebo4与ROS结合使用。Dart仍然需要从源头开始安装Gazebogazebo3,从而可以使用gazebo3或更高版本,并按照上述说明使其与ROS一起使用。

我需要使用Gazebo8和ROS Kinetic / Lunar,我该怎么办?

警告!使用此选项,您将无法使用ROS deb存储库中与Gazebo相关的任何ROS Kinetic软件包。要从源头构建它们的方式。感谢catkin工作区,这很容易做到。

如果您需要一些仅在Gazebo版本8.x中出现的功能,则有一种安装方式gazebo8和ROS Kinetic / Lunar。请按照有关如何使用ROS与Gazebo8软件包在同一文档的说明。

我需要使用Gazebo7和ROSIndigo,我该怎么办?

警告!使用此选项,您将无法使用ROS deb存储库中与Gazebo相关的ROS Indigo软件包。要从源头构建它们的方式。感谢catkin工作区,这很容易做到。

如果您需要一些仅在Gazebo版本7.x中显示的功能,则有一种安装方式gazebo7和ROS Indigo。请按照有关如何使用在同一文档中使用Raze与Gazebo7的说明。

一些ROS包与GazeboX ROS Wrappers冲突!

请注意,每个ROS分布都被设计为与特定版本的Gazebo一起使用(gazebo7在Kinetic中)。当有人选择使用与ROS发行版中推荐的不同版本的Gazebo时,可能会出现问题,其中一些可能无法解决。

如果在尝试安装本文档中描述的一个版本之后发现依赖冲突(例如使用RVIZ),则需要从源安装ROS或Gazebo。


----~~~~----ROS2

ROS 2

机器人操作系统(ROS)是一组可帮助您构建机器人应用程序的软件库和工具。从驱动程序到最先进的算法,以及强大的开发人员工具,ROS具有您下一个机器人项目所需的功能。这都是开源的。

在这里,您将找到有关如何安装和使用ROS 2软件的文档,ROS 2是一个正在大力开发的新版本的ROS。有关ROS 2的更多信息,请参见下文。

如果您正在寻找有关ROS 1的信息(即ROS,因为它已经存在了好几年,现在您可能正在使用),请查看ROS网站或文档维基。

在继续之前,请阅读功能页面了解当前ROS 2版本中的内容。

安装

请参阅安装页面。

教程

ROS 2正在大力发展,所有版本目前都是“alpha”-prefixed。您不应该期望今天从ROS 1切换到ROS 2,但您可以查看教程页面,以查看系统在当前状态下可以执行的操作的一系列示例。

特约

有关如何为ROS 2开发做出贡献的详细信息,请参阅贡献页面和开发人员指南。

报告问题和提问

请参阅联系页面。

关于ROS 2

自从ROS于2007年启动以来,机器人和ROS社区发生了很大变化。ROS 2项目的目标是适应这些变化,利用ROS 1的优势,改善不了的。有一个关于ROS 2的动机完整的文章在这里。

当前状态

ROS 2的Alpha版本目前正在进行约6周的节奏,让社区成员有机会对系统提供反馈。在高层次上,ROS 2的发展广泛侧重于为支持多个DDS中间件实施,多个操作系统,多种编程语言以及与运行ROS 1的系统共存的基础奠定基础。有关当前功能的详细信息,请参阅功能。

有什么事情

有关ROS 2的即将推出的功能的详细信息,请参阅路线图。

在哪里可以找到更多信息

有关ROS 2设计的各种文章在design.ros2.org,如:为什么选择ROS 2.0?,ROS上DDS,和ROS 1和ROS 2之间变化。

ROS 2的代码是开源的,分为各种存储库。您可以在ros2 github组织上找到大多数存储库的代码。

以下是关于ROS 2的ROSCon会谈,并提供有关ROS 2和各种演示的工作的信息:

标题类型链接
ROS 2更新 - alpha版本总结,架构概述ROSCon 2016演示幻灯片 / 视频
评估ROS2通信层的弹性ROSCon 2016演示幻灯片 / 视频
ROS 2状态 - 演示和技术背后ROSCon 2015演示幻灯片 / 视频
ROS 2在“小”嵌入式系统上ROSCon 2015演示幻灯片 / 视频
ROS和ROS 2.0中的实时控制ROSCon 2015演示幻灯片 / 视频
为什么要使用ROS 2ROSCon 2014演示幻灯片 / 视频
下一代ROS:建立在DDS上ROSCon 2014演示幻灯片 / 视频

----~~~~----ROS暑期学校课程及资料下载


第1天 (2017年7月22日)(科学会堂)

主题:ROS在企业和科研中的应用
时间题目报告人
8:30 -- 9:30现场报到/注册 & 领取胸牌 
9:30 -- 9:45暑期学校和报告人介绍 
PDF下载
PDF下载
张新宇
华东师范大学
机器人运动与视觉实验室
负责人
9:45 -- 10:45机器人自助定位导航之路的探索陈士凯
思岚SLAMTEC,上海
CEO
智能移动平台 
PDF下载
佘元博
爱啃萝卜机器人,深圳
CEO
10:45 -- 11:00茶歇休息15分钟 
11:00 -- 12:00家庭服务机器人Big-I 
ROS与星火计划
(调至下午) 
PDF下载 
PDF下载
林天麟博士
创想未来机器人,深圳
CEO
餐饮服务机器人
(调至下午) 
PDF下载
李通
擎朗智能科技,上海
CEO
 午餐 , 企业产品展 
13:30 -- 15:00ROS在工业环境中的应用:多机器人 
PDF下载
潘佳博士
香港城市大学
机器人实验室
ROS 在深度学习中的应用 
PDF下载 
PDF下载
林远山博士
邓向阳博士
易科Exbot机器人实验室 
负责人 
视觉算法在Rokid陈明修
Rokid公司
视觉算法负责人
15:00 -- 15:30茶歇交流活动 
15:30 -- 17:30基于ROS的移动抓取机器人 
PDF下载
郑子静
上海硅步机器人事业部
销售总监
GPU助力机器人图像识别与深度学习侯宇涛
NVidia GPU应用部
总监
桌面智能机械臂Dobot 
PDF下载
汪健
上海昙天自动化科技有限公司
总经理
ROS在教育机器人中的应用 
PDF下载
周秋翔
利曼中国,北京
产品经理


第2天(2017年7月23日)(科学会堂)

主题:ROS基础
时间题目报告人
9:00 -- 9:10暑期学校讲者介绍 
PDF下载
主持:张新宇
9:10 -- 9:15介绍三本书《ROS Robotics Projects》, 《Mastering ROS for Robotics Programming》, 《Learning Robotics using Python》(视频) 
视频下载
Lentin Joseph
Qbotics 实验室,印度
CEO
9:15 -- 10:45ROS基本概念基础
--- 地面移动机器人和复杂性
--- ROS为谁而生?
--- ROS为什么这么重要?
--- ROS的历史 
PDF下载
田博
天之博特,南京
创始人
10:45 -- 11:00茶歇休息15分钟 
11:00 -- 12:00ROS的系统构架 --- ROS Graph
--- 分布式,点对点 
--- 节点
--- roscore,Master 
PDF下载
田博
天之博特,南京
创始人
 午餐,集体照 
13:30 -- 15:00ROS 软件包
--- package
--- cmake
--- 编译
--- rosrun 
PDF下载
张志杰
飞科电器,上海
ROS小课堂 创始人
15:00 -- 15:30茶歇交流活动 
15:30 -- 17:30ROS通讯
--- 消息,话题
--- 发布与订阅机制
--- service
--- action 
PDF下载
张志杰
飞科电器,上海
ROS小课堂 创始人


第3天(2017年7月24日)

主题:ROS进阶
时间题目报告人
9:00 -- 9:15暑期学校讲者介绍主持:田博
9:15 -- 10:45ROS组件
-- tf变换 
PDF下载
张瑞雷博士
易科Exbot机器人实验室,苏州
10:45 -- 11:00茶歇休息15分钟 
11:00 -- 12:00ROS组件
-- navigation 
PDF下载
张瑞雷博士
易科Exbot机器人实验室,苏州
 午餐,企业产品展,集体照 
13:30 -- 15:00可视化:rviz
机器人仿真
-- Gazebo
-- 运动规划 
PDF下载 
PDF下载 
代码下载
胡春旭 
星河智能科技,深圳
联合创始人,古月居主人
15:00 -- 15:30茶歇交流活动 图书签名活动 
15:30 -- 17:45ROS 2
--- ROS 1的问题
--- ROS 2 介绍
--- ROS 2 架构 
PDF下载
胡春旭
星河智能科技,深圳
联合创始人,古月居主人
19:00 -- 20:30培训课:ROS集成开发环境RoboWare及其使用 
PDF下载
王滨海
汤尼机器人 济南
总经理


第4天(2017年7月25日)

主题:视觉 & SLAM
时间题目报告人
9:00 -- 9:15暑期学校讲者介绍主持人
9:15 -- 10:45SLAM基础
-- 相机模型
-- 多视图模型
-- 相机标定 
PDF下载
邹丹平博士
上海交通大学
信息技术与电气工程研究院
10:45 -- 11:00茶歇休息15分钟 
11:00 -- 12:00SLAM介绍
-- 构建地图
-- 确定位置 
PDF下载
邹丹平博士
 午餐,企业产品展,集体照 
13:30 -- 15:00SLAM进阶
-- 位姿估计
-- ORB SLAM 
PDF下载
邹丹平博士
15:00 -- 15:30茶歇交流活动 
15:30 -- 17:30ROS 与 无人赛车 RaceCar课程 
PDF下载 
代码下载
林浩鋕
Hypha ROS Workshop
菌絲機器人工作坊,台湾
19:00 -- 20:00思岚体验营:SLAM开发经验(活动行上报名参加)思岚工程师


第5天(2017年7月26日)

主题:ROS-Industrial
时间题目报告人
9:00 -- 9:15暑期学校讲者介绍主持
9:15 -- 10:45工业抓取系统·理论篇
-- 运动学正解
-- 运动学逆解
-- 碰撞检测
-- 运动规划 
PDF下载
邱强
上海交大
10:45 -- 11:00茶歇休息15分钟 
11:00 -- 12:00工业抓取系统·ROS篇
-- ROS-I介绍
-- URDF
-- KDL,ikfast
-- MoveIt 
PDF下载
邱强
上海交大
 午餐,企业产品展,集体照 
13:30 -- 15:00Baxter using ROSJuan Rojas助理教授
广东工业大学机器人实验室
15:00 -- 15:30茶歇交流活动 
15:30 -- 17:30工业机器人展望 
PDF下载
张哲明
UFACTORY公司
研发副总
MoveIt
-- UR5机器人为例


灵巧手与抓取
-- 位姿空间
-- 快速计算
-- 抓取稳定性
-- 位姿空间 
PDF下载 
PDF下载 
PDF下载
刘要,孙斌,田浩
华东师范大学
机器人运动与视觉实验室

19:00 -- 20:00企业交流会:uARM机械臂与ROS完美结合 


第6天(2017年7月27日)

主题:ROS开发实践1
时间题目报告人
9:00 -- 9:15暑期学校讲者介绍主持:田博
9:15 -- 10:45Turtlebot2/3介绍
Navigation
Viswanath,印度
上海硅步
ROS技术推广中心
10:45 -- 11:00茶歇休息15分钟 
11:00 -- 12:00ROS与Gapter 无人机
ROS 与机器人集成
Viswanath,印度
上海硅步
ROS技术推广中心
 午餐,企业产品展 
13:30 -- 15:00Turtlebot遥控
-- Android APP
-- 设置Turtlebot

PDF下载
符国和
爱啃萝卜机器人,深圳
技术主管
15:00 -- 15:30茶歇交流活动 
15:30 -- 17:30机器人跟随
-- 人体检测
-- 运动控制 
PDF下载
符国和
爱啃萝卜机器人,深圳
技术主管
19:00 -- 20:00待定 


第7天(2017年7月28日)

主题:ROS开发实践2
时间题目报告人
9:00 -- 9:15暑期学校讲者介绍主持
9:15 -- 10:45ROS的机器人项目开发
PDF下载
马庆华
上海一坤
10:45 -- 11:00茶歇休息15分钟 
11:00 -- 12:00基于ROS中的机器人产品开发经验 
PDF下载
马庆华
上海一坤
 午餐,企业产品展,集体照 
13:30 -- 15:00在ROS中应用RPLIDAR A2雷达来构建地图 
PDF下载
赵永华
思岚SLAMTEC,上海
自主移动机器人
-- 轨迹识别
-- 轨迹跟踪
-- 自主移动
符国和
爱啃萝卜机器人,深圳
技术主管
15:00 -- 15:30茶歇交流活动 
15:30 -- 16:30比赛规则讲解
16:30 -- 17:30暑期学校结业
证书颁发
 


第8天(2017年7月29日)

主题:ROS地面移动机器人挑战赛
时间比赛程序裁判
9:00 -- 9:15比赛规则讲解
9:15 -- 10:45初级赛:
(遥控机器人组)比赛选手站在场地外,用手机遥控机器人,让机器人从“起点”沿红线轨迹和蓝线轨迹到达“终点”。比赛限时为5分钟,5分钟内完成任务,成绩有效;否则无效。 
颁奖:设金牌1名(奖金500元),银牌2名(奖金200元),铜牌5名(奖金100元)。
孙斌
10:45 -- 11:00茶歇休息15分钟 
11:00 -- 12:00中级赛:
(跟随机器人组)比赛选手站在机器人前方,让机器人跟随选手移动,从起点沿红线轨迹和蓝线轨迹到达终点。比赛限时为3分钟,3分钟内完成任务,成绩有效;否则无效。 
颁奖:设金牌1名(奖金1000元),银牌1名(奖金800元),铜牌1名(奖金500元)。
蒋振斌
 午餐,企业产品展 
13:30 -- 15:00高级赛:
(自主机器人组)机器人自主运动,从“起点”沿红线轨迹和蓝线轨迹到达“终点”。比赛限时为10分钟,10分钟内完成任务,成绩有效;否则无效。 
颁奖:设金牌1名(奖金3000元),银牌1名(奖金1500元),铜牌1名(奖金1000元)。
孙斌

----~~~~----使用ROS进行机器人编程学习网址

http://robocademy.com/

如果你喜欢机器人,而你想学习如何编程,那就是你的Meetup! 

ROS正在成为机器人编程的标准。所以你必须掌握ROS,如果你想在不久的将来在机器人工作。

来到这个MeetUp,找到一个非常快的方式来学习ROS!

您将需要携带笔记本电脑,因为这将是一个手写教程。但不用担心,您可以携带任何类型的笔记本电脑。本教程无需安装。所有的编程都将在线完成。

请提前10-15分钟连接互联网,抓住一个不错的机会!


----~~~~----

http://bluesat.com.au/a-dummys-guide-to-debugging-ros-systems/

调试ROS系统的虚拟指南

发表于2017年7月12日,由Harry JE Day发表

所以你写了最终的ROS程序:经过数千行代码,你的机器人终将达到感觉,带来奇点!

一个接一个地启动你的节点。每一个使启示录越来越近。你输入最后一个命令。和。而且什么也没有。什么地方出了错?你会怎么找到,永远挤压那个妨碍你胜利的时刻的错误?这个博客试图回答这些问题,更多*。

在BLUEsat中,我们已经有了我们分享复杂的ROS调试问题。当您通过竞争任务中途进行时,最好的时间会发生,随着时间的推移。虽然这篇文章还会在较短的时间内看看更常见的调试情况,并且易发生火灾的环境**。

以下是我们成功部署以调试ROS环境的几种工具和技术。

保持冷静和火焰!

你以前可能已经听过这个消息,但是在调试时不重要的结论或者您没有正确测试的修复程序非常重要。例如,Google有一个策略,可以回滚其服务上的更改,而不是尝试推送修复。一个类似的想法适用于竞争或时间压力的情况:确保你已经想到通过这个补丁,从你的机器人删除“不要杀人”的安全!话虽如此,不幸的是,回滚不太可能适用于竞争情况,也不可能将您刚才​​在机器人上启动的火灾推迟。所以我们不能只是复制谷歌,但我们应该考虑一下我们在做什么。

基本上,在这种情况下您应用的任何修补程序或配置修复程序都是计算出的风险,您应该确保在做某些事情之前了解这些风险。在去年的欧洲巡回赛挑战赛中,我发现可以调整小型设置,重启某些节点,重新校准系统; 但是由于建立通信所需的时间,在任务期间强制循环流动站太危险了。同样重新启动我们的驱动系统或摄像机对我们的飞行员来说是非常具有破坏性的,所以只能在某些情况下完成,在这种情况下,通过不修复系统造成的损坏可能会更糟。话虽如此,在关键的摄像机失败后,我们试图以编程方式对该设备进行电源循环 - 这个决定是指摄像机足够重要,可以尝试这样一个危险的举动。

在非时间压力的情况下,您可以更灵活。可以测试不同的选项,看看它们是否工作。这是因为它们不会损坏您的机器人。然而,结构化的方法通常对于那些更复杂的错误是有益的。我经常发现,当我调试间歇性或难以检测到的问题,很容易就会失去跟踪我尝试过的结果,或者得到结果。我发现一个非常有用的技术是记录我在做什么,就像我所做的那样,特别是如果问题包括传感器数据。

基本上主要的一点也是保持头脑清晰,并在行动之前考虑后果。了解风险,并准备好您的E-Stop按钮!现在看看可以用来帮助你调试的一些工具。

BLUEtongue 2.0漫游器在2016年ERC期间被调试,与团队成员协助。 (LTR):Timothy Chin,Sebastian Holzapfel,Simon Ireland,Nuno Das Neves,Harry JE Day。
调试通常是一个团队的努力。

抓住你的RQT

方便的“ rqt ”工具是ROS调试器的瑞士军刀。在时间压力和非时间压力的调试中,它节省了很多次。在2016年欧洲巡回赛挑战赛中,我是在调试台的不间断的伙伴,提供了许多有用的见解和许多有用的诊断数据。(一个标准的BLUEsat漫游者驾驶人员由驾驶漫游者的飞行员组成,一名副驾驶 - 跟踪任务目标,飞行员位置,并管理飞行员的通讯;以及一个调试器,用于监视流动站的状态软件和管理不同运行的ROS节点)。

RQT使用终端中的“rqt”命令运行,并且包含可通过插件菜单加载的一系列小部件  。下面我将简要介绍一些必须有用的小部件。

节点图

RQT的第一个工具是节点图。此小部件将您的ROS图中的所有节点描绘为椭圆形,并将所有主题作为正方形。方向箭头表示哪些节点正在广告或订阅主题。您还可以选择仅显示当前连接到发布者和订户(活动)的主题,或仅显示节点而不显示主题信息。

图片显示的RQT的图形视图显示具有线连接主题的所有活动节点到节点。
RQT的图形视图显示所有活动节点和连接它们的主题。

 

当我开始调试ROS问题时,节点图是我看到的第一件事情之一。一目了然,我可以看到哪些节点正在运行,如果两个节点正确连接。令人惊讶的是,ROS问题的频率可以像没有运行的节点一样简单(或者当不应该运行时)。该图还允许我们看到节点是否正确连接 - 拼写错误的主题名称当然不会在代码中跳出来,但它在图表中直接显示为缺少的一个链接。

主题监视器

如果我们使用节点图找不到我们的问题,那么 下一个小部件通常会有帮助。该主题监视器  是较年轻,更好地组织同级rostopic回声命令行工具。它显示所有当前广告主题的列表,并允许您监视它们。除了每个主题都是一个复选框,当选中订阅我们的主题,显示其完整的输出以及它使用的带宽和发布的频率。

RQT主题监视器显示/诊断主题的输出。
RQT的主题监视器小部件:您可以看到主题列表以及所选主题的输出。

 

这对于检查正确的信息是否正在通过您的ROS网络而言非常有用,而无需在所有节点中添加ROS_INFO调试。在BLUEtongue Rover上,我们发布了大量的诊断信息作为ROS主题(这里有一点更多)。其中一些用于通过GUI向我们的飞行员提供信息,但如果我们需要了解细节,那么RQT可以提供大量丰富的信息。

除了诊断信息之外,主题监视器可用于查找网络中的问题。一个常见的情况是没有实际发布任何消息的节点 - 在这种情况下,它可能无法正确连接,您应该查看ROSWTF部分。您还可以看到节点是否发布错误的消息类型,或者是否有任何值不正确。

最后,您还可以使用主题监视器来识别潜在的带宽问题,尽管您应该记住,在这样做时,rqt将会订阅主题本身,这可能会加剧问题。

消息发布者

RQT  Message Publisher是  主题监视器的 邪恶双胞胎。顾名思义,它允许您发布消息,为命令行rostopic pub命令提供非常相似的功能  - 您可以选择主题,消息类型和频率,然后输入要发送的数据。然而,它还提供了一些额外的视觉辅助工具来加快调试过程。

ROS Message Publisher,具有多个不同表达类型的示例。
ROS Message Publisher,具有多个不同表达类型的示例

 

首先,它预先填充主题列表和相应的类型列表,使您可以快速发布到当前在网络中的任何用户。这可以是压力下的救生员,并且阻止您不断提醒自己,如果该cmd_vel消息是geometry_msgs / Twist   或geometry_msgs / TwistStamped。 

一旦您选择了消息类型,它还将显示该消息的字段,使其更简单地填写这些更复杂的消息。它还记住以前发送的消息,允许您快速重新发送。如果您需要执行类似发送特定消息集的操作,或者在事件发生后快速启用消息,这可能会很好。

最后,如果您是高级用户或需要发送更复杂的消息,则可以在“表达式”字段中输入有效的python表达式,而不是实际值。这包括时间,数学或随机模块中的任何方法。此外,它还为您提供自动计数器i(请参阅上述图像的示例)。

TF树

我将在RQT调试工具中讨论的最后一个工具是TF Tree。如果您使用ROS的变换系统,该工具很有用  ,如果您不想跳过本节。

TF树显示您的变换的连接结构,以及哪个节点发布给定的帧,最后一次更新,以及系统中最旧的变换。

RQT TF树,显示base_footprint和base_link之间的链接。
TF树显示了ROS变换树中不同帧之间的关系。

 

我用过的最好的用法是检测图中的差距。例如,如果您没有向joint_state发布任何关于它的信息,那么ROS的robot_state_publisher将不会发布非固定联合的转换  ,这可能导致无法访问的转换。如果发生这种情况,最好的方法往往是返回并检查以确保要发布的任何节点正在正常运行。通过查看平均速率和  最近的变换值来识别转换超时的原因也很有用。

找到自己与RViz

RQT是一个非常有用的日常调试工具,但是如果您正在处理非常可视化的信息,例如点云或软件认为机器人的不同部分,那么需要更强大的功能。那就是RViz进入的地方,它是一个3D场景,您可以在其中可视化不同类型的ROS数据。除了URDF机器人模型,RViz还支持点云,占用网格等等。基本上如果您想要可视化的主题是ros-desktop的一部分,那么您可以在RViz中看到它。(注意:如果您真的想使用RQT,您可以使用RViz作为RQT插件)。

显示BLUEtongue Rover的URDF模型的RViz场景。 激光雷达输入​​和空占用网格。
显示BLUEtongue Rover,LIDAR输入和空占用网格的URDF模型的RViz场景。

 

RViz实际上在ROS Wiki上有一些合理的教程,所以我只是在这里给出悬崖的笔记。RViz的关键特性是能够加载不同的ROS消息,并相对于彼此进行可视化。如果您尝试调试与本地化或自动化相关的任何操作,如果您的机器人认为它在错误的地方或传感器数据有问题,您可以快速解决问题,这很有用。作为RViz多功能性的一个例子,我们在2016年欧洲巡回赛挑战赛的“盲人导航”任务中利用它来显示相对于流动站估计位置的单个LIDAR数据平面(在该任务中禁止摄像机进给或全3D传感器可视化) )。我们还广泛使用它来调试LIDAR传感器输入(见下文)和各种SLAM解决方案。

使用rviz显示LIDAR,TF和Robot Model Data的一个例子

 

ROSWTF!

如果你有奇怪的连接问题或节点,否则似乎正常工作,那么roswtf工具就是你的家伙/ gal。基本上,ROSWTF旨在成为您一站式商店,用于识别您的ROS系统中的问题,尽管我的经验是不完整的。然而,它真正的好处是检测您的ROS网络的任何设置或网络问题。

ROSWTF在ROS_IP环境变量配置错误的终端会话中运行。
ROSWTF在ROS_IP环境变量配置错误的终端会话中运行。

 

一个这样的问题是您的ROS网络上的机器无法识别对方的主机名。如果您没有像DHCP或DNS在机器之间共享这些东西,或者您的计算机的DNS名称与本地程序认为您的主机名不匹配,则可能会发生这种情况。这是一个难以检测的问题,因为节点通常会连接并正常运行,直到他们尝试与其他机器上的节点通信为止。ROSWTF会发现这很难找到问题。

在大多数情况下,有两种方法来解决这个问题,第一种是将本地机器的ROS_HOST环境变量配置为其IP地址,第二种是修复主机名解析,使机器可以找到对方。后者可以通过在/ etc / hosts文件中添加条目  或更新本地DNS服务器来完成。在BLUEsat中,我们倾向于使用环境变量选项作为我们的网络设置通常意味着我们不使用DHCP,并且拥有主机知道自己的ip意味着我们不必在我们的网络中的每台机器上更新  / etc / hosts 添加一个新的主机。

roswtf 可以检测到的其他问题  是:配置错误的ROS_MASTER节点,实际网络问题和ros启动文件配置问题。如果一切都看起来应该是工作,但不是,  roswtf 是工作的工具!

用GDB和Valgrind深入挖掘

不用说,如果你已经经历了其他步骤,你的机器人还在着火,你可能没有太多的机器人。GDB和Valgrind是最适合初始测试和开发的工具,但是当您的机器人  不起火时,它们非常有用。

这两个工具本身都是主题,我建议您阅读有关各个工具(gdb,valgrind)的完整教程,以便更好地了解它们。在这里,我们将主要介绍如何在ROS环境中使用这两种工具。

为了有效地使用这些工具之一,您必须首先使用调试符号重新编译代码。这允许工具向您提供有关行号的信息,以及可能发生错误的代码片段。要重新编译启用了调试符号的catkin工作区,您可以运行以下命令。

1
2
$ catkin_make -DCMAKE_BUILD_TYPE=Debug
[Catkin Output Goes Here]

第二个难题实际上是找到可执行文件来运行它,使用gdb或valgrind(不幸的是你不能在rosrun上运行gdb)。如果您位于catkin工作区的根目录,那么可执行文件应位于  devel / lib / <ros package name> / <node name>中。这意味着您可以使用以下命令使用gdb运行节点:

1
$ gdb devel /lib/ [ros_package_name]/[node_name]

然后,您可以按照gdb中的正常方式逐步执行程序。同样,您可以使用以下命令运行valgrind:

1
$ valgrind --leak-check= yes devel /lib/ [ros_package_name]/[node_name]

我发现当我试图调试segfaults,奇怪的输出或意想不到的行为时,我倾向于使用gdb; 而我几乎专门使用valgrind来查找内存泄漏和数组溢出。它们是调试C ++代码的关键工具,我强烈建议您阅读更多关于它们!

现在去获得这个奇点!

所有这些工具在我在BLUEsat期间对我来说非常有用,特别是在欧洲漫游挑战赛的任务中。我希望您下次尝试创建奇点时,甚至当您正在调试正常的ROS代码时,您会发现它们有帮助。如果没有,这里只是用很多这些工具刮掉了你可以做的事情,我鼓励读者对所有这些工具进行更深入的实验和深入探讨!

在2011年欧洲巡回赛挑战赛的“援助任务”中,BLUEtongue 2.0火星车
一旦你完成了机器人的调试,你可以出去接管世界!

 


* BLUEsat UNSW及其成员(大多数)不赞同启发启示,并且对由于启示相关调试而可能发生的任何死亡或全球范围的灾难承担全部责任。

**  本文中的调试技巧不能在火灾中保证应用安全。BLUEsat建议自由使用E-Stop系统。 


----~~~~----

ROS VSCode扩展

这Visual Studio代码(VSCode)扩展提供支持机器人操作系统(ROS)
的发展。

  • 知识库
  • 问题

入门

当您打开一个catkin工作区或一个catkin工作区内的文件夹时,扩展名将自动启动。
ROS发行版将自动从父环境确认,否则将
无法自动完成ROS 发行版的提示。

要启动ROS主机,请使用“ROS:启动核心”命令。左下角的“ROS主站”指示灯将显示
主站当前是否正在运行,您可以单击此按钮查看参数等。如果您点击F5,您可以创建一个调试
配置来运行rosrun或roslaunch命令。

首次打开工作区时,扩展将自动创建catkin_make构建任务并更新
C ++和Python路径。稍后可以使用相应的命令重新运行此过程。

特征

  • 自动ROS环境配置。
  • 允许启动,停止和查看ROS主站状态。
  • catkin_make使用标准构建命令运行。
  • 创建catkin包。
  • 运行rosrun或roslaunch
  • 语法高亮显示.msg,.urdf和其他ROS文件。
  • 自动添加ROS C ++包含和Python导入路径。
  • 使用ROS clang-format风格格式化C ++ 。

命令

名称命令描述
创建Catkin包ros.createCatkinPackage
创建一个catkin包。您可以右键单击资源管理器中的文件夹,以在特定位置创建它。
显示主状态ros.showMasterStatus打开一个详细信息,显示有关ROS主站的详细信息。
启动核心ros.startCore产生一个ROS核心
停止核心ros.stopCore杀死ROS核心
更新构建任务ros.updateBuildTasks生成catkin_make在ROS环境中运行的构建任务。
更新C ++属性ros.updateCppProperties更新包含ROS的C ++包含路径。
更新Python路径ros.updatePythonPath更新Python路径以包括ROS。


ROS Summer School 2017 挑战赛

团队介绍

  • 队名: STAR Robot
  • 单位: 上海科技大学自动化与机器人中心
  • 成员: 陈宏宇, 旷皓飞, 龙肖灵

实验环境

  • 硬件平台:

    • Turtlebot 2(Kinect相机需要面向地面安装)
    • PC(i7处理器, 8G内存)(PC的性能影响图像处理的效率)
  • 软件环境:

    • Ubuntu 14.04
    • ROS Indigo
    • Python 2.7, OpenCV2.4.8

Python以及OpenCV环境配置

  • Python环境:Ubuntu 14.04 已预装了Python2.7

  • 安装OpenCV:

    1. 软件源安装:
    sudo apt-get install python-numpy
    sudo apt-get install python-opencv
    

    也可使用pip或anaconda安装。

    1. 源码安装:到OpenCV官网下载所需的版本, 按照其教程来安装。
  • IDE配置:

    1. PyCharm:到PyCharm官网下载,按照其教程来安装
    2. 配置PyCharm:详见ROS wiki IDEs

算法简介

Step 1 导入相机数据

  • 读取相机数据: 通过rospy订阅 '/camera/rgb/image_raw' 这一Topic: self.image_sub = rospy.Subscriber('/camera/rgb/image_raw', Image, self.image_callback)
  • 在回调函数里,利用cv_bridge将每一帧图像转换为opencv格式的图片: image = self.bridge.imgmsg_to_cv2(msg, desired_encoding='bgr8')

Step 2 图像预处理

  • 将原始图像转换为hsv图像
  • 提取所需的颜色,将图像转换为二值图像
  • 利用中值滤波和腐蚀来去除噪点
  • 将处理后的图像切片,只保留相机下方某一范围内的区域

Step 3 提取关键点

  • 对Step 2中产生的二值图像进行轮廓提取:
    • 提取图片中的所有轮廓
    • 将轮廓面积小于一定值的轮廓去除(消除了某些滤波没有清除的噪声的影响)
    • 选取剩下的轮廓中面积最大的轮廓作为最终区域
  • 经过上一步处理后,如果存在轮廓,取轮廓的质心作为最终所追踪的关键点

Step 4 控制

  • 通过对 '/cmd_vel_mux/input/teleop' Topic发送Twist类型的消息来控制小车移动
  • 如果存在关键点:利用P控制器控制小车移动(线速度为定值,角速度受error影响,error为质心的x值减去图像中线的值(Kinect是320), error所乘的比例可以调节,其决定角速度的大小)
  • 如果不存在关键点: 在小车运动时,若是线离开了相机的视野(该处指对原图切片后的视野), 小车会立即停止运动,执行以下决策:
    1. 向某一方向旋转一定角度(根据最后一次error的正负来决定旋转的方向(error小于0,逆时针;error大于0,顺时针)),若旋转过程中检测到了关键点(即线又回到了视野内),则继续执行之前的决策; 若没有检测到,则执行2。
    2. 前进一段距离,停止(即到达终点或失败)。

参考资料

Programming Robots with ROS: A Practical Introduction to the Robot Operating System

我们对本书第12章中所提到的算法进行了改进,用于此次挑战赛

致谢

  很感谢华东师范大学机器人运动与视觉实验室以及张新宇老师,还有暑期学校的组委会组织了此次活动。感谢GaiTech赞助了本次暑期学校的挑战赛。很高兴能与很多对机器人感兴趣的同学老师聚在一起交流学习。

  由于时间较短,我们的程序还存在很多问题,如果同学老师对我们的程序有任何问题和建议,或是对我们的团队感兴趣,可以联系我们,我们的联系方式可以在我们实验室的主页上找到(上海科技大学自动化与机器人中心)


--------唯有全力以赴,方能不负此生--------

确定要放弃本次机会?
福利倒计时
: :

立减 ¥

普通VIP年卡可用
立即使用
zhangrelay
关注 关注
  • 2
    点赞
  • 踩
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
  • 分享
    复制链接
    分享到 QQ
    分享到新浪微博
    扫一扫
  • 举报
    举报
ROS源码分析
sukha的专栏
09-06 1万+
ROS源码分析写在前面很久就有写ROS源码分析的想法。2014年最初接触ROS,当时中文资料比较少,基本只有一本红皮的ROS介绍,内容大多是对ROS官方wiki的翻译,版本也跟不上ROS官方发布的速度。因此开始刷官方wiki教程。官方教程简单形象,原理与例子结合,至今我仍然认为是入门ROS的不二之选。刷完教程后,出于工作需要(主要在ROS实时性方面),开始阅读ROS的核心代码。ROS的代码量并不大,
进入AI领域做产品 —— 我的自学之路
热门推荐
07-03 1万+
做产品经理这份工作将涉及大量选择,本质上,是需要“输入→内视→输出”的环节更多,所以为了更好的去进行“输出”,学习“输入”(AI基础认知、产品认知、技术通识)以及“内视”(认知框架)的重要性就不言而喻了。 所以,这份内容是关于一个要进入AI领域的产品经理,所需要积累的“输入”的归纳,以及搭建“内视”框架的过程。(第二份输出也已经完成——《出行服务 + AI —— 一次模拟的创业》)
参与评论 您还未登录,请先 登录 后发表或查看评论
ros源码分析
一只会飞翔的马
11-15 675
分析后发现ros有哪些动态库 roscpp.so rosconsole.so rosconsole_log4cxx.so rosconsole_backend_interface.so roscpp_serialization.so xmlrpcpp.so xml远程过程调用 rostime.so cpp_common.so
ROS初步学习
最新发布
2508_93494022的博客
11-09 783
本文章参考课程blibli上AUTOLABOR 的ROS机器人入门课程
玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest
数据库天地
08-29 189
一、前言 本篇将介绍一些gtest的基本使用,包括下载,安装,编译,建立我们第一个测试Demo工程,以及编写一个最简单的测试案例。 二、下载 如果不记得网址, 直接在google里搜gtest,第一个就是。目前gtest的最新版本为1.3.0,从下列地址可以下载到该最新版本: http://googletest.googlecode.com/files/gtest-1.3.0...
梭杆菌(Fusobacterium)——共生菌,机会菌,癌杆菌
Hangzhou_Guhe的博客
04-12 8145
谷禾健康 梭杆菌属(Fusobacterium),是梭菌门最主要的菌属,厌氧革兰氏阴性细菌,与拟杆菌属、普氏菌属、卟啉单胞菌属一样都是医学上重要的厌氧革兰氏阴性杆菌。 梭杆菌属是人类和动物的身体共生菌之一,主要定植在人类和动物的粘膜中,两个最主要的聚集地是口腔和结肠,某些类型物种属于机会性病原体,会引起菌血症和各种快速进展的感染。这些微生物比大多数正常的厌氧菌群更具毒性,产生重要的 脂多糖(LPS),内毒素和溶血素等,这可能是毒力的原因。 其中具核梭杆菌(Fusobacteri.
ROS源码分析-week10
seaofbits的博客
12-27 534
2021SC@SDUSC 1. 本周工作目标 这周使用VSCode,来阅读一下navigation仓库里许多功能包的代码。结合实际情况,本周的工作目标如下: 下载仓库,清点重点的包 阅读nav_core功能包 2. 下载仓库,分析重点的包 首先git clone下载仓库,然后用vscode打开,发现里面有很多包: 然后用一个静态代码分析工具understand初步分析这个文件夹里包裹的依赖情况,生成依赖图如下: 可以看见,最核心的包是costmap_2d和nav_cor
ROS源码分析-week1
seaofbits的博客
10-11 1658
2021SC@SDUSC 1. 本周工作目标 本周正式开始阅读ROS(ROS 1 Noetic)的源码。按照综述的计划,本周着手开始阅读ROS Master部分的源码。结合实际情况,本周的工作目标如下: 寻找一些专业书籍,了解更多的详细信息 下载ros源码,了解源码结构 从源码编译ROS Master,为后续调试阅读做准备 关于ROS1和ROS2,有点像Python2和Python3的过渡,二者并不兼容,后者将是前者的替代。ROS1最后一个LTS版本(Noetic)将在2025年结束支持...
ROS源代码分析-week3
seaofbits的博客
10-29 442
2021SC@SDUSC 1. 本周工作目标 这周继续阅读代码,从roscore转向应用程序的层次。结合实际情况,本周的工作目标如下: 阅读ros官方tutorials内容 2. 阅读ros官方tutorials内容 我们看ros官方给出的toturials的内容...
ROS源码分析-week5
seaofbits的博客
11-29 1315
2021SC@SDUSC 1. 本周工作目标 这周继续ros通信部分的源码,侧重点在于注重"topic是怎么注册的?publisher是怎么注册的?"。结合实际情况,本周的工作目标如下: 根据talker and listener样例,调试阅读ros core topic注册部分代码 2. ros里topic publisher的注册 我们先看ros_catkin_ws/install_isolated/share/rospy_tutorials/001_talker_listener/ta
ROS源码分析-week11
seaofbits的博客
12-28 986
2021SC@SDUSC 1. 本周工作目标 这周继续阅读navigation仓库里的代码。结合上周分析,本周的工作目标如下: 阅读costmap_2d包裹的内容 2. 阅读ros官方tutorials内容 首先使用tree命令观察包裹结构: andy@virtual-machine:~/navigation/costmap_2d$ tree . . ├── cfg │ ├── Costmap2D.cfg │ ├── GenericPlugin.cfg │ ├── Infla...
ROS源码分析-week9
seaofbits的博客
12-18 1188
2021SC@SDUSC 1. 本周工作目标 这周继续阅读ros导航部分的代码,希望能大致理解导航部分ros包的架构。结合实际情况,本周的工作目标如下: 详细分析架构图 根据架构图,分析各部分对应的具体的代码包 2. 导航架构图分析 首先复习一下上一章在wiki里发现的的架构图: 我们详细分析一下这张图的各个部分: 包名 来源 功能 备注 move_base 官方提供 整合各种信息来源,用dijstra或者A*算法规划机器人运动路径
ROS源码分析-week6
seaofbits的博客
12-08 362
2021SC@SDUSC 1. 本周工作目标 上周只阅读了ros节点注册部分的代码,本周准备继续阅读节点收发message的代码。结合实际情况,本周的工作目标如下: 根据talker and listener样例,调试阅读ros core topic的message收发部分代码。 2. ros里topic message的发送 我们先看ros_catkin_ws/install_isolated/share/rospy_tutorials/001_talker_listener/talker
Google Cartographer ROS源码解析
旧人赋荒年
03-06 1927
Google Cartographer ROS overview Cartographer主要可分为两个子系统:local SLAM(frontend or local trajectory builder), 和global SLAM (backend)。 Local SLAM构建一系列的submaps,每一个submaps具有局部一致性,可理解为其submaps内部是进行了匹配,但是各个sub...
ros源码分析(3)—rosmaster 包分析
lyf's blog
07-15 3536
rosmaster包下的setup.py,from distutils.core import setup from catkin_pkg.python_setup import generate_distutils_setupd = generate_distutils_setup( packages=['rosmaster'], package_dir={'': 'src'},
ROS源码分析-week8
seaofbits的博客
12-18 1545
2021SC@SDUSC 1. 本周工作目标 前面几周阅读了ros core部分的ros master和ros topic方面的源码,注重于一些核心、通用库的实现。本周开始,我们要进入另一部分的阅读,阅读导航库的源码,探究其实现。结合实际情况,本周的工作目标如下: 阅读ros wiki,了解导航库源码结构 结合文档和源码结构,搭建阅读环境 2. ros导航库结构 回到最开始的wiki(RecommendedRepositoryUsage/CommonGitHubOrganizati
【ROS】源码分析-消息订阅与发布
Black Shadow
06-19 2623
本文通过`NodeHandle::subscribe`和`Publication::publish()`源码作为入口,来分析PubNode、SubNode之间是网络连接是如何建立的,消息是如何发布的,topic队列到底是如何实现的。
zhangrelay

博客等级

码龄21年

领域专家: 人工智能技术领域

1683
原创
1万+
点赞
2万+
收藏
5万+
粉丝
关注
私信

热门文章

  • 计算机控制技术课程配套教材习题解答(第6、7、8章) 117932
  • 为何电脑系统相对通用而手机却相对定制 100300
  • 在Ubuntu 18.04 LTS安装ROS Melodic版机器人操作系统(2019年10月更新MoveIt! 1.0 ROS 2.0 Dashing) 68039
  • Ubuntu 16.04/18.04 安装和使用QQ和微信最简洁的方式(2019.10.28更新) 67848
  • 写博客8年与人生第一个502万 66372

分类专栏

  • ROS2学习笔记与高校课程分享
    104篇
  • ROS Melodic 迷失与救赎
    20篇
  • ROS Kinetic 学习笔记
    53篇
  • ROS indigo 学习笔记
    55篇
  • 机器人工程专业
    35篇
  • 机器人仿真
    69篇
  • 多机器人系统
    38篇
  • GazeboSim仿真平台
    31篇
  • ROS_melodic机器人操作系统
    19篇
  • ROS_indigo机器人操作系统
    101篇
  • ROS_kinetic机器人操作系统
    106篇
  • ROS机器人程序设计(第2版)补充
    57篇
  • EmotivEpoc脑电设备
    1篇
  • Thinkpadwifi驱动
    1篇
  • Ubuntu软件
    80篇
  • ABB机械臂
    5篇
  • 杂乱笔记
    72篇
  • 课程-现代控制理论-
    27篇
  • 课程-计算机控制技术-
    29篇
  • 课程-单片机理论与实践-
    28篇
  • 课程-人机智能交互技术-
    12篇
  • 课程-专业工具软件与应用-
    13篇
  • 课程-机器人系统设计及控制-
    41篇
  • 课程-智能机器人综合实践-
    27篇
  • 课程-机器人控制器编程-
    14篇
  • 人工智能基础(高中版)
    41篇

展开全部 收起

上一篇:
2019~ROS暑期学校~ROS Summer School in China~分享
下一篇:
ROS会议 ROSCon 2017

最新文章

  • 如何淡化功利心守护初心呢
  • Webots 2025a + ROS 2 Jazzy e-puck 机器人教程
  • 使用了15年之久的电脑优化后继续再战……
2025
12月 2篇
11月 2篇
10月 13篇
09月 14篇
08月 12篇
07月 4篇
06月 15篇
05月 20篇
04月 3篇
03月 23篇
02月 9篇
01月 8篇
2024年197篇
2023年179篇
2022年441篇
2021年205篇
2020年163篇
2019年179篇
2018年112篇
2017年141篇
2016年135篇
2015年18篇

目录

展开全部

收起

目录

展开全部

收起

上一篇:
2019~ROS暑期学校~ROS Summer School in China~分享
下一篇:
ROS会议 ROSCon 2017

分类专栏

  • ROS2学习笔记与高校课程分享
    104篇
  • ROS Melodic 迷失与救赎
    20篇
  • ROS Kinetic 学习笔记
    53篇
  • ROS indigo 学习笔记
    55篇
  • 机器人工程专业
    35篇
  • 机器人仿真
    69篇
  • 多机器人系统
    38篇
  • GazeboSim仿真平台
    31篇
  • ROS_melodic机器人操作系统
    19篇
  • ROS_indigo机器人操作系统
    101篇
  • ROS_kinetic机器人操作系统
    106篇
  • ROS机器人程序设计(第2版)补充
    57篇
  • EmotivEpoc脑电设备
    1篇
  • Thinkpadwifi驱动
    1篇
  • Ubuntu软件
    80篇
  • ABB机械臂
    5篇
  • 杂乱笔记
    72篇
  • 课程-现代控制理论-
    27篇
  • 课程-计算机控制技术-
    29篇
  • 课程-单片机理论与实践-
    28篇
  • 课程-人机智能交互技术-
    12篇
  • 课程-专业工具软件与应用-
    13篇
  • 课程-机器人系统设计及控制-
    41篇
  • 课程-智能机器人综合实践-
    27篇
  • 课程-机器人控制器编程-
    14篇
  • 人工智能基础(高中版)
    41篇

展开全部 收起

目录

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
表情包 代码片
  • HTML/XML
  • objective-c
  • Ruby
  • PHP
  • C
  • C++
  • JavaScript
  • Python
  • Java
  • CSS
  • SQL
  • 其它
 条评论被折叠 查看
被折叠的  条评论 为什么被折叠? 到【灌水乐园】发言
查看更多评论
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值