首页 > 编程知识 正文

宝马carplay加装模块风险,cartographer坐标

时间:2023-05-04 11:29:08 阅读:116551 作者:4533

因为在秀丽外套的书上学习ros,所以现在看cartographer激光灌篮的章节,安装carto

但是没想到这个东西的漏洞这么多。

感谢一些重要的参考链接,这些博客的引导:

3359 blog.csdn.net/QQ _ 26482237/article/details/92676267

3359 blog.csdn.net/QQ _ 40081208/article/details/101606899

3359 blog.csdn.net/m0 _ 37923410/article/details/87407841

3359 blog.csdn.net/see see atre/article/details/84863485? epth _1- UTM _ source=distribute.PC _ relevant.none-task UTM _ source=distribute.PC _ relevant.none-task

3359 blog.csdn.net/QQ _ 38649880/article/details/87903654? epth _1- UTM _ source=distribute.PC _ relevant.none-task UTM _ source=distribute.PC _ relevant.none-task

3359 blog.csdn.net/mrh 1714348719/article/details/103803110

3359 blog.csdn.net/fk 2016/article/details/83375048

首先,我在这里使用的是官方网站的安装方法。 也就是说,是日本介绍的方法。

在那之前我们会做非常重要的准备

0 .准备工作解决下一个github克隆缓慢问题(网上很多帖子,如果无法使用常见问题解答,请考虑使用修复主机)在Google服务器域名sudo gedit /etc/resolv.conf中输入原始名称Sese

保存并关闭name服务器8.8.8.8 name服务器8.8.4.4文件。 这里是今后的wstoolmerge-tsrc https://raw.github user content.com/Google cartographer/cartographer _ ROS/master/cartographer

这一行的命令被铺就了。 (不然就晚了。 这个以后再说)

安装连接到手机热点并执行以下下载操作所需的依赖软件包: sudo apt-get install-ycmakeggitGoogle-mocklibboost-all-dev lib cairo2- devlib gflags-dev ! 这是在下面换版本安装的

请注意,有些软件包可能需要版本请求,例如gmock(Google-mock ),因此必须使用上述方法进行安装。 如果是以编译方式安装的。 求自多福吧。 因为一些库添加了C 11的新功能,但与cartographer的安装依赖项不匹配。

当然,像eigen这样的库版本可能影响不大,但可能需要更改安装位置等影响很小。

安装protobuf3是一个非常重要的步骤。 这个低版本不适用于cartographer,因为我以前安装ros的时候是proto2。 因此,重新安装proto3。

参考: https://blog.csdn.net/fk 2016/article/details/83375048

当然,作为参考,请看我这里:

卸载ros后,proto2# sudo apt-getremovelibprotobuf-dev # which protoc//运行完成“whichprotoc”中将显示protoc的路径。 如果未显示,则以下命令不需要按照# RM/usr/local/zy DLT/protoc//“which protoc”中列出的路径运行: 默认情况下,usr/zydlt/protoc很可能已经到此为止,并且较低版本的protobuf已卸载。 安装protobuf3.6.0

(1)依赖库# sudo apt-getinstallautoconfautomakelibtoolcurlmakegunzip )2)然后克隆源代码。 请注意gitsubmoduleupdate-init-recurs sip

,之前如果你没有解决github下载慢的问题(0-1),这里可能就要慢的绝望了。

# git clone -b v3.6.0 https://github.com/protocolbuffers/protobuf.git// 上述命令表示克隆版本为3.6.0的protobuf源码# cd protobuf# git submodule update --init --recursive// 该命令表示克隆protobuf的子模块,主要是gtest

(3) 编译并安装

// 进入到克隆的protobuf目录,当然,如果之前就在这个目录下不必再次cd# cd protobuf# ./autogen.sh# ./configure# make// 如果没有克隆子模块,make check会失败但是可以继续make install,但是使用某些功能时可能会出错# make check# sudo make install# sudo ldconfig// 输出protobuf版本信息则表示安装成功# protoc --version

最后,查看安装位置

which protoc

结果应该是:

可以看到,其默认下载位置为 /usr/local/zydlt/protoc
这是我们不想要的,因为carto的搜索protoc的路径为/ usr/zydlt/protoc

因此有两种调整方法,推荐第二种干脆利落:
①建立软连接

$ sudo ln -s /usr/local/zydlt/protoc /usr/zydlt/protoc

如果后悔了,如何删除软连接看这篇文章
https://blog.csdn.net/weixin_44684139/article/details/104603432
②直接copy过去

