第 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 [email protected],其中,ubuntu需要替换为你的登录账号,192.18.43.164 则替换为你的树莓派的ip地址。

步骤4:选择步骤3完成后的弹窗列表中的第一个选项(或直接回车),即可完成配置,配置成果后会有提示信息。

4.使用

步骤1:继续使用快捷键 "ctrl + shift + p "打开命令输入窗口,并输入 "Remote-SSH:Connect to Host...",此时列表中将显示步骤3中配置的ip地址,直接选择,选择后,VScode将打卡一个新的窗口。

或者,也可以点击侧边栏的 "远程资源管理器",在弹出的服务器列表中选择要连接的服务器,并右击,选择在本窗口或新窗口中实现远程连接。

步骤2:选择菜单栏的 "文件"下的 "打开文件夹",在弹窗列表中选择需要打开的文件夹并点击确定即可。

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

相关推荐
普宁彭于晏1 小时前
元素水平垂直居中的方法
前端·css·笔记·css3
m0_637146931 小时前
计算机网络基础总结:TCP/IP 模型、TCP vs UDP、DNS 查询过程
笔记·tcp/ip·计算机网络
Lester_11012 小时前
嵌入式学习笔记 - freeRTOS vTaskPlaceOnEventList()函数解析
笔记·学习
moxiaoran57533 小时前
uni-app学习笔记二十三--交互反馈showToast用法
笔记·学习·uni-app
曹勖之10 小时前
基于ROS2,撰写python脚本,根据给定的舵-桨动力学模型实现动力学更新
开发语言·python·机器人·ros2
scdifsn10 小时前
动手学深度学习12.7. 参数服务器-笔记&练习(PyTorch)
pytorch·笔记·深度学习·分布式计算·数据并行·参数服务器
ABB自动化10 小时前
for AC500 PLCs 3ADR025003M9903的安全说明
服务器·安全·机器人
DFminer10 小时前
【LLM】fast-api 流式生成测试
人工智能·机器人
jackson凌13 小时前
【Java学习笔记】SringBuffer类(重点)
java·笔记·学习
huangyuchi.14 小时前
【Linux】LInux下第一个程序:进度条
linux·运维·服务器·笔记·进度条·c/c++