Skip to content

拥有 ROS2GO 后,你可以做什么

作为开发者,我能想到至少可以使用 ROS2GO 做以下几件事:

  • 学习,使用 ROS,进行机器人系统设计
  • 学习,研究机器人感知,SLAM
  • 学习,研究机器人控制,集群控制
  • 在 Gazebo 中进行仿真,验证算法 idea

开箱即用

  • 一键切换的 ROS1,ROS2 环境
  • 各种预置好的 ROS 1,2 驱动功能包,具体支持如下表
硬件设备ROS1ROS2
激光雷达--------------------
Livox mid360由于 mid360 的 json 配置 IP 需要用到唯一 S/N 码,所以没有直接集成
Velodyne已支持已支持
Osight已支持已支持
RPLIDAR已支持-----
YDLIDAR已支持-----
HOKUYO已支持-----
相机--------------------
摄像头已支持已支持
Astra已支持已支持
Intel Realsense已支持已支持
ZED2iSDK 需要安转 CUDA,所以没有直接集成

方便的开发环境依赖

  • Google 三件套:Glog,GFlags,Gtest
  • 强大的非线性优化库 Ceres Solver
  • 强大的线性代数运算库 Eigen
  • 强大的图像处理库 OpenCV
  • 强大的三维重建库 PCL
  • 此外你可以根据需要,安装其他你喜欢的软件依赖,比如 G2O,Pangolin,Sophus,Gtsam,DBow3 等等,熟悉优秀的开源算法库,足以让你在实现机器人算法时如鱼得水,事半功倍

各种常用软件

  • VScode
  • GIMP 类似 PS 的强大图像处理软件
  • LinuxQQ
  • Timeshift 增量式备份神器
  • Ctrl + Space,Shift 一键中英文切换的搜狗输入法
  • Ctrl + Alt + A 一键开启火焰截图
  • 此外你可以根据需要,安装其他你喜欢的软件,比如 OBS Studio,Blender,Rustdesk 等等

丰富的学习资源

  • 首先是 GAZEBO 仿真,为了便于集中整理和分类,我们通过运动方式和底盘类型来划分不同的仿真实例。你可以看到不限于差速,阿克曼,全向轮式机器人,机械臂,足式机器人,无人机,机器人集群的相应仿真,如何将他们快速地运行起来,可以参考机器人的仿真模拟部分来进行

  • 其次是 ROS1,ROS2 优秀 Tutorial,代码 Example,可以在 study_wsros2_study_ws 中找到,你可以对照 B 站古月居视频学习,具体位置在ROS2GO 资料使用说明中查看

安装深度学习环境

注意

安装 Nvidia 驱动有可能会导致无法进入系统图形界面,如果中招,请使用 Timeshift 快照恢复到安装 N 卡驱动前的一个版本,所以在操作前请 Timeshift 备份好数据,未备份或误操作导致文件系统损坏,个人数据丢失,天之博特不承担任何责任。

提示

在安装好深度学习环境之后,请先使用 Timeshift 进行备份,由于 Nvidia 驱动更新频繁,所以请务必在安装好驱动进行备份,否则某次不经意的系统更新就会导致 Nvidia 驱动崩溃(内核版本不匹配),所以在安装 N 卡驱动后不要轻易进行 Software Updater,这会导致已安装的 N 卡驱动和 DL 环境无法正常使用。

以强化学习为例,Gym 的 python 运行环境对依赖库的版本要求极严格,所以各种库版本冲突则是太正常不过了。

  • N 卡驱动:万事开头难,就是需要安装环境,如果你的笔记本有 Nvidia GPU,那么对你来说,在 ROS2GO 上装显卡驱动则是个技术活。
    • 在安装之前,记得一定要先进行 TimeShift 备份,因为安装显卡驱动之后,你的系统很可能会崩溃,然后你就大概率要重新安装系统,当然新手玩家不建议这么做哈。当然,如果你愿意花时间去折腾,那么你将获得更多不一样的体验,这对你的提升是大有裨益的。
  • Miniconda:然后你需要一个干净的 Python 环境管理工具,选择 Miniconda,如果环境有问题,重装一个就可以,不至于把系统环境搞崩,毕竟一个干净的 Python 环境,一套 Pytorch + Onnx + TensorRT 环境,能先把代码跑起来就是最关键的。尽量避免一行代码还没有跑起来,就出现各种奇奇怪怪的依赖库报错。
  • 容器化部署的 Docker:最后你还需要一个可以方便部署的环境,Docker 是个不错的选择,有了一个 Docker 镜像,你就可以在任意一台 Linux 机器上运行你的深度学习代码了,非常方便。一份代码,到处运行,何乐而不为呢?