sudo cp /usr/local/zydlt/protoc /usr/zydlt

或者干脆一点手动copy

最终,安装完毕protobuf3.6的版本,并完成位置的调整。

2.安装cartographer 安装工具 sudo apt-get updatesudo apt-get install -y python-wstool python-rosdep ninja-build

2.创建工作区间"carto_ws"并初始化

mkdir carto_wscd carto_wswstool init src

3.加入cartographer_ros.rosinstall并更新依赖

如果没有进行准备工作,将谷歌服务器域名加入的话(0-2),merge这一步可能就会链接超时了。如果仍然实在不行,请参考https://www.it610.com/article/1288240522342739968.htm直接向文件中写入内容即可。

wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall输入完第一个命令后需要改文件的下载地址,另起终端输入:gedit carto_ws/src/.rosinstall将最后一个git来源网址由https://ceres-solver.googlesource.com/ceres-solver.git改为https://github.com/ceres-solver/ceres-solver.gitwstool update -t src

这里要注意的是更改最后一个ceres-solver的git来源网址

若不更改,则克隆ceres-solver的过程中会超时 time out
最终在你的工作空间中会出现 :

4.安装依赖并下载cartographer相关功能包
注意rosdistro=kinetic -y是根据自己ros的版本来的

rosdep updaterosdep install --from-paths src --ignore-src --rosdistro=kinetic -y(我默认版本为kinetic,若是其他ROS版本相应替换)

但是这里可能会报错:

ERROR: error loading sources list:
The read operation timed out

这是rosdep update的老毛病了,如果你做了准备0-3也就是换了4G进行这些操作,这里应该很容易通过。
如果还不行,则更改等待时间:

sudo vim /usr/lib/python2.7/dist-packages/rosdep2/gbpdistro_support.py

将DOWNLOAD_TIMEOUT = 15.0改成500

sudo vim /usr/lib/python2.7/dist-packages/rosdep2/sources_list.py

将DOWNLOAD_TIMEOUT = 15.0改成500

sudo vim /usr/lib/python2.7/dist-packages/rosdep2/rep3.py

将DOWNLOAD_TIMEOUT = 15.0改成500

注意,三者缺一不可(当然啦,500这个数是随缘给的,比以前的数字大就行)
然后再次rosdep update成功几率会变大,如果卡住可以重新再来几次

编译并安装 catkin_make_isolated --install --use-ninjasource install_isolated/setup.bash

如果catkin_make_isolated --install --use-ninja这一步报错了(如:…proto…未定义的引用的错误等)!那么不妙,可能是你的protoc3未安装成功或protoc2有残留,当然最乐观的情况是你没有调整protoc的位置,只需要回到步骤1-2-3去调整位置即可
,否则需要卸载干净protoc2或者3,并重新安装protoc3,并重新进行所有步骤

也会报一些其他奇葩的错误,如gmock库需要C++11标准,等等。就是因为依赖库的版本不对。需要将其卸载并重新安装。
重新安装的话,就是用上面的一开始0.准备工作中介绍的安装方式。当然了,这里可能得用sudo apt-get install … --reinstall

如果没报错,则安装成功。

当然,可以将最后这行命令放到bashrc文件中,否则每次运行demo都需要输入一遍,否则找不到launch文件
采用:

source /home/mjy/dev/carto_ws/install_isolated/setup.bash

也可以手动添加,bashrc文件位于home/下的隐藏文件。

6.尾声——测试
在cartographer官网
①先下载个2D包,如

然后进行编译:
其格式为
roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=跟上bag的路径

roslaunch cartographer_ros demo_backpack_2d.launch bag_filename:=/home/mjy/dev/carto_ws/b0-2014-07-21-12-42-53.bag


②再测试个3D包

roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=跟上bag的路径

roslaunch cartographer_ros demo_backpack_3d.launch bag_filename:=/home/mjy/dev/carto_ws/b3-2016-03-01-13-39-41.bag

3.补充

如果你要安装turtlebot,则还是原先的流程,新建一个工作空间,然后balabala…
只不过需要将

wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_ros/master/cartographer_ros.rosinstall

也就是需要谷歌服务器那一句改为:

wstool merge -t src https://raw.githubusercontent.com/googlecartographer/cartographer_turtlebot/master/cartographer_turtlebot.rosinstall

就可以,其余流程一样,可参考:https://www.ncnynl.com/archives/201810/2777.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。