ROS_Kinetic_02 ROS Kinetic 迁移指南及中文wiki指南(Migration guide)

ROS_Kinetic_02 ROS Kinetic 迁移指南(Migration guide)

对于ROS Kinetic Kame有些功能包已经更新改变,提供关于这些包的迁移注意或教程。主要针对于ROS Jade或Indigo。

原网页地址:http://wiki.ros.org/kinetic/Migration

1. catkin

1.1 find_package依赖性

为功能包查找依赖性生成的CMake配置文件现在为NO_MODULE。

具体内容查看:https://github.com/ros/catkin/pull/782

1.2 不再有CPATH

配置文件不再设置CPATH。

具体内容查看:https://github.com/ros/catkin/pull/783


2. genpy

2.1 整数除法持续时间的语义变化


3. ROS C++

3.1 ros::Duration::sleep()返回值

ros::Duration::sleep()的返回值与ros::Rate::sleep()的问题。

具体参考:https://github.com/ros/roscpp_core/pull/47


4. roslaunch

4.1 表达式更为柔性评价

具体细节参考roslaunch/XML。


5. Gazebo仿真

Gazebo支持ROS Kinetic的官方版本是7.x系列。这里有更多新功能。


6. gennodejs

ROS Kinetic添加了新的Javascript消息生成器。

详情请看:http://wiki.ros.org/gennodejs


7. OpenCV

ROS默认的OpenCV版本是3.1。

详情请看:http://wiki.ros.org/opencv3


8. OctoMap

ROS中OctoMap的发布版本为1.8。主要可能影响你自定义节点和八叉树类。

详情请看:https://github.com/OctoMap/octomap/releases/tag/v1.8.0

 

附加:ROS中文官方教程

非初学者: 如果你已经很熟悉 ROS fuerte(要塞龟)或更早期版本的使用,而只是想使用在groovy(加岛象龟)hydro(渔龟)中开始采用的最新编译构建系统catkin,那你可以深入学习catkin教程。 但是我们仍然建议所有人学完整个“初级”教程以方便理解新增的功能特性。

如果你是Linux初学者:也许先学习一些有关linux命令行工具的快速使用教程会对你很有帮助,这里有篇好教程(英文)。

核心ROS教程

 

初级

 

  1. 安装并配置ROS环境

    本教程详细描述了ROS的安装与环境配置。

  2. ROS文件系统介绍

    本教程介绍ROS文件系统概念,包括命令行工具roscd、rosls和rospack的使用。

  3. 创建ROS程序包

    本教程介绍如何使用roscreate-pkgcatkin创建一个新程序包,并使用rospack查看程序包的依赖关系。

  4. 编译ROS程序包

    本教程介绍ROS程序包的编译方法

  5. 理解 ROS节点

    本教程主要介绍 ROS 图(graph)概念 并讨论roscorerosnode和 rosrun 命令行工具的使用。

  6. 理解ROS话题

    本教程介绍ROS话题(topics)以及如何使用rostopic 和 rxplot 命令行工具。

  7. 理解ROS服务和参数

    本教程介绍了ROS 服务和参数的知识,以及命令行工具rosservice 和 rosparam的使用方法。

  8. 使用 rqt_console 和 roslaunch

    本教程介绍如何使用rqt_consolerqt_logger_level进行调试,以及如何使用roslaunch同时运行多个节点。早期版本中的rqt工具并不完善,因此,如果你使用的是“ROS fuerte”或更早期的版本,请同时参考这个页面学习使用老版本的“rx”工具。

  9. 使用rosed编辑ROS中的文件

    本教程将展示如何使用rosed来简化编辑过程。

  10. 创建ROS消息和ROS服务

    本教程详细介绍如何创建并编译ROS消息和服务,以及rosmsg, rossrv和roscp命令行工具的使用。

  11. 编写简单的消息发布器和订阅器 (C++)

    本教程将介绍如何编写C++的发布器节点和订阅器节点。

  12. 写一个简单的消息发布器和订阅器 (Python)

    本教程将通过Python编写一个发布器节点和订阅器节点。

  13. 测试消息发布器和订阅器

    本教程将测试上一教程所写的消息发布器和订阅器。

  14. 编写简单的Service和Client (C++)

    本教程介绍如何用C++编写Service和Client节点。

  15. 编写简单的Service和Client (Python)

    本教程介绍如何用Python编写Service和Client节点。

  16. 测试简单的Service和Client

    本教程将测试之前所写的Service和Client。

  17. 录制与回放数据

    本教程将教你如何将ROS系统运行过程中的数据录制到一个.bag文件中,然后通过回放数据来重现相似的运行过程。

  18. roswtf入门

    本教程介绍了roswtf工具的基本使用方法。

  19. 探索ROS维基

    本教程介绍了ROS维基(wiki.ros.org)的组织结构以及使用方法。同时讲解了如何才能从ROS维基中找到你需要的信息。

  20. 接下来做什么?

    本教程将讨论获取更多知识的途径,以帮助你更好地使用ROS搭建真实或虚拟机器人。

