ROS机器人实用技术与常见问题解决

news2024/11/28 14:50:05

问题速查手册(时实更新)更加全面丰富的问题手册记录

1.机器人使用GPARTED挂载未分配空间

  1. 需要在图型界面下操作,建议使用no machine连接 安装gparted磁盘分区工具,
sudo apt-get install gparted -y
  1. 启动软件

sudo gparted
  1. 点击磁盘/内存卡,右键已分配空间,点击Resive/Move

  1. 将出现的滑块条扡到最右边,点击确认
  2. 点击应用按钮,一定要点,否则不生效。

  1. 再次查看磁盘,发现没有分配的空间已挂载到系统

2. 系统内存不足,使用交换内存方法

嵌入式系统在运行视觉导航建图及跑图形界面时,非常消耗内存,这时可能需要设置交换内存,将一部分存储空间作为内存来用:

free -m  #查看是否已有交换内存
mkdir swap  #新建文件夹
cd swap
sudo dd if=/dev/zero of=sfile bs=1024 count=1000000 #设置1G交换内存,不建议超过2G
sudo mkswap sfile   #生成文件
sudo swapon sfile   #启用交换内存
free -m     #查看是否成功

分别代表,全部内存(MB),已使用内存,空闲内存

swap则代表当前本机交换内存,为零代表未设置

注意:

1. 每次开机后都要重新设置才能生效

  1. 交换内存不是越大越好,不建议超过2G。设置后会减少内存压力,但会使系统变慢
  2. 交换内存会使内存卡读写变多,寿命变短。
  3. 当系统运行正常时,不建意使用交换内存,设置交换内存只会让系统变慢,

3. 使用命令配置无线网络(在Xshell中进行)

配置无线网络视频教程

首先通过有线网络或串口登录到设备上

使用ifconfig命令检查当前的网络设备和连接状态,或通过iwconfig命令查找当前设备中的无线网络设备。

如下,其中wlan0就是一张无线网卡。

