冰达ROS机器人快速使用指南

欢迎来到《冰达ROS机器人极简使用指南》

Q:这份教程适合谁?

A:适合完全0基础新手,需要快速跑起来机器人的基本功能。也适合技术大佬需要快速的了解冰达ROS机器人的使用方法。

Q:这份教程内容很少,是不是意味着冰达ROS机器人的功能很少?

A:这份教程编写的目的是为了让用户能快速的使用起机器人,需要完整的学习ROS和机器人可以看专栏

温馨提示:本教程已经尽可能简化,完全阅读并完成实验仅需30~45分钟。本教程中每一个篇章都很重要,请按目录顺序完成实验,切勿跳过部分章节。

External Player - 哔哩哔哩嵌入式外链播放器

Step 1:机器人开机

机器人开关、充电接口和网口位置

车型

开关

充电接口

网口位置

NanoRobot

NanoRobot_Pro

NanoCar

NanoCar_Pro

NanoOmni

Race182

Bulk

Panda

Step 2:PS2手柄遥控

小手使用PS2无线手柄进行遥控控制,控制距离最远约为5-8米。

1.遥控手柄需要先打开电源开关,观察手柄指示灯

两灯均灭:

按START启动,或检查更换电池

红灯亮,绿灯灭:

按MODE键 进行连接

红灯亮,绿灯闪:

小车离的太远或没插接收机

2.接收机已连接在小车上,无需进行操作

在手柄正常连接时,车上的手柄接收机也应该是两灯全部常亮。

如果手柄关机或距离太远,则应该是RX慢闪。

External Player - 哔哩哔哩嵌入式外链播放器

Step 0:使用前准备

①在PC上下载安装Nomachine软件,可以在Nomachine官网下载或者使用我们提供的安装包

nomachine_8.3.1_1_x64.exe.zip

②准备好一台正常工作的路由器(不要使用校园网或企业网等未知网络结构的网络环境)

③打开机器人电源开关,使用网线,将机器人网口和路由器LAN口连接起来

④PC通过网线或者WiFi连接在同一个路由器上

Step 1:连接网线查找机器人IP

小车和路由器这么连接(路由器可以不需要连接互联网 不能上网的路由器也可以)

打开路由器管理页面,不同品牌的路由器管理页面地址管理页面地址和界面不同,可以在路由器背面的贴纸上查找或者百度搜索。

在路由器设备列表/DHCP列表中找到机器人设备,机器人设备名为”robot-主机型号“,记录下机器人的IP地址。例如当前我的机器人有线网路的IP地址为192.168.31.117

Step 2:Nomachine远程桌面连接机器人

打开Nomachine软件,在地址框中输入机器人的IP地址,然后点击”Connect to new host xxx.xxx.xxx.xxx“

Tips:如果打开Nomachine软件后已经出现黄色框中的机器人设备,即Nomachine已经自动扫描发现了设备,可以直接双击启动连接

在弹出的对话框中输入用户名和密码,我们所有的镜像中用户名和密码均为”bingda“,即”冰达“的拼音,同时可以勾选”Save this password in the connection file“,即记住密码

Step 3:机器人连接WiFi并查看IP

点击桌面上的网络按钮,在弹出的菜单中找到自己的WiFi名称,如果没有显示,可以点击”More network“查看更多网络。点击需要连接的WiFi

在弹出的对话框中输入WiFi密码,然后点击”Connect“按钮

再次点击网络按钮,如果连接成功会显示当前已经连接到目标WiFi。如果没有显示,则核对WiFi名和密码后再次尝试

Step 4:使用无线IP连接机器人

WiFi连接成功后就可以使用无线的IP地址来连接NoMachine。首先我们需要知道无线的IP地址。

方法1:在路由器管理页面中查找(设备名依然为”robot-主机型号“,注意和有线IP区分)

方法2:点击桌面的网络图标,在弹出的菜单中点击”Connection Information“

在弹出的对话框中选择WiFi的选项卡,既可以看到当前的无线IP

Tips1:建议在路由器中设置无线IP和无线MAC地址绑定,使机器人在以后的每次开机中都可以获得相同的IP地址,避免开机后IP地址变动需要通过路由器管理页面查找。

接下来关闭Nomachie,拔掉机器人和路由器之间的网线,使用获得的无线IP地址连接机器人

Tips2: 当使用Nomachie比较卡顿时,可以参考下列教程进行配置,如果正常使用,请勿配置:

修复Nomachine卡顿问题 · 冰达 《修复Nomachine卡顿问题》

