一、luna更替
1.非重大更新
- 禁止了spinners在同一个队列中的使用。
- log文件现在可以依据节点名称命名。
- python log文件支持yaml格式。
2.重大更新
robot_model元包将被舍弃。
robot_model包含用于对机器人信息的各个方面进行建模的软件包,
这些软件包以Xml机械格式(URDF)进行描述。
该堆栈的核心软件包是urdf,它解析URDF文件,
并构造机器人的对象模型(C ++)。
替代包:collada_parser, collada_urdf, joint_state_publisher, kdl_parser, resource-retriever, urdf, urdf_parser_plugin, liburdfdom-tools instead.
sudo apt-get install ros-melodic-collada-parser
sudo apt-get install ros-melodic-collada-urdf
sudo apt-get install ros-melodic-joint-state-pulisher
sudo apt-get install ros-melodic-joint-kdl-parser
sudo apt-get install ros-melodic-resource-retriever
sudo apt-get install ros-melodic-resource-urdf
sudo apt-get install ros-melodic-resource-urdf-parser-plugin
sudo apt-get install ros-melodic-resource-liburdfdom-tools
二、melodic更替
1.非重大更新
- 从c++11到c++14
- opencv最低支持3.2
- rviz中的tf1 API将在下个版本中弃用,请尽量基于tf2
- 在xacro中的
--inorder
选项现在是默认值了 - 尽量使用<class_loader/class_loader.hpp> 代替 <class_loader/class_loader.h>
class_loader软件包是与ROS无关的软件包,用于在运行时加载插件, 并且是更高级别的ROS“ pluginlib”库的基础。 class_loader利用主机操作系统的runtime载器打开runtime库(例如.so / .dll文件), 对库中的已导出插件类进行自检, 并允许用户实例化所导出类的对象而无需显式声明(即头文件)这些类。
- pluginlib和class_loader已从“ros_base”元软件包移至“ros_core”元软件包
2.重大更新
2.1 kdl_parser包更新
(一).2 中提到的kdl_parser(运动和动力库)弃用了tinyxml
//过去是:
bool treeFromXml(TiXmlDocument * xml_doc,KDL :: Tree&tree
// 现在是:
bool treeFromXml(const tinyxml2 :: XMLDocument * xml_doc,KDL :: Tree&tree)
2.2 urdf包更新
(一).2 中提到的urdf同样对tinyxml2进行了支持
//过去是:
bool initXml(TiXmlElement * xml)
bool initXml(TiXmlDocument * xml)
//现在是:
bool initXml(const tinyxml2::XMLElement *xml)
bool initXml(const tinyxml2::XMLDocument *xml)
2.3 plugin_tool被从melodic中移除
现在plugin_tool是无效函数了。且应尽量使用<pluginlib/class_loader.hpp>,<pluginlib/class_desc.hpp>
创建用于非ROS软件包的插件时,应使用class_loader;
将插件导出到ROS软件包时,应使用pluginlib。
来源:CSDN
作者:gua_MASS
链接:https://blog.csdn.net/gua_MASS/article/details/103916144