【ROS】2.1 Turtlebot3汉堡Burger连接和远程控制
机器人连接和远程控制
准备
充电
充电有两种方式:
①直接供电:电源适配器连接树莓派上的圆孔;

②电池供电:电源适配器插到蓝色的那个充电器,再将充电器与Burger底座的电池相连接。(当电池电量低于11V时,电池会发出持续的警报声,而且部分控件无法工作,此时应该将电池充电。)
当机器人不需要挪动,即调试阶段时,建议采取直接供电的方式。
直接供电真挺方便的,电池供电那个蓝色的充电器好难拔下来……

连接显示屏
然后HDMI的插孔在USB插孔旁边,USB插孔在树莓派上面那一层。
那一排USB之后还可以接鼠标键盘等。

显示器的HDMI插孔可能在机子后边,多看看多找找,插得上的就是了。

然后,给显示器供电。先插线,再打开Burger开关!(开关在树莓派上),然后显示器就会有信号输入。
联网
将Burger和主机连到同一个局域网中。
- 主机连WiFi不用多说。
- Burger连WiFi是在显示屏上面操作,和主机连WiFi没啥区别。
| 问题 | 解决办法 |
|---|---|
| 为啥要连同一个WiFi? | 答:ROS系统在使用过程中,移动机器人需要访问并传递信息到远程电脑建立的程序核心服务器(roscore),信息不经过互联网,所以只能在局域网中进行连接。 |
| Ubuntu虚拟机连不上WiFi | 1. 虚拟机-设置-网络适配器,选择桥接模式。 2. 编辑-虚拟网络编辑器-更改设置,在桥接的那个网卡中,把WiFi网卡改成自己的网卡。(真机上查看网络属性有网卡名字) |
| 真机连不上WiFi | ①连上了,只是上不了网。不行就算了,没必要有网。真想有就登录路由器管理界面(路由器盒子底下的网址),多设置设置,看看路由器是否可以连上别的网。 ②连不上。看看有没有对应的WiFi名称。如果连WiFi名字都搜不到,考虑重启路由器,还是不行就把路由器恢复出厂设置,再不行就看看别人搜得到吗,都不行就换个路由器…… |
| 小车连不上WiFi | wlan0是无线网卡,eth0是有线网卡。以下仅针对无线连接。 1. 如果连接成功,但是WiFi频繁闪烁:ifconfig检查wlan0网卡的IP地址是否正常。如果IP地址是115之类的奇怪数字,说明dhcp自动获取IP有问题。一般是因为树莓派的网卡设置有误。 解决方案:尝试用网线有线连接小车。或尝试手动获取IP地址。 2. 如果无法自动获取IP地址: 解决方案1:修改dhcpcd.conf:sudo nano /etc/dhcpd.conf 滑到最底端,删除曾连接过的wifi名称和密码。 ctrl+o保存,ctrl+x退出,sudo reboot重启(或者手动重启),然后再次连接网络即可。 解决方案2:sudo dhclient -d wlan0 #删除dhcp获取的ip sudo dhclient wlan0 -v #dhcp自动获取ip |
如何丢掉显示屏
方法一:ssh连接
优点:稳定;缺点:命令行操作,不好看。
ssh -Y【Burger的用户名】@【Burger的IP】
首先需要检查【主机】和【Burger】的 IP 地址。
打开终端,在终端中输入 ifconfig。如果你不希望之后频繁更改配置,你可以为Burger分配静态IP。
记住【Burger的IP】、【Burger的用户名】、【主机IP】。

主机中输入ssh -Y【Burger的用户名】@【Burger的IP】(这里是pi@192.168.1.133)
-Y参数可以让你之后能直接在主机上gedit小车的.bashrc文件。如果不加这个参数,你可以使用nano编辑文件。(比如sudo nano ~/.bashrc)
输入密码(默认turtlebot,不排除有人二次改动),连接成功。