出厂默认已经配置好可以跳过本次章节

后续系统损坏 重新烧录系统后才需要看本次章节

External Player - 哔哩哔哩嵌入式外链播放器

Step 1:打开配置文件

在桌面打开一个新的终端,输入下面命令

gedit ~/.bashrc 

在弹出的编辑器中拖动滑动条到文件末尾,找到红框中的三行内容

Step 2:按照实际使用的硬件修改配置

三行配置文件中BASE_TYPE=用于配置底盘型号,CAMERA_TYPE=用于配置相机型号,LIDAR_TYPE=用于配置激光雷达的型号

用户需要根据实际使用的硬件型号正确配置,硬件对应型号如下图所示。

底盘

相机

雷达

外观

型号

外观

型号

外观

型号

NanoRobot

720p彩色相机

usb70

EAI-S4

ydlidar

NanoRobot_Pro

1080p彩色相机

usb100

国科光芯

sclidar

NanoCar

astras

思岚A1

rplidar

思岚A1-M8

NanoCar_Pro

astrapro

思岚A1-Super

rplidar_super

思岚A1升级版

左边有多一条加速线

NanoOmni

csi72

rplidar_s2

Race182

vp350

Bulk

vp300

Panda

Crab

Step 3:保存配置文件

修改核对无误后点击'Save'按钮保存,点击关闭按钮关闭文件编辑器。关闭文件后关闭所有打开的终端

External Player - 哔哩哔哩嵌入式外链播放器

Step1:启动机器人底盘节点

在桌面中打开一个终端,输入下面命令

roslaunch base_control base_control.launch

按下回车键执行命令后终端中会出现如下的底盘信息,同时机器人蜂鸣器会发出“哔~”的一声长响

Step2:启动键盘遥控节点

保持机器人底盘节点运行,新打开一个终端。在新打开的终端中输入下面命令

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

按下回车键后终端中会出现如下的提示信息

现在可以通过键盘上的按键来控制机器人移动了,注意检查当前键盘未开启大写锁定,即键盘保持在小写模式

使用方法为以‘k’键为中心,分别‘i’键控制前进,‘,’键控制后退,以此类推。

键盘控制的速度默认值为线速度0.5m/s和角速度1.0rad/s

线速度可以通过按‘w’键增加,‘x'键降低,每按下一次线速度增加/降低10%

线速度可以通过按‘e’键增加,‘c'键降低,每按下一次角速度增加/降低10%

如果需要同时调整角速度和线速度,可以通过按‘q’键增加,‘z'键降低,每按下一次线速度和角速度同时增加/降低10%

注意1:在使用键盘控制节点时,需要保持输入光标保持在运行键盘控制节点的终端中,否则输入无效。

注意2:对于阿克曼转向结构的机器人,由于机器人不能原地转向,所以j和l两个按键无法控制机器人旋转。

注意3:对于麦克纳姆轮车型,如果需要控制机器人横向移动,需要将键盘切换为大写模式或者组合shift键来控制

Step3:关闭节点

在终端中同时按下'Ctrl'+'C'两个按键,即可结束当前终端中执行的应用。

在实验结束后后关闭所有节点并关闭终端

External Player - 哔哩哔哩嵌入式外链播放器

Step1:启动机器人SLAM建图

在桌面中打开一个终端,输入启机器人SLAM的命令

roslaunch robot_navigation robot_slam_laser.launch

执行命令后终端中无红色的报错信息,且持续有SLAM的信息输出即为工作正常。

Step2:启动可视化图形界面

在桌面中打开一个终端,输入启机器人SLAM的命令

roslaunch robot_navigation slam_rviz.launch 

执行命令后会弹出可视化地图的窗口,其中灰色区域为已经构建的地图,黑色为地图边界,红色为激光雷达扫描的数据。

在地图显示区域内,滚动鼠标滚轮可以缩放地图,按住鼠标滚轮移动鼠标可以移动显示区域,将地图显示调整到合适的位置。

Step3:控制机器人在需要建图的区域移动

方法1:使用机器人配备的PS2遥控手柄

方法2:使用键盘控制节点

新打开一个终端。在新打开的终端中输入下面命令

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

SLAM建图中,机器人运动速度不宜过快,建议调整键盘控制速度,线速度不大于0.3m/s,角速度不大于0.7rad/s

Step4:保存地图

当机器人已经构建完你需要的区域的地图后,就可以将地图保存下来,用于后续的导航实验

新打开一个终端,在终端中先输入下面切换目录的命令,然后再执行保存地图命令