现在你已经完成了初级教程的学习,请回答这个 问卷来检验一下自己的学习效果。

中级

 

大多数客户端API的使用教程可以在相关程序包(roscpprospyroslisp)中找到。

  1. 手动创建ROS package

    本教程将展示如何手动创建ROS package

  2. 管理系统依赖项

    本教程将展示如何使用rosdep安装系统依赖项.

  3. Roslaunch在大型项目中的使用技巧

    本教程主要介绍roslaunch在大型项目中的使用技巧。重点关注如何构建launch文件使得它能够在不同的情况下重复利用。我们将使用 2dnav_pr2 package作为学习案例。

  4. ROS在多机器人上的使用

    本教程将展示如何在两台机器上使用ROS系统,详述了使用ROS_MASTER_URI来配置多台机器使用同一个master。

  5. 自定义消息

    本教程将展示如何使用ROS Message Description Language来定义你自己的消息类型.

  6. 在python中使用C++类

    本教程阐述一种在python中使用C++类的方法。

  7. 如何编写教程

    (概述:)本教程介绍在编辑ros.org维基时可以用到的模板和宏定义,并附有示例以供参考。

ROS标准

 

外部ROS资源

 

外部教程

 

外部研讨会或课件

 

在机器人上运行ROS

 

其它ROS函数库教程

 

提供ROS接口的函数库教程

 

 

-End-




<think>嗯,用户问的是关于在Ubuntu 16.04和20.04之间是否需要修改package.xml文件。首先,我需要确定package.xml通常用在什么地方。通常,package.xml是ROS(机器人操作系统)中的文件,用于定义包的依赖和元数据。ROS的不同版本对应不同的Ubuntu版本,比如ROS Kinetic对应Ubuntu 16.04,而ROS Noetic对应Ubuntu 20.04。 用户可能在迁移项目时遇到了兼容性问题。需要确认他们是否在升级系统后,原有的ROS包需要调整。首先,ROS的版本差异会导致依赖包名称变化,比如从opencv2到opencv4,或者PCL库的版本变化。此外,编译系统可能从Catkin切换到Colcon,不过这在package.xml中影响不大,但依赖项的名称可能不同。 另外,Ubuntu 20.04使用的Python 3,而16.04可能还在用Python 2。如果package.xml中有Python相关的依赖,可能需要更新为Python 3的包名。此外,构建工具如CMake的版本差异也可能影响编译,但package.xml主要处理依赖,所以需要检查是否有依赖项需要更改版本或名称。 还要考虑是否有已弃用的包被移除或替换,比如某些ROS包可能在Noetic中不再存在,需要寻找替代品。最后,建议用户使用rosdep检查依赖,并查阅ROS官方迁移指南,以确保正确修改package.xml。</think>是否需要修改`package.xml`主要取决于该文件的具体用途和依赖关系。以下是分步骤分析: $\textcolor{green}{\textbf{步骤1:确认文件用途}}$ 如果这是ROS的package.xml文件,需注意: $$ \text{Ubuntu 16.04对应ROS Kinetic,Ubuntu 20.04对应ROS Noetic} $$ 这两个ROS版本存在以下差异需要处理: - 依赖包名称变化(如:$\texttt{opencv2} \rightarrow \texttt{opencv4}$) - 系统库版本升级(如:$\texttt{PCL 1.7} \rightarrow \texttt{PCL 1.10}$) - Python 2到Python 3的强制迁移 $\textcolor{green}{\textbf{步骤2:关键修改点}}$ 需要检查以下内容是否需要调整: 1. 构建依赖($\texttt{<build_depend>}$): ```xml <!-- 旧格式 --> <build_depend>python</build_depend> <!-- 新格式需指定python3 --> <build_depend>python3</build_depend> ``` 2. 包版本要求($\texttt{<version>}$): ```xml <!-- 可能需要调整版本约束 --> <depend>eigen3</depend> <!-- 要求 >= 3.3.4 --> ``` $\textcolor{green}{\textbf{步骤3:验证方法}}$ 建议执行以下操作: 1. 使用rosdep检查依赖: $$ \texttt{rosdep install --from-paths src --ignore-src -y} $$ 2. 查看编译错误日志定位缺失依赖 3. 参考ROS官方迁移指南: $$ \texttt{https://wiki.ros.org/noetic/Migration} $$ $\textcolor{red}{\textbf{注意}}$:如果涉及硬件驱动(如NVIDIA显卡、摄像头驱动等),可能需要额外适配内核模块兼容性。建议优先使用Ubuntu 20.04官方仓库中的ROS Noetic软件包。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

zhangrelay

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

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

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

打赏作者

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

抵扣说明:

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

余额充值