方案二:远程桌面连接mstsc
优点:好看;缺点:连接时不稳定。
- 在小车中安装xrdp服务:
pi@raspberrypi:~ $ sudo apt-get install xrdp
- 打开win电脑的远程桌面:win+r,输入mstsc,回车,输入ip,回车。
- 输入账号密码,连接成功,显示桌面。
网络配置
【主机】、【Burger】的终端中运行:
gedit ~/.bashrc。
在.bashrc中追加(或修改)(注意空格):
【主机】:
export ROS_MASTER_URI=http://【主机 IP】:11311
export ROS_HOSTNAME=【主机 IP】
export TURTLEBOT3_MODEL=burger【Burger】:
export ROS_MASTER_URI=http://【主机 IP】:11311
export ROS_HOSTNAME=【Burger的IP】重启终端或者source ~/.bashrc,重新ssh连接。
解释:export TURTLEBOT3_MODEL=burger是为了在后续可视化操作中调用正确的三维模型【burger】。
显示器可以关了,之后的操作直接在主机上就能完成。
下载各种依赖包
请直接复制粘贴表格内容,如果遇到错误,请直接查看最右侧解决方案。
下载完成的跳过这一步。如果报错,不要忘了回到这一步来看看喔!
| 依赖包 | 安装过程 | 安装报错时的解决方案 |
|---|---|---|
| Turtlebot3的包 | mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone https://github.com/ROBOTIS-GIT/turtlebot3.git git clone https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git cd ~/catkin_ws && catkin_make sudo echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc |
问题解决方案1————-catkin_make编译时候的各种问题汇总 |
| roslaunch、使用rviz的时候需要的依赖包 | sudo apt update sudo apt-get install ros-noetic-gazebo-ros ros-noetic-gazebo-ros-control ros-noetic-robot-state-publisher ros-noetic-gmapping ros-noetic-rviz ros-noetic-joy ros-noetic-teleop-twist-joy ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc ros-noetic-rgbd-launch ros-noetic-rosserial-arduino ros-noetic-rosserial-python ros-noetic-rosserial-client ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro ros-noetic-compressed-image-transport ros-noetic-rqt-image-view ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers libasound2-dev |
先更新源,然后报啥错就下啥包。(其中noetic更换为自己的ros版本。) |
控制的流程
控制之前可以重启小车,因为刚刚准备工作运行了太多内容。
roscore检测网络配置是否正确
预期结果:【主机】、【Burger】都显示连接到【主机IP】。
异常情况:
【主机】的IP值不对:按照配置Burger和主机的网络重新配置网络配置。
【Burger】的IP值不对:
如果显示器还开着,就按照配置Burger和主机的网络重新配置网络配置。
如果显示器已经关掉了,却直接gedit ~/.bashrc,可能会显示连接不上。