roscd robot_navigation/maps/ && rosrun map_server map_saver -f map

终端中提示Done即为保存成功

在实验结束后后关闭所有节点

注意:香橙派5搭载C1雷达启动slam建图命令如下:(不是此配置跳过看下一章节)

1.启动单雷达

 roslaunch robot_navigation robot_lidar.launch 

2.启动slam建图

roslaunch robot_navigation gmapping.launch 

3.打开rviz图像显示

roslaunch robot_navigation slam_rviz.launch

4.键盘控制小车移动

rosrun teleop_twist_keyboard teleop_twist_keyboard.py

5.保存地图

roscd robot_navigation/maps/ && rosrun map_server map_saver -f map

 

External Player - 哔哩哔哩嵌入式外链播放器

Step 1:启动机器人导航

在桌面中打开一个终端,输入启机器人导航的命令

roslaunch robot_navigation robot_navigation.launch 

执行命令后终端中会输入如下信息,没有红色的报错并出现“odom received!”即为启动成功

Step 2:打开导航图形化界面

新打开一个终端,在终端中执行下面命令

roslaunch robot_navigation navigation_rviz.launch 

执行后会出现如下窗口,通过鼠标滚轮调整地图到合适的显示位置和比例。

Step 3:设置机器人初始位置

在启动机器人导航后,机器人的默认位置为地图的原点(即启动SLAM建图时机器人的位置)。

但是实际上当前机器人所在的位置可能不在地图远点,所以需要手动指定机器人的初始位置

点击下图红框中的按钮,然后在地图中机器人实际所在的位置长按鼠标左键,然后移动鼠标调整方向,调整到机器人当前的方向后松开鼠标左键即可。

多次调整后使激光雷达的点和地图部分边界基本重合即可

Step 4:指定机器人导航目标点

点击下图红框中的按钮,然后在地图中目标点长按鼠标左键,然后移动鼠标调整方向,调整到需要导航的目标方向即可。松开鼠标机器人将自动向目标点前进

Step 5:导航结果检查

机器人到达目标点后将会自动停下,同时运行导航的终端中会输出"GOAL Reached!"的提示消息

如果机器人无法到达当前指定的目标点,终端中也会输出警告或者报错信息。机器人会放弃当前的导航任务,重新给定其他目标点后机器人会再次尝试导航。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/561934.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

迅雷下载不了的资源怎么下载?

我想下载Boost库,但是下载不下来 用迅雷下载是一直卡在0k 后来尝试在centos上用wget进行下载,竟然可以 wget https://boostorg.jfrog.io/artifactory/main/release/1.85.0/source/boost_1_85_0.tar.gz

信息打点--语言框架

指纹识别 后端 CMS:一般php开发居多源码程序,其他语言也存在,但不易识别(利用源码程序名去搜漏洞情况,源码下载进行后期的代码审计) 前端 js框架(爬取更多的js从里面筛选URL或敏感泄露key)等…

docker-compose 安装MongoDB续:创建用户及赋权

文章目录 1. 问题描述2. 分析2.1 admin2.2 config2.3 local 3. 如何连接3.解决 1. 问题描述 在这一篇使用docker-compose创建MongoDB环境的笔记里,我们创建了数据库,但是似乎没有办法使用如Robo 3T这样的工具去连接数据库。连接的时候会返回这样的错误&…

C++参考手册使用说明

C参考手册使用说明 文章目录 C参考手册使用说明1 为什么要使用C参考手册2 网站3 C参考手册离线格式4 C参考手册使用说明1.1 离线C参考手册下载1.2 html离线C参考手册1.3 chm离线C参考手册1.4 linux安装包C参考手册(只有英文版本)1.5 qch离线C参考手册 更…

2 逻辑斯蒂回归(分类)

目录 1 理论 逻辑回归假设数据服从伯努利分布(二分类),通过极大化似然函数的方法,运用梯度下降来求解参数,来达到将数据二分类的目的。 逻辑斯蒂回归(Logistic Regression)是一种用于解决分类问题的…

MySQL下载与安装

文章目录 1:MySQL下载与安装2:配置环境变量3:验证是否安装成功 1:MySQL下载与安装 打开MySQL官网,MySQL 下载链接选择合适的版本和操作系统,页面跳转之后选择No thanks, just start my download.等待下载即…

seatable部署之后network error【seatable】

这里写自定义目录标题 问题汇总 问题汇总 seatable服务部署后,组件显示正常运行,创建表单,显示Network error 点击错误信息,查看其跳转至另一个页面

