第 8 章 机器人实体导航(自学二刷笔记)

重要参考:

课程链接: 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:选择菜单栏的 "文件"下的 "打开文件夹",在弹窗列表中选择需要打开的文件夹并点击确定即可。

最终,我们就可以像操作本地文件一样实现远程开发了。

相关推荐
szxinmai主板定制专家1 小时前
基于全志T536+FPGA+AI的智能服务机器人解决方案
大数据·运维·人工智能·fpga开发·机器人·边缘计算
Warren983 小时前
Html 5简介(学习笔记)
java·前端·css·笔记·学习·html·html5
零零时10 小时前
【STL】4.<list>
开发语言·数据结构·c++·经验分享·笔记·算法·list
AlexMercer101211 小时前
Java 入门第一课 InteliJ IDEA 的快捷操作
android·java·开发语言·ide·笔记·intellij-idea
WarPigs11 小时前
Unity汽车笔记
笔记·unity·汽车
山哥ol11 小时前
DeepSeek安装部署笔记(一)
笔记
promising-w12 小时前
硬件工程师入门教程
笔记·硬件
Come--On12 小时前
go-基础笔记
开发语言·笔记·golang
tianyunlinger12 小时前
BAG: Body-Aligned 3D Wearable Asset Generation
人工智能·笔记·3d
Warren9815 小时前
Css3重点知识讲解
开发语言·前端·css·笔记·学习·css3·html5