bingda@robot-srpi3x:~$ ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.31.127  netmask 255.255.255.0  broadcast 192.168.31.255
        inet6 fe80::3aea:a1e:1c0c:3408  prefixlen 64  scopeid 0x20<link>
        ether 00:11:22:73:8b:64  txqueuelen 1000  (Ethernet)
        RX packets 54371  bytes 41065706 (41.0 MB)
        RX errors 0  dropped 1148  overruns 0  frame 0
        TX packets 105234  bytes 117558020 (117.5 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 43  base 0xa000  

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 988  bytes 334612 (334.6 KB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 988  bytes 334612 (334.6 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 08:e9:f6:ae:d8:04  txqueuelen 1000  (Ethernet)
        RX packets 17237  bytes 5042234 (5.0 MB)
        RX errors 0  dropped 934  overruns 0  frame 0
        TX packets 1034  bytes 380898 (380.8 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

bingda@robot-srpi3x:~$ iwconfig 
lo        no wireless extensions.

eth0      no wireless extensions.

wlan0     IEEE 802.11  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   Tx-Power=31 dBm   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Power Management:on
          
sit0      no wireless extensions.

tunl0     no wireless extensions.

接下来通过nmcli工具配置wifi连接,其中your_ap是需要连接的wifi热点名,your_password是热点密码

Tips:在命令中输入connect后可以使用TAB自动补全工具列出周围的热点

sudo nmcli device wifi connect your_ap password your_password

输入完成后执行,提示”Device 'wlan0' successfully activated with 'd6a46eb9-c0e3-4c60-9f2b-d6f7ee32de02'.“即为连接成功。

4.修改机器人的主机名

bingda为用户名,robot-rpi4为主机名,一般不建议修改用户名,会涉及到很多权限问题

但主机名是可以修改的

bingda@robot-rpi4:~$

sudo vim /etc/hostname

如修改成robot-rpi4-1

修改成所需的,任何情况下都不建议设置成中文字符,保存后重启机器人主机即可生效

5.apt安装和源码安装功能

例如rtabmap

【ros】rtabmap源码安装_rtabmap安装_星丶星茶会的博客-CSDN博客

1.apt安装与卸载

sudo apt-get install ros-melodic-rtabmap ros-melodic-rtabmap-ros
sudo apt-get remove ros-melodic-rtabmap ros-melodic-rtabmap-ros

2.源码安装

cd ~
git clone https://github.com/introlab/rtabmap.git rtabmap
cd rtabmap/build
cmake -DCMAKE_INSTALL_PREFIX=~/pcb2pgm_ws/devel ..
make -j4
make install

cd ~/pcb2pgm_ws
git clone https://github.com/introlab/rtabmap_ros.git src/rtabmap_ros
catkin_make -j1 

6.如何修改小车的导航配置相关参数

可以参考:

如图,进入robot_navigation/param/对应车型

出现常见配置

如各文件名称所示,此处修改对应车型的对应配置

所有参数不能没有限制乱配,其参数量受车型及处理能力影响,特别是增加速度的操作必须逐步增加测试,否则会导致导航无法运行

此处配置文件即是对应的导航文件。小车所用算法均为二进制包安装方式,即无法看到源码,具体解释参考本文第5条,如果想使用源码安装,可以参考以下链接进行使用。更改算法源码及使用源码编译均需要有足够的ROS和UBUNTU使用经验,源码安装及修改请自行查找资料,不提供技术支持。

  1. 冰达仓地址:https://gitee.com/bingda-robot/
  2. move_base全局规划: https://github.com/ros-planning/navigation.git
  3. DWA局部规划:https://github.com/ros-planning/navigation
  4. TEB规划:https://github.com/rst-tu-dortmund/teb_local_planner.git
  5. gmapping建图: https://github.com/ros-perception/slam_gmapping.git
  6. cartographer建图: https://github.com/cartographer-project/cartographer_ros.git
  7. hector建图:https://github.com/tu-darmstadt-ros-pkg/hector_slam.git
  8. karto建图:https://code.ros.org/svn/ros-pkg/stacks/slam_karto/trunk
  9. RtabmapVSLAM: https://github.com/introlab/rtabmap.git

https://github.com/introlab/rtabmap_ros.git

  1. NCNN: https://github.com/Tencent/ncnn/

所有功能算法均可百度获得链接,使用及源码编译方法也可百度。

7.20.04 人脸识别例程出错

opencv版本命名的改动,导致找不到opencv包,分别执行下列命令设置一个软链接即可

sudo apt install opencv-data

sudo ln -s /usr/share/opencv4/ /usr/share/opencv

8.桌面模式要求输入密码

sudo usermod -a -G bluetooth bingda

sudo usermod -a -G netdev bingda

9.gazebo在虚拟机里很卡

可能是因为硬件加速造成的不兼容或其它问题,可以尝试关闭硬件加速

参考如下(来自网上,不保证有效)

10.有时系统明明启动,但是无法连接nomachine

出现这种情况有多种原因:

  1. 路由器有防火墙,在路由器里关闭防火墙。实测水星 360 小米三个路由器经常性发生连接异常,尽量避免使用以上三种品牌路由器
  2. 电路网络必须选择专用模式,不要用公用模式
  1. 或以远程SSH登录到小车,执行

sudo /usr/NX/bin/nxserver --restart

[sudo] password for bingda:

NX> 162 Service: nxd already disabled.

NX> 162 Service: nxserver already disabled.

NX> 162 Service: nxnode already disabled.

NX> 111 New connections to NoMachine server are enabled.

NX> 161 Enabled service: nxserver.

NX> 161 Enabled service: nxnode.

NX> 161 Enabled service: nxd.

  1. 如果3有效,则进入后,点上方nomahine show main window

如图,点击setting -》status 勾选 start the server at system startup开机自启动即可

11.如何更新冰达ROS的功能包

到达功能包下,针对新系统

  1. 移动到功能包下

cd ~/catkin_ws/src/bingda_ros1_noetic

  1. 恢复功能包状态,会删除已建好的地图及更改的代码,请注意备份

git reset --hard

  1. 强制更新功能包

git pull

如果系统比较老,没有/bingda_ros1_noetic统一功能包目录,则需进入每个功能包执行上述2-3命令

12.JETSON NANO无法识别无线网卡, 没有WLAN0 WIFI

sudo gedit /boot/extlinux/extlinux.conf

增加pcie_aspm=off保存后重启,如果不能解决修改pcie_aspm=on ,保存后重启

13.修改进代码不能用,怎么快速恢复代码

冰达的ROS包都有使用git ,使用git 进行恢复

cd ~/catkin_ws/src/bingda_xxx 进入功能包

git reset --hard 强行恢复

git pull 拉取最新代码(需联网)

如果仍不能恢复则直接

14.主板和控制器的串口连接 ubuntu串口映射

ubuntu的物理硬件端口是要权限的,并且不同设备命名不一样,所以我们需要做UDEV映射

roscd base_control/script/udev可以进入udev目录

根据不同板卡 sudo ./***.sh即可完成,执行后重启生效

注意:冰达所有镜像均已执行,一般情况如果出现找不到端口,可以直接刷机恢复

15.冰达的编程实战代码地址

B站视频:ROS编程入门ROS机器人中级-ROS编程入门_哔哩哔哩_bilibili

git clone bingda_tutorials: ROS核心教程--初级教程

B站视频:机器人编程实战ROS机器人进阶-机器人编程实战_哔哩哔哩_bilibili

git clone bingda_application: 冰达机器人进阶课程例程参考源码

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vivado Versal ACAP 可编程器件镜像 (PDI) 设置

Versal ACAP 可编程器件镜像 (PDI) 设置 下表所示 Versal ACAP 器件的器件配置设置可搭配 set_property <Setting> <Value> [current_design] Vivado 工具 Tcl 命令一起使用。 注释 &#xff1a; 在 Versal ACAP 架构上 &#xff0c; 原先支持将可编程器…

Misc 流量分析

流量分析简介 网络流量分析是指捕捉网络中流动的数据包&#xff0c;并通过查看包内部数据以及进行相关的协议、流量分析、统计等来发现网络运行过程中出现的问题。 在CTF比赛中&#xff0c;以及各种技能大赛对于流量包的分析取证是一种十分重要的题型。通常这类题目都是会提供…

干货分享-策划人都在用的活动策划网站

职场上&#xff0c;学会借力&#xff0c;学会‘抄’&#xff0c;比辛辛苦苦做老黄牛&#xff0c;更能事倍功半&#xff0c;不仅自己省事省力&#xff0c;还能获得更多升职加薪的机会。 那么&#xff0c;职场新人如何快速的写出一份领导满意的方案&#xff1f; 今天分享的‘抄…

基于Springboot的教学辅助系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的教学辅助系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&…

Linux —— 信号(3)

Linux —— 信号&#xff08;3&#xff09; Core dump为什么core默认是被关闭的阻塞信号信号其他相关常见概念信号递达信号未决信号阻塞两者的区别信号的结构 信号集操作函数一个简单使用例子sigpending的使用例子 我们今天接着来了解信号&#xff1a; Core dump 大家不知道有…

automa警惕通过点击元素打开新的标签页,因为你可能会被他蒙蔽!

大家好&#xff0c;我是大胡子&#xff0c;专注于研究RPA实战与解决方案。 我们经常用到automa里面的【点击元素】组件&#xff0c;但要警惕通过点击元素打开新的标签页&#xff0c;例如下面这个场景&#xff0c;点击公众号的图文消息&#xff0c;之后&#xff0c;要自动输入标…

爬虫学习(4)每日一笑

代码 import requests import re import osif __name__ "__main__":if not os.path.exists("./haha"):os.makedirs(./haha)url https://mlol.qt.qq.com/go/mlol_news/varcache_article?docid6321992422382570537&gameid3&zoneplat&webview…

免费https证书申请

HTTPS证书&#xff0c;也称为SSL证书&#xff08;Secure Sockets Layer&#xff09;或TLS证书&#xff08;Transport Layer Security&#xff09;&#xff0c;是一种数字证书&#xff0c;用于在互联网通信中确保数据传输的安全性、完整性和真实性。它是基于公钥基础设施&#x…

nginx--FastCGI

CGI 概念 nginx通过与第三方基于协议实现&#xff0c;即通过某种特定协议将客户端请求转发给第三方服务处理&#xff0c;第三方服务器会新建新的进程处理用户的请求&#xff0c;处理完成后返回数据给Nginx并回收进程(下次处理有需要新建)&#xff0c;最后nginx在返回给客户端…

2024.5.6 关于 SpringCloud 的基本认知

目录 引言 微服务框架所包含的技术栈 微服务架构演变 单体架构 分布式架构 微服务架构 微服务技术对比 认识 SpringCloud SpringBoot 版本兼容关系 服务拆分和远程调用 服务拆分注意事项 远程调用 引言 微服务是一种框架风格&#xff0c;按照业务板块来划分应用代码…

研发效能 | Jacoco dump基于k8s的实现

问题描述 总所周知&#xff0c;jacoco的dump操作如果是使用server模式只需要使用以下命令就能获取到 exec 文件。 java -jar jacococli.jar dump --address 192.169.110.1 --port 6300 --destfile ./jacoco-demo.exec 如果是非 k8s 的集群&#xff0c;也只需要遍历执行这条命…

高项第四版 十大管理及49个过程【背】作业分享

项目管理 1.十大管理【背】 包括&#xff08;口诀:范进整狗子&#xff08;沟质&#xff09; 才&#xff08;采&#xff09;干成疯子&#xff08;风资&#xff09;&#xff09;: &#xff08;1&#xff09;项目整合管理:识别、定义、组合、统一和协调各项目管理过程组的各个过…

记一些内存取证题

生活若循规蹈矩&#xff0c;我们便随心而动 1.Suspicion 给了俩文件 python2 vol.py -f mem.vmem imageinfo 查看可疑进程 python2 vol.py -f mem.vmem --profileWinXPSP2x86 pslist 发现可疑进程TrueCrypt.exe 把这个进程提取出来。memdump -p 进程号 -D 目录 python2 vol…

QT+网络调试助手+TCP服务器

一、UI界面设计 二、单线程 代码设计 1、 查找合法的本地地址&#xff0c;用于当作服务器的IP地址 #include <QThread> #include <QTcpSocket> #include <QNetworkInterface> #include <QMessageBox>QList<QHostAddress> ipAddressesList QNe…

华为机考入门python3--(23)牛客23- 删除字符串中出现次数最少的字符

分类&#xff1a;字符串 知识点&#xff1a; 访问字典中keychar的值&#xff0c;不存在则返回0 my_dict.get(char, 0) 字典的所有值 my_dict.value() 列表中的最小值 min(my_list) 题目来自【牛客】 import sysdef delete_min_freq_char(s):# 计算字母出现的频次…

Arduino控制继电器,制作智能浇水系统

所需硬件材料 Arduino模块、继电器、直流电机、3-6v电池&#xff08;这个是必须的&#xff0c;电机不能直接接在arduino的5v引脚上&#xff0c;会引起电压不足&#xff09;、杜邦线 实现效果&#xff1a; 电机转动一秒停一秒 将硬件连接如下&#xff1a; 将电机连接到继电…

(MATLAB)安装指南

参考链接&#xff1a;MATLAB2019a安装教程&#xff08;避坑版&#xff09;

应用层协议——HTTP协议

1. 认识HTTP协议 HTTP&#xff08;Hyper Text Transfer Protocol&#xff09;协议又叫做超文本传输协议&#xff0c;是一个简单的请求-响应协议&#xff0c;HTTP通常运行在TCP之上。 超文本的意思就是超越普通的文本&#xff0c;http允许传送文字&#xff0c;图片&#xff0c…

PostgreSQL连接拒绝如何解决和排查?

1. 服务器未运行 解决方案&#xff1a;确保 PostgreSQL 服务已启动。在 Linux 上&#xff0c;你可以使用如下命令来检查服务状态&#xff1a;sudo systemctl status postgresql如果服务未运行&#xff0c;使用以下命令启动它&#xff1a;sudo systemctl start postgresql2. Po…

基于Springboot+Vue的Java项目-旅游网站系统开发实战(附演示视频+源码+LW)

大家好&#xff01;我是程序员一帆&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &am…