同步操作将从 xiihoo-robot/DIY_A_SLAM_Navigation_Robot 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
本仓库的code文件夹中包含4个子文件夹,分别为driver、carto、nav和apps;其中文件夹driver中存放的是miiboo机器人相关的底层ROS驱动包源码,文件夹carto中存放的是google开源SLAM算法(即cartographer)相关的核心算法库以及ROS接口调用项目的源码,文件夹nav中存放的是导航相关的核心算法库、插件以及ROS接口调用项目的源码,文件夹apps中存放的是用户应用层业务逻辑代码。
文件夹 | 源码包 | 说明 |
---|---|---|
driver | miiboo | 机器人底盘驱动(电机控制和URDF模型) |
miiboo_imu | IMU传感器驱动 | |
usb_cam | USB摄像头驱动 | |
ydlidar | 激光雷达驱动 | |
broadcast_ip | 广播本机IP地址 | |
carto | cartographer_ros | cartographer算法的ROS接口调用 |
cartographer | cartographer算法的核心库 | |
ceres-solver | cartographer算法中需要调用的非线性优化库 | |
nav | navigation-kinetic-devel | 导航功能包集 |
teb_local_planner | teb路径规划插件 | |
miiboo_nav | 导航算法的ROS接口调用 | |
apps | miiboo_asr | 语音交互应用程序 |
patrol | 指定路线巡航应用程序 |
在正式编译本仓库内的代码之前,你需要先搭建好“miiboo”机器人的软硬件环境。硬件环境是指机器人的传感器(电机控制板、激光雷达、IMU、摄像头等)以及主机(比如树莓派、Jetson nano/tx1/tx2、RK3399等开发板);软件环境是指机器人所搭载主机的操作系统(也就是ubuntu 16.04 或 ubuntu-mate 16.04)以及ROS系统(也就是ROS kinetic)。
如果“miiboo”机器人的软硬件环境已经搭建完毕,就可以将本仓库 https://github.com/xiihoo/DIY_A_SLAM_Navigation_Robot 或 https://gitee.com/xiihoo-robot/DIY_A_SLAM_Navigation_Robot 的代码下载或者克隆到你自己的计算机,并且将下载或克隆下来的所有文件拷贝到你的机器人主机备用,其实只需要将文件夹code中的内容拷贝到你的机器人主机。 由于code文件夹下的driver、carto、nav和apps都是ROS功能包或ROS功能包集,所以不能直接编译,而是需要放在特定的ROS工作空间才能编译。
请按教程(《自己动手做一台SLAM导航机器人》第二章:ROS入门)中的方法在机器人主机端新建一个catkin_ws工作空间,然后将本项目提供的"code/driver/"路径中的所有功能包拷贝到该工作空间的"catkin_ws/src/"路径中,最后使用catkin_make命令编译即可。
由于cartographer算法采用catkin_make_isolated命令编译,这与传统的catkin_make命令编译有所不同。因此这里要为cartographer算法专门新建一个catkin_ws_carto工作空间,然后按照cartographer官方教程步骤或者本项目的教程(《自己动手做一台SLAM导航机器人》第六章:SLAM建图与自主避障导航)将cartographer算法安装到catkin_ws_carto工作空间。由于实际使用中需要对cartographer算法的部分代码以及配置文件进行修改,所以大家需要将本项目提供的"code/carto/"路径中的源码覆盖到上面默认源码安装路径“catkin_ws_carto/src/”。源码覆盖完成后,使用catkin_make_isolated命令重新编译即可生效。
由于nav里面包含的功能包很多,为了便于管理维护。这里同样为其专门新建一个catkin_ws_nav工作空间,接着将本项目提供的"code/nav/"路径中的所有功能包拷贝到该工作空间的"catkin_ws_nav/src/"路径中,然后按照本项目的教程(《自己动手做一台SLAM导航机器人》第六章:SLAM建图与自主避障导航)进行编译。
同样为了便于管理维护,这里为apps里面包含的功能包专门新建一个catkin_ws_apps工作空间。接着将本项目提供的"code/apps/"路径中的所有功能包拷贝到该工作空间的"catkin_ws_apps/src/"路径中,然后按照本项目的教程(《自己动手做一台SLAM导航机器人》第六章:SLAM建图与自主避障导航、第七章:语音交互与自然语言处理)进行编译。
当所以源码都编译完成后,就可以按照需求顺序启动需要的功能包程序。比如要进行SLAM建图,就先启动driver里面的各个功能包,然后启动carto里面的功能包,最后用遥控或键盘控制机器人移动建图并将建好的地图保存下来。如果要进行导航,就先启动driver里面的各个功能包,然后启动nav里面的功能包,最后通过远程电脑端的rviz或手机APP给机器人发送目标点。如果要实时运行SLAM建图和导航,就先启动driver里面的各个功能包,然后启动carto里面的功能包,接着启动nav里面的功能包,最后通过远程电脑端的rviz或手机APP给机器人发送目标点,当不发送目标点时也可以用遥控或键盘控制机器人移动建图,不过这种同时启动SLAM建图和导航的情况需要进行特殊的配置比较麻烦(新手不推荐)。如果要进行指定路线巡航,就需要先建立好地图或在导航过程中实时建图,然后启动导航,最后启动apps里面对应的应用层功能包。
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。