从零开始搭建一台 ROS 开源迷你无人车学习笔记(1)

本文按照 Neor_mini 进行学习,记录学习过程中遇到的一些问题以及解决方法,如有错误还请批评指正!
教程:https://zhuanlan.zhihu.com/p/38043523


一、安装 VMware 并在虚拟机中安装 Ubuntu

  1. 下载 Ubuntu 镜像文件,考虑在虚拟机安装还是双系统,在网上看到说涉及硬件安装双系统,不涉及硬件安装虚拟机更好,考虑到查阅一些博客后发现虚拟机有快照等便捷功能,最终决定在虚拟机上安装 Ubuntu
  2. 下载 VMware 安装程序,综合推荐 VMware Workstation16,决定安装 16 版本
  3. 按照 csdn 上别人写的博客安装好 ubuntu,链接 https://blog.csdn.net/u013142781/article/details/50529030,成功运行,也可以按照视频操作:https://www.bilibili.com/video/BV1zt411G7Vn?p=2

二、在 Ubuntu 中安装 ROS

安装好 ubuntu 后下一步是安装 ROS melodic,遇到以下问题:

  • 键入命令行时,想打双引号 “,但输出的是 @,原因为当时安装的时候 keyboard 选中 English (UK),进入 Settings,选中 Region&Language,在 Input Sources 处点击”+“,将 English(US)加入备选项,再点击”↑“,将 English (US) 作为首选项即可解决
  • 需要注意的地方,Ubuntu 不同版本对应不同 ROS 版本,实例中所用为 Ubuntu 18.04 版本,所以想要用 ROS melodic,必须要安装 18.04 的 Ubuntu(或者 Ubuntu Artful 17.10 也可以)
  • 按照 wiki 中如果有问题可以参照 https://blog.csdn.net/haiyinshushe/article/details/84256137
  • 最开始选的时候担心 Ubuntu 安装英文最好,但后面发现中文可能也没有大的问题,就按照这个装了中文 https://blog.csdn.net/fuyongchang/article/details/86681959
  • 无法完成宿主机的复制→虚拟机的粘贴,解决办法:安装 VMtools,具体过程如下 https://blog.csdn.net/blessed_sy/article/details/81173746
  • 如果无法定位软件包的错误出现时,就用国内镜像,建议用清华的,如果在 sudo apt update 出现密钥错误,看缺少的公钥是什么,执行代码 sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 76F1A20FF987672F   后面那个 76F1A20FF987672F 换成缺少的密钥,是什么就换成什么 ,然后在执行 sudo apt-get update 和 sudo apt update
  1. 成功后执行 sudo apt install ros-melodic-desktop-full,需要等比较久的时间,不知道是不是我在老家网速的问题,花了将近 5 个小时才下完。
  2. 之后就是按照流程,但在 sudo rosdep init 这一步卡住了,查询应该是无法访问 raw.githubusercontent.com 的原因,按照各路人士的方法做了一天也没解决,最后看到了这一个回答 https://www.zhihu.com/question/354547229,完美解决!
  3. 直接 roscore 发现 not found,找到原来是因为没有配置环境变量,按要求配置环境变量,结果配置环境变量又出了问题,配置环境时出现没有文件或目录,按照以下两个方法才解决

https://www.cnblogs.com/arxive/p/13341802.html,http://www.bubuko.com/infodetail-3391157.html


三、URDF 文件

1.git github 太慢的话,可以考虑这个解决办法 https://blog.csdn.net/weixin_51015707/article/details/121557471

2. 学不懂可以看看这个,有所帮助 https://blog.csdn.net/m0_57943685/article/details/122431213

3. 按照流程接触到 urdf 时,非常的困惑,想来这个教程应该是针对有一定 ROS 基础的人写的, 于是先去学了一下 ROS 基础课,参照 https://www.bilibili.com/video/BV1zt411G7Vn?from=search&seid=15151906265625199636&spm_id_from=333.337.0.0

4. 学完开始按照教程里改动原有的 urdf 文件,苦于不知道如何进行可视化操作,就去网上搜了一下 rviz 的操作方法,大致步骤是 catkin_make 编译→配置环境变量→roslaunch 相应的 display.launch 文件

5. 进行完上一步后可能在 rviz 中的 robot model 里发现错误 ROS No transform from [sth] to [sth],建议按照以下解决:https://blog.csdn.net/hitgavin/article/details/51997379,特别注意评论中的 GUI 问题,我就是因为没有安装 GUI 插件导致了问题的产生

6. 如果 rviz 中什么都看不到,那可能是 urdf 文件本身在改动的时候出了问题,ROS 为用户提供了一个检查 URDF 语法的命令:check_urdf,可以去网上查找相应的资料,检查成功后会有类似如下所示的返回值(如果你希望以图形的方式来查看它,那么可以使用 urdf_to_graphiz 命令工具):

robot name is:  xxxx

---------- Successfully Parsed XML ---------------

root Link: base_link has 4 child(ren)

child(1): wheel1

child(2): wheel2

child(3): wheel3

child(4): wheel4

7. 题外话,APP 里写 UI 界面和 URDF 文件的格式很类似,这也对我理解 URDF 文件有很大帮助,我的理解就是先写部件,部件中的属性就约束了部件之间的关系,拥有层级,有的部件必须写在某些部件内,比如 android 中的 layout 下可以嵌套 layout,嵌套的 layout 中可以写其他的控件

8. 加入 gazebo 标签这一步,教程中有一个小错误,plugin name 中间要有一个空格,不然 check_urdf 会报错

你可能感兴趣的:(ubuntu,c++,自动驾驶)