一、安装ros
参考教程
【官网】http://wiki.ros.org/cn/kinetic/Installation/Ubuntu
【博客】https://www.cnblogs.com/kekeoutlook/p/13799189.html
安装ros时遇到问题
问题一
有一些软件包无法被安装。如果您用的是 unstable 发行版,这也许是
因为系统无法达到您要求的状态造成的。该版本中可能会有一些您需要的软件
包尚未被创建或是它们已被从新到(Incoming)目录移出。
下列信息可能会对解决问题有所帮助:
下列软件包有未满足的依赖关系:
ros-kinetic-desktop-full : 依赖: ros-kinetic-desktop 但是它将不会被安装
依赖: ros-kinetic-perception 但是它将不会被安装
依赖: ros-kinetic-simulators 但是它将不会被安装
E: 无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
遇到这类问题时,可以观察他缺少的依赖,然后安装一下其他软件测试下源有无问题,如新安装软件im,sudo apt-get install vim
没有蹦出来这些依赖问题,则源无问题,可直接尝试安装缺少的依赖
sudo apt-get install ros-kinetic-desktop ros-kinetic-perception ros-kinetic-simulators
安装完上述三个后,再执行
sudo apt-get install ros-kinetic-desktop-full
即可
问题二
找不到sudo rosdep init命令
sudo rosdep init command not found
执行命令
pip install python3-rosdep //自动把我安装的ros卸载了
pip install python2-rosdep//E: 无法定位软件包 python2-rosdep
sudo apt-get install python-rosinstall//不顶事,还是无法找到该命令
发现不管用
最终执行命令
sudo apt install rospack-tools//能找到该命令,并且执行,
发现可以成功运行,,但是又出来一个新的问题
ERROR: Rosdep experienced an error: hostname 'raw.githubusercontent.com' doesn't match either of 'default.ssl.fastly.net', 'fastly.com', '*.a.ssl.fastly.net', '*.hosts.fastly.net', '*.global.ssl.fastly.net', '*.fastly.com', 'a.ssl.fastly.net', 'purge.fastly.net', 'mirrors.fastly.net', 'control.fastly.net', 'tools.fastly.net'
Please go to the rosdep page [1] and file a bug report with the stack trace below.
[1] : http://www.ros.org/wiki/rosdep
rosdep version: 0.19.0
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/rosdep2/main.py", line 144, in rosdep_main
exit_code = _rosdep_main(args)
File "/usr/lib/python3/dist-packages/rosdep2/main.py", line 428, in _rosdep_main
return _no_args_handler(command, parser, options, args)
File "/usr/lib/python3/dist-packages/rosdep2/main.py", line 437, in _no_args_handler
return command_handlers[command](options)
File "/usr/lib/python3/dist-packages/rosdep2/main.py", line 581, in command_init
data = download_default_sources_list()
File "/usr/lib/python3/dist-packages/rosdep2/sources_list.py", line 331, in download_default_sources_list
f = urlopen(url, timeout=DOWNLOAD_TIMEOUT)
File "/usr/lib/python3.6/urllib/request.py", line 223, in urlopen
return opener.open(url, data, timeout)
File "/usr/lib/python3.6/urllib/request.py", line 526, in open
response = self._open(req, data)
File "/usr/lib/python3.6/urllib/request.py", line 544, in _open
'_open', req)
File "/usr/lib/python3.6/urllib/request.py", line 504, in _call_chain
result = func(*args)
File "/usr/lib/python3.6/urllib/request.py", line 1368, in https_open
context=self._context, check_hostname=self._check_hostname)
File "/usr/lib/python3.6/urllib/request.py", line 1325, in do_open
encode_chunked=req.has_header('Transfer-encoding'))
File "/usr/lib/python3.6/http/client.py", line 1264, in request
self._send_request(method, url, body, headers, encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1310, in _send_request
self.endheaders(body, encode_chunked=encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1259, in endheaders
self._send_output(message_body, encode_chunked=encode_chunked)
File "/usr/lib/python3.6/http/client.py", line 1038, in _send_output
self.send(msg)
File "/usr/lib/python3.6/http/client.py", line 976, in send
self.connect()
File "/usr/lib/python3.6/http/client.py", line 1425, in connect
server_hostname=server_hostname)
File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket
_context=self, _session=session)
File "/usr/lib/python3.6/ssl.py", line 817, in __init__
self.do_handshake()
File "/usr/lib/python3.6/ssl.py", line 1077, in do_handshake
self._sslobj.do_handshake()
File "/usr/lib/python3.6/ssl.py", line 694, in do_handshake
match_hostname(self.getpeercert(), self.server_hostname)
File "/usr/lib/python3.6/ssl.py", line 327, in match_hostname
% (hostname, ', '.join(map(repr, dnsnames))))
ssl.CertificateError: hostname 'raw.githubusercontent.com' doesn't match either of 'default.ssl.fastly.net', 'fastly.com', '*.a.ssl.fastly.net', '*.hosts.fastly.net', '*.global.ssl.fastly.net', '*.fastly.com', 'a.ssl.fastly.net', 'purge.fastly.net', 'mirrors.fastly.net', 'control.fastly.net', 'tools.fastly.net'
查看解析说,ros是基于python2版本的,所以将自己的python版本更换到了ubuntu自带的2.7版本,重新初始化还是不行,报同样的错误。在网上看了一圈,发现很多人有这个问题
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.
寻思着会不会是同样的问题,不过是报的错不一样,尝试者用这篇博客里的方法,发现问题居然解决了(antother references link:https://www.cnblogs.com/JuiceCat/p/12000953.html)
1.通过IPAddress.com首页,输入raw.githubusercontent.com查询到真实IP地址
2.打开Ubuntu终端,输入:
sudo gedit /etc/hosts
3.在之中添加:
199.232.68.133 raw.githubusercontent.com//前面的地址替换为自己的真实ip地址
ning@ning:/etc/ros/rosdep/sources.list.d$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml]:
<urlopen error [Errno 104] Connection reset by peer> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml)
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml]:
<urlopen error [Errno 104] Connection reset by peer> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml)
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml]:
<urlopen error [Errno 104] Connection reset by peer> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml)
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml]:
<urlopen error [Errno 104] Connection reset by peer> (https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml)
ERROR: unable to process source [https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml]:
Failed to download target platform data for gbpdistro:
<urlopen error [Errno 104] Connection reset by peer>
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
ERROR: error loading sources list:
<urlopen error <urlopen error [Errno 104] Connection reset by peer> (https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml)>
二、安装bebop_autonomy
安装教程
【官网】https://bebop-autonomy.readthedocs.io/en/latest/installation.html#compiling-from-source
总体来说很顺利,最后执行catkin-build时,遇到问题
最初以为是cmake版本问题,因为我和一位同学的cmake均为3.10均失败了,而cmake版本为3.17的同学成功了,所以开始更换cmake版本,重新编译bebop_autonomy失败,更换cmake版本的链接为。于是卸载ros,重新下载安装,再编译bebop_autonomy,失败。仔细观察出错的地方,都像是c++本身的问题,于是尝试着在
/home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/CMakeLists.txt文件中加入编译选项
cmake_minimum_required(VERSION 2.8.3)
project(bebop_driver)
add_compile_options(-std=c++11)//添加在第三行
编译成功!
/opt/ros/melodic/include/class_loader/class_loader_core.hpp:183:7: 错误:‘nullptr’在此作用域中尚未声明
if (nullptr == getCurrentlyActiveClassLoader()) {
^
/opt/ros/melodic/include/class_loader/class_loader_core.hpp: 在函数‘Base* class_loader::impl::createInstance(const string&, class_loader::ClassLoader*)’中:
/opt/ros/melodic/include/class_loader/class_loader_core.hpp:242:40: 错误:‘nullptr’在此作用域中尚未声明
AbstractMetaObject<Base> * factory = nullptr;
^
/opt/ros/melodic/include/class_loader/class_loader_core.hpp: 在函数‘std::vector<std::__cxx11::basic_string<char> > class_loader::impl::getAvailableClasses(class_loader::ClassLoader*)’中:
/opt/ros/melodic/include/class_loader/class_loader_core.hpp:300:15: 错误:ISO C++ 不允许声明无类型的‘it’ [-fpermissive]
for (auto & it : factory_map) {
^
/opt/ros/melodic/include/class_loader/class_loader_core.hpp:300:20: 警告:range-based ‘for’ loops only available with -std=c++11 or -std=gnu++11
for (auto & it : factory_map) {
^
/opt/ros/melodic/include/class_loader/class_loader_core.hpp:301:43: 错误:对成员‘second’的请求出现在‘it’中,而后者具有非类类型‘int’
AbstractMetaObjectBase * factory = it.second;
^
/opt/ros/melodic/include/class_loader/class_loader_core.hpp:303:28: 错误:对成员‘first’的请求出现在‘it’中,而后者具有非类类型‘int’
classes.push_back(it.first);
^
/opt/ros/melodic/include/class_loader/class_loader_core.hpp:304:35: 错误:‘nullptr’在此作用域中尚未声明
} else if (factory->isOwnedBy(nullptr)) {
^
/opt/ros/melodic/include/class_loader/class_loader_core.hpp:305:42: 错误:对成员‘first’的请求出现在‘it’中,而后者具有非类类型‘int’
classes_with_no_owner.push_back(it.first);
^
In file included from /opt/ros/melodic/include/pluginlib/./class_list_macros.hpp:40:0,
from /opt/ros/melodic/include/pluginlib/class_list_macros.h:35,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:26:
/opt/ros/melodic/include/class_loader/class_loader.hpp: 在全局域:
/opt/ros/melodic/include/class_loader/class_loader.hpp:82:3: 错误:expected unqualified-id before ‘using’
using DeleterType = std::function<void(Base *)>;
^
/opt/ros/melodic/include/class_loader/class_loader.hpp:85:3: 错误:expected unqualified-id before ‘using’
using UniquePtr = std::unique_ptr<Base, DeleterType<Base>>;
^
/opt/ros/melodic/include/class_loader/class_loader.hpp:127:8: 错误:‘shared_ptr’ in namespace ‘std’ does not name a template type
std::shared_ptr<Base> createSharedInstance(const std::string & derived_class_name)
^
/opt/ros/melodic/include/class_loader/class_loader.hpp:160:3: 错误:‘UniquePtr’不是一个类型名
UniquePtr<Base> createUniqueInstance(const std::string & derived_class_name)
^
In file included from /opt/ros/melodic/include/pluginlib/./class_list_macros.hpp:40:0,
from /opt/ros/melodic/include/pluginlib/class_list_macros.h:35,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:26:
/opt/ros/melodic/include/class_loader/class_loader.hpp: 在成员函数‘void class_loader::ClassLoader::onPluginDeletion(Base*)’中:
/opt/ros/melodic/include/class_loader/class_loader.hpp:246:9: 错误:‘nullptr’在此作用域中尚未声明
if (nullptr == obj) {
^
In file included from /usr/local/include/boost/assert.hpp:58:0,
from /usr/local/include/boost/thread/pthread/pthread_mutex_scoped_lock.hpp:10,
from /usr/local/include/boost/thread/pthread/recursive_mutex.hpp:23,
from /usr/local/include/boost/thread/recursive_mutex.hpp:16,
from /opt/ros/melodic/include/class_loader/class_loader.hpp:37,
from /opt/ros/melodic/include/pluginlib/./class_list_macros.hpp:40,
from /opt/ros/melodic/include/pluginlib/class_list_macros.h:35,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:26:
/opt/ros/melodic/include/class_loader/class_loader.hpp: 在成员函数‘Base* class_loader::ClassLoader::createRawInstance(const string&, bool)’中:
/opt/ros/melodic/include/class_loader/class_loader.hpp:302:19: 错误:‘nullptr’在此作用域中尚未声明
assert(obj != nullptr); // Unreachable assertion if createInstance() throws on failure
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h: 在全局域:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 错误:‘array’不是‘std’的成员
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 错误:‘array’不是‘std’的成员
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:81: 错误:可疑的‘>>’,使用‘>’来结束模板实参列表
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:81: 错误:模板参数数目不对(不应是 2 个而应是 1 个)
In file included from /opt/ros/melodic/include/tf2/convert.h:36:0,
from /opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:35,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:
/opt/ros/melodic/include/tf2/transform_datatypes.h:44:7: 附注:提供给‘template<class T> class tf2::Stamped’
class Stamped : public T{
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 错误:‘array’不是‘std’的成员
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 错误:‘array’不是‘std’的成员
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:81: 错误:可疑的‘>>’,使用‘>’来结束模板实参列表
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:81: 错误:模板参数数目不对(不应是 2 个而应是 1 个)
In file included from /opt/ros/melodic/include/tf2/convert.h:36:0,
from /opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:35,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:
/opt/ros/melodic/include/tf2/transform_datatypes.h:44:7: 附注:提供给‘template<class T> class tf2::Stamped’
class Stamped : public T{
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 错误:‘array’不是‘std’的成员
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 错误:‘array’不是‘std’的成员
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:81: 错误:可疑的‘>>’,使用‘>’来结束模板实参列表
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:81: 错误:模板参数数目不对(不应是 2 个而应是 1 个)
In file included from /opt/ros/melodic/include/tf2/convert.h:36:0,
from /opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:35,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:
/opt/ros/melodic/include/tf2/transform_datatypes.h:44:7: 附注:提供给‘template<class T> class tf2::Stamped’
class Stamped : public T{
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 错误:‘array’不是‘std’的成员
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 错误:‘array’不是‘std’的成员
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:55: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:81: 错误:可疑的‘>>’,使用‘>’来结束模板实参列表
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:81: 错误:模板参数数目不对(不应是 2 个而应是 1 个)
In file included from /opt/ros/melodic/include/tf2/convert.h:36:0,
from /opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:35,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:
/opt/ros/melodic/include/tf2/transform_datatypes.h:44:7: 附注:提供给‘template<class T> class tf2::Stamped’
class Stamped : public T{
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:42: 错误:使用模板名‘tf2::Stamped’时不带实参表无效
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1009:54: 错误:expected ‘,’ or ‘...’ before ‘<’ token
geometry_msgs::WrenchStamped toMsg(const tf2::Stamped<std::array<tf2::Vector3, 2>>& in, geometry_msgs::WrenchStamped & out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h: 在函数‘geometry_msgs::WrenchStamped tf2::toMsg(int)’中:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1011:3: 错误:‘out’在此作用域中尚未声明
out.header.stamp = in.stamp_;
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1011:22: 错误:‘in’在此作用域中尚未声明
out.header.stamp = in.stamp_;
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h: 在全局域:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:68: 错误:‘array’不是‘std’的成员
void fromMsg(const geometry_msgs::WrenchStamped& msg, tf2::Stamped<std::array<tf2::Vector3, 2>>& out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:68: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:68: 错误:‘array’不是‘std’的成员
void fromMsg(const geometry_msgs::WrenchStamped& msg, tf2::Stamped<std::array<tf2::Vector3, 2>>& out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:68: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:94: 错误:可疑的‘>>’,使用‘>’来结束模板实参列表
void fromMsg(const geometry_msgs::WrenchStamped& msg, tf2::Stamped<std::array<tf2::Vector3, 2>>& out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:94: 错误:模板参数数目不对(不应是 2 个而应是 1 个)
In file included from /opt/ros/melodic/include/tf2/convert.h:36:0,
from /opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:35,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:
/opt/ros/melodic/include/tf2/transform_datatypes.h:44:7: 附注:提供给‘template<class T> class tf2::Stamped’
class Stamped : public T{
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:68: 错误:‘array’不是‘std’的成员
void fromMsg(const geometry_msgs::WrenchStamped& msg, tf2::Stamped<std::array<tf2::Vector3, 2>>& out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:68: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:68: 错误:‘array’不是‘std’的成员
void fromMsg(const geometry_msgs::WrenchStamped& msg, tf2::Stamped<std::array<tf2::Vector3, 2>>& out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:68: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:94: 错误:可疑的‘>>’,使用‘>’来结束模板实参列表
void fromMsg(const geometry_msgs::WrenchStamped& msg, tf2::Stamped<std::array<tf2::Vector3, 2>>& out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:94: 错误:模板参数数目不对(不应是 2 个而应是 1 个)
In file included from /opt/ros/melodic/include/tf2/convert.h:36:0,
from /opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:35,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:
/opt/ros/melodic/include/tf2/transform_datatypes.h:44:7: 附注:提供给‘template<class T> class tf2::Stamped’
class Stamped : public T{
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:60: 错误:‘tf2::Stamped’不是一个类型
void fromMsg(const geometry_msgs::WrenchStamped& msg, tf2::Stamped<std::array<tf2::Vector3, 2>>& out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1020:67: 错误:expected ‘,’ or ‘...’ before ‘<’ token
void fromMsg(const geometry_msgs::WrenchStamped& msg, tf2::Stamped<std::array<tf2::Vector3, 2>>& out)
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h: 在函数‘void tf2::fromMsg(const WrenchStamped&, int)’中:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1022:3: 错误:‘out’在此作用域中尚未声明
out.stamp_ = msg.header.stamp;
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1028:3: 错误:‘array’不是‘std’的成员
std::array<tf2::Vector3, 2> tmp_array;
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1028:3: 附注:建议的替代:
In file included from /opt/ros/melodic/include/ros/message.h:38:0,
from /opt/ros/melodic/include/ros/publisher.h:33,
from /opt/ros/melodic/include/ros/node_handle.h:32,
from /opt/ros/melodic/include/ros/ros.h:45,
from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:25:
/usr/local/include/boost/array.hpp:61:11: 附注: ‘boost::array’
class array {
^
In file included from /home/ning/bebop_ws/src/bebop_autonomy/bebop_driver/src/bebop_driver_nodelet.cpp:31:0:
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1028:26: 错误:expected primary-expression before ‘,’ token
std::array<tf2::Vector3, 2> tmp_array;
^
/opt/ros/melodic/include/tf2_geometry_msgs/tf2_geometry_msgs.h:1028:31: 错误:‘tmp_array’在此作用域中尚未声明
std::array<tf2::Vector3, 2> tmp_array;
^
make[2]: *** [CMakeFiles/bebop_driver_nodelet.dir/src/bebop_driver_nodelet.cpp.o] Error 1
make[1]: *** [CMakeFiles/bebop_driver_nodelet.dir/all] Error 2
make: *** [all] Error 2
cd /home/ning/bebop_ws/build/bebop_driver; catkin build --get-env bebop_driver | catkin env -si /usr/bin/make --jobserver-fds=6,7 -j; cd -
.....................................................................................................................................
Failed << bebop_driver:make [ Exited with code 2 ]
Failed <<< bebop_driver [ 3.0 seconds ]
Abandoned <<< bebop_tools [ Unrelated job failed ]
[build] Summary: 2 of 4 packages succeeded.
[build] Ignored: 1 packages were skipped or are blacklisted.
[build] Warnings: None.
[build] Abandoned: 1 packages were abandoned.
[build] Failed: 1 packages failed.
[build] Runtime: 3.6 seconds total.