详解JVM类加载

从类被加载到虚拟机内存中开始,到释放内存总共有7个步骤:加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Ini…

Jenkins构建实用场景指南

1 总体说明 本文主要介绍在研发实战时,通过Jenkins解决企业级软件构建打包一些实用场景。通常是在打包构建前,通过命令和工具进行预处理,避免修改源码,可按需配置构建任务,自动持续集成。 2 Jenkins简介 2.1 复制任务 研发实战创建构建任务,推荐从已有的构建任务进行…

项目管理-项目成本管理

目录 一、成本管理概述 二、成本估算 2.1 定义 2.2 成本估算方法 2.2.1 自顶向下的估算 2.2.1.1 估算方法 2.2.1.2 优点 2.2.1.3 缺点 2.2.2 自底向上的估算 2.2.2.1 估算方法 2.2.2.2 优点 2.2.2.3 缺点 2.2.3 差别估算法 三、成本预算 3.1 定义 3.2 成本预算的…

vue+springboot+mybatis-plus改装

①添加依赖 <!-- mybatis-plus --> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3.2</version> </dependency> pom.xml: <?xml version"…

springboot+java照相馆预约管理系统ssm

框架&#xff1a;ssm/springboot都有 jdk版本&#xff1a;1.8 及以上 ide工具&#xff1a;IDEA 或者eclipse 数据库: mysql 编程语言: java 前端&#xff1a;layuibootstrapjsp 详细技术&#xff1a;HTMLCSSJSjspspringmvcmybatisMYSQLMAVENtomcat 开发工具 IntelliJ IDEA: 一…

Oracle解析exp、imp及常见的问题

前言 在工作中经常需要不同数据库的导入和导出。exp和imp可以实现数据的迁移。 exo会转储产生对应的二进制文件,里面包括数据的定义信息、数据内容等,即为dump文件。 下面是使用exp和imp的一些场景 exp和imp主要有4中模式: 1)数据库模式 数据库模式也就是我们说的全备…

五分钟手撕“三大特性”<继承>(下)

目录 一、protected 关键字 二、继承方式 三、final 关键字 四、子类的构造方法 五、this和super &#xff08;一&#xff09;相同点&#xff1a; &#xff08;二&#xff09;不同点&#xff1a; 六、代码块的执行先后 一、protected 关键字 在类与对象中提到过&…

二维码门楼牌管理应用平台建设:网格化管理的新篇章

文章目录 前言一、二维码门楼牌管理应用平台的建设背景二、二维码门楼牌管理应用平台的功能特点三、二维码门楼牌管理应用平台的实际应用四、二维码门楼牌管理应用平台的前景展望 前言 随着信息技术的飞速发展&#xff0c;二维码门楼牌管理应用平台的建设已成为城市网格化管理…

第十四届蓝桥杯省赛C/C++大学B组真题-飞机降落

思路&#xff1a;根据数据范围N<10猜测用DFS剪枝&#xff0c;因为菜狗不会状压dp。根据题目&#xff0c;一般这种飞机的题都会用到贪心的思想。思想是每架飞机都要卡极限最早降落时间&#xff0c;从而保证后面的飞机能够有充足时间降落。 代码参考博客MQy大佬有详细解答 #i…

IDEA中添加servlet模板

官方代码链接 #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end #parse("File Header.java")import javax.servlet.*; import javax.servlet.http.*;

Java面试八股文(JVM篇)(❤❤)

Java面试八股文_JVM篇 1、知识点汇总2、知识点详解&#xff1a;3、说说类加载与卸载11、说说Java对象创建过程12、知道类的生命周期吗&#xff1f;14、如何判断对象可以被回收&#xff1f;17、调优命令有哪些&#xff1f;18、常见调优工具有哪些20、你知道哪些JVM性能调优参数&…

统计大写辅音字母

题目&#xff1a; 英文辅音字母是除A、E、I、O、U以外的字母。本题要求编写程序&#xff0c;统计给定字符串中大写辅音字母的个数。 输入格式&#xff1a; 输入在一行中给出一个不超过80个字符、并以回车结束的字符串。 输出格式&#xff1a; 输出在一行中给出字符串中大写…

Golang数据类型

文章目录 数据类型的基本介绍基本数据类型整数类型字符类型浮点数类型复数类型布尔类型string类型 常量类型转换基本数据类型相互转换基本数据类型与string的转换 指针类型值类型和引用类型 数据类型的基本介绍 数据类型的基本介绍 Go中的每一种数据都定义了明确的数据类型&…