为了方便起见,我们在ssh连接后,直接在终端运行
export ROS_MASTER_URI = http://【主机 IP】:11311
export ROS_HOSTNAME = 【Burger的IP】从而可以直接改变小车对应的MASTER_URI。
也可以把ssh连接的指令换成ssh -Y 用户名@IP,这样就能打开gedit了。
运行远程控制程序包
【Burger】:roslaunch turtlebot3_bringup turtlebot3_robot.launch
解释:在机器人桌面终端调用Turtlebot3 应用程序。
【主机】:roslaunch turtlebot3_bringup turtlebot3_remote.launch
解释:启动Turtlebot远程应用。
【主机】:rosrun rviz rviz -d `rospack find turtlebot3_description`/rviz/model.rviz
解释:启动Rviz。
【主机】:roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
解释:运行无线操作依赖包中的键盘驱动程序。
在4中的终端中按w/a/s/d/x键就能用键盘远程控制小车。
order.txt
# 主机的准备工作:
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
#github国内有时候访问不上,可使用镜像,不过镜像有时候会挂,你们自己找个现在能用的镜像
git clone https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git
git clone https://github.com/ROBOTIS-GIT/turtlebot3.git
git clone https://github.com/ROBOTIS-GIT/hls_lfcd_lds_driver.git
# hub.fastgit.org镜像好像已经挂了,你们另外自己找其他的镜像也行
# git clone https://hub.fastgit.org/ROBOTIS-GIT/turtlebot3_msgs.git
# git clone https://hub.fastgit.org/ROBOTIS-GIT/turtlebot3.git
# git clone https://hub.fastgit.org/ROBOTIS-GIT/hls_lfcd_lds_driver.git
# 切换一下turtlebot3相关的库的版本,因为现在最新版本都是支持ROS2的,不是支持ROS1的
cd turtlebot3_msgs
git checkout noetic
cd ../turtlebot3
git checkout noetic
cd ../hls_lfcd_lds_driver
git checkout noetic
cd ~/catkin_ws && catkin_make
# 参考https://www.codenong.com/cs88087849/
sudo apt-get install ros-noetic-robot-state-publisher
sudo apt-get install ros-noetic-gmapping ros-noetic-rviz
sudo apt-get install ros-noetic-joy ros-noetic-teleop-twist-joy ros-noetic-teleop-twist-keyboard ros-noetic-laser-proc ros-noetic-rgbd-launch ros-noetic-rosserial-arduino ros-noetic-rosserial-python ros-noetic-rosserial-client ros-noetic-rosserial-msgs ros-noetic-amcl ros-noetic-map-server ros-noetic-move-base ros-noetic-urdf ros-noetic-xacro ros-noetic-compressed-image-transport ros-noetic-rqt-image-view ros-noetic-gmapping ros-noetic-navigation ros-noetic-interactive-markers
# 显示屏上:
ifconfig
# 记住【Burger的IP】192.168.1.133
# gedit ~/.bashrc
# 追加export ROS_MASTER_URI=http://【主机 IP】:11311
# 追加export ROS_HOSTNAME=【Burger的IP】
# source ~/.bashrc
# 主机终端A:
ifconfig
# 记住【主机IP】192.168.1.105
gedit ~/.bashrc
# 追加export ROS_MASTER_URI=http://【主机 IP】:11311
# 追加export ROS_HOSTNAME=【主机 IP】
# 追加export TURTLEBOT3_MODEL=burger
# 追加source ~/catkin_ws/devel/setup.bash
source ~/.bashrc
# roscore检查主机地址设置是否正确
# 主机终端B:
ssh -Y pi@【Burger的IP】
gedit ~/.bashrc
# 追加export ROS_MASTER_URI=http://【主机 IP】:11311
# 追加export ROS_HOSTNAME=【Burger的IP】
source ~/.bashrc
roscore
# 主机终端C:
ssh -Y pi@【Burger的IP】
roslaunch turtlebot3_bringup turtlebot3_robot.launch
# 主机终端D:
# roslaunch turtlebot3_bringup turtlebot3_remote.launch
rosrun rviz rviz -d `rospack find turtlebot3_description`/rviz/model.rviz
# 上一条注:开启仿真模拟rviz
# 主机终端E:
roslaunch turtlebot3_teleop turtlebot3_teleop_key.launch
# 上一条注:用wasd控制,可以看到rviz上的车也有动静;
# rviz:红色的是雷达检测的障碍物
【ROS】2.1 Turtlebot3汉堡Burger连接和远程控制的更多相关文章
- ROS开源小车TurtleBot3详情介绍(Burger)
您为什么要选择ROS开源智能小车 ROS(RobotOperating System,机器人操作系统)是目前世界上更主流更多人使用的的机器人开源操作系统.它可以提供操作系统应有的服务,包括硬件抽象,底 ...
- ROS开源小车TurtleBot3详情介绍
您为什么要选择ROS开源智能小车 ROS(Robot Operating System,机器人操作系统)是目前世界上更主流更多人使用的的机器人开源操作系统.它可以提供操作系统应有的服务,包括硬件抽象, ...
- UVA557 汉堡 Burger
题面 https://www.luogu.org/problemnew/show/UVA557 这里顺便整理一下二维格点随机游走问题. 遇到这种问题时,需注意分母的计算问题. 设x为起点到终点的距离. ...
- ROS知识(9)----安装Turtlebot2和远程控制Turtlebot2
安装turtlebot2,场景为:turtlebot2上搭载着一台电脑主机A,该电脑作为主机Master,有自带的电源和3D传感器,roscore在该台机器上启动.pc电脑远程连接A,和A通讯,pc不 ...
- ROS连接ABB机械臂调试详细教程-ROS(indigo)和ABB RobotStudio 6.03.02-
在ROS industrial介绍中,给出了ROS和常用机械臂的连接方式.具体信息可以参考:http://wiki.ros.org/Industrial ROS连接ABB机械臂调试详细教程-ROS(i ...
- TurtleBot3使用课程-第一节a(北京智能佳)
目录 1.ROS设置(远程PC) 2 1.1 ROS安装和设置 2 1.1.1 设置source.list 2 1.1.2 键设置 2 1.1.3 ROS安装 2 1.1.4安装包构建的依赖关系 2 ...
- ROS Hotspot服务器的搭建与设定!(上网认证)
注:本文由Colin撰写,版权所有!转载请注明原文地址,谢谢合作! 说明:由于Hotspot设定的步骤比较多,此文档只讲解如何设定Hotspot的方法,关于ROS的安装与路由上网的配置请自行百度查阅. ...
- Get started with ros -- 1
原创博文:转载请标明出处(周学伟):http://www.cnblogs.com/zxouxuewei/tag/ 一.Introduction: 机器人操作系统(ROS)是使机器人系统的不同部分能够发 ...
- 嵌入式的我们为什么要学ROS
- Windows远程连接的实现
实验室有一台电脑,寝室里也有一台电脑,很多时候,事情还没有做完就不得不离开实验室,所以,在寝室里远程控制实验室的电脑是一件很有"意义"的事,其实,Windows系统已经 ...
随机推荐
- .NET程序员AI开发基座:Microsoft.Extensions.AI
大家好,我是Edison. 微软在2024年11月就发布了新的AI核心库Microsoft.Extensions.AI,虽然目前还是一个预览版,但其可以大大简化我们的AI集成和开发工作. Micros ...
- [联合省选 2020A] 组合数问题 题解
后面有一只大大的组合数,考虑下降幂干过去.\(x^k\) 并不好使,这边考虑转化 \(f(x)=\sum a_ix^i=\sum b_ix^\underline i\). \[\sum_{k=0}^n ...
- [JSOI2008]火星人 题解
原题链接:\(luogu\)$\ \ $ \(BZOJ\)$\ \ $ \(LOJ\) 题目大意:有一个可以支持插入和修改的字符串,定义函数 \(\operatorname{LCQ(x,y)}\) 表 ...
- 使用 Visual Paradigm 的业务流程模型和符号 (BPMN) 综合指南
业务流程模型和符号 (BPMN) 是一种用于建模和记录业务流程的标准化图形符号.它被广泛采用,因为它能够提供一种清晰.通用的语言,所有利益相关者(业务分析师.技术开发人员和管理人员)都能理解.Visu ...
- mybatis - [08] mybatis-config.xml 详解
mybatis-config.xml中的标签需要按照一定顺序配置,否则会有以下提示. configuration(配置) properties(属性) settings(设置) typeAliases ...
- 借Processing语言及IDE做DOS批处理的事务( 批量修改文件夹或文件的名字 )
一直想用Processing语言做一些批处理的事务,因为其自带的IDE功能紧凑易用,极度轻量,又加上Java语言的生态极具友好,处理一些windows相关操作完全可行,简单快捷. 这次就是用它做[批量 ...
- C# 一般处理程序ashx用于验证码
1.用VS2019建立一个web应用程序,选mvc模板 2.选中项目邮件新建文件夹Webservice,然后添加一般处理程序Verify.ashx然后右键打开改写如下 1 public class V ...
- gorm插入报错Error 1292 (22007): Incorrect datetime value: ‘0000-00-00‘ for column ‘xxx‘ at row 1
在MySQL中,'0000-00-00 00:00:00'不是一个合法的DATETIME值.从MySQL 5.7.5开始,默认情况下不允许插入零日期或零时间值到DATETIME或 TIMESTAMP列 ...
- 记vue修改数组属性,dom不发生变化的问题
目录: 目录 目录: 开篇 正确的姿势 为什么 $set 开篇 今天在写vue的时候,出现了一个以前可能没遇到的问题.我利用一个数组记录列表下按钮的启用.禁用状态,但我点击某个列表项按钮后,会修改当前 ...
- 实现Windows之间(win10)的桌面连接的三步走方法
实现Windows之间(win10)的远程桌面连接的三步走方法 目录 目录 实现Windows之间(win10)的远程桌面连接的三步走方法 目录 环境 step1:打开两台Windows电脑的 ...