重要参考:
课程链接:https://www.bilibili.com/video/BV1Ci4y1L7ZZ
讲义链接:Introduction · Autolabor-ROS机器人入门课程《ROS理论与实践》零基础教程
9.1 概述
实体机器人导航与仿真环境下的导航核心实现基本一致,主要区别在于导航实现之前,基本环境的搭建有所不同,比如:导航场景、传感器、机器人模型等,大致区别如下:
仿真环境 | 实体机器人 | |
---|---|---|
导航场景 | 依赖于gazebo搭建的仿真环境 | 依赖于现实环境 |
传感器 | 在gazebo中通过插件来模拟一些列传感器,比如:雷达、摄像头、编码器.... | 使用的是真实的传感器 |
机器人模型 | 依赖于机器人模型,以实现仿真环境下的机器人的显示,通过robot_state_publisher、joint_state_publisher实现机器人各部件的坐标变换。 | 机器人模型不是必须的,如果不使用机器人可以通过static_transform_publisher发布导航必须的坐标变换;如果使用机器人模型也可以借助 robot_state_publisher、joint_state_publisher 发布坐标变换,当然后者可以在rviz中显示机器人模型,更友好。 |
总体而言,在实体机器人导航中,可以完全脱离 gazebo,而机器人模型是否使用,可以按需选择。
除此之外,实体机器人导航的开发环境也发生了改变,程序最终需要被部署在机器人端,我们可以在本地开发,然后通过ssh上传至机器人,或者也可以通过VScode的远程开发插件直接在机器人端编写程序。
9.2 VScode远程开发
在第8章,我们介绍了ssh远程连接的使用,借助于ssh可以远程操作树莓派端,但是也存在诸多不便,比如:编辑文件内容时,需要使用vi编辑器,且在一个终端内,无法同时编辑多个文件,本节将介绍一较为实用的功能——VSCode远程开发,我们可以在VScode中以图形化的方式在树莓派上远程开发程序,比ssh的使用更方便快捷,可以大大提高程序开发效率。
1.准备工作
VScode远程开发依赖于ssh,请首先按照8.5.3内容配置ssh远程连接。
2.为VScode安装远程开发插件
启动VScode,首先点击侧边栏的扩展按钮,然后在 “扩展:商店”
的搜索栏输入 “Remote Development”
并点击同名插件,最后在右侧显示区中点击 “安装”
。
3.配置远程连接
步骤1:使用快捷键 “ctrl + shift + p ”
打开命令输入窗口,并输入 “Remote-SSH:Connect to Host... ”
,弹出列表中选择与之同名的选项。
步骤2:步骤1完成将弹出一个新的命令窗口如下,选择下拉列表中的 “Add New SSH Host”
。
步骤3:步骤2完成又将弹出一个新的命令窗口,在其中输入:ssh ubuntu@192.168.43.164
,其中,ubuntu
需要替换为你的登录账号,192.18.43.164
则替换为你的树莓派的ip地址。
步骤4:选择步骤3完成后的弹窗列表中的第一个选项(或直接回车),即可完成配置,配置成果后会有提示信息。
4.使用
步骤1:继续使用快捷键 “ctrl + shift + p ”
打开命令输入窗口,并输入 “Remote-SSH:Connect to Host...”
,此时列表中将显示步骤3中配置的ip地址,直接选择,选择后,VScode将打卡一个新的窗口。
或者,也可以点击侧边栏的 “远程资源管理器”
,在弹出的服务器列表中选择要连接的服务器,并右击,选择在本窗口或新窗口中实现远程连接。
步骤2:选择菜单栏的 “文件”
下的 “打开文件夹”
,在弹窗列表中选择需要打开的文件夹并点击确定即可。
最终,我们就可以像操作本地文件一样实现远程开发了。