在树莓派上连接思岚雷达并运行 slam 算法
硬件环境RaspBerry PI 4Brplidar A2 M12
软件环境Ubuntu Server 20.04 LTS (respberry)Ubuntu Server 20.04 LTS (工程机)ros galactic
1. 连接雷达1.1 连接思岚雷达标配一个雷达、一个转接器、一根电源线、一根数据线,首先将这四部分全部连接好,电源线的USB type-A端需要接5V电源,这个需要自己准备,数据线的USB type-A端直接连接树莓派。
如此连接后,在树莓派执行命令:
1ls /dev/ttyUSB*
如果你的树莓派USB接口只连接了雷达的话,应该会出现ttyUSB0。
1.2 使用 udev 将雷达绑定为静态设备
注:这一部分不是必须的。
首先使用lsusb命令,获取雷达的pid和vid:
pi@raspberrypi:~/project/slam$ lsusb
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 002: ID 1058:25a1 Weste ...
centOS 6 环境下离线安装 gcc 与 Python
适用版本:centOS 6,gcc 4.4.7,Python 3.10
有时因为在内网环境里,禁止连接公网,但是又要安装gcc、python,这时就要借助一台联网的电脑,下载rpm安装包和python源码包,再通过 U 盘复制到目标主机,进行离线安装。
1. 事前准备操作之前准备好以下物品:
1. 一台联网的计算机
2. 一个 U 盘
3. 目标主机
联网的计算机用于下载各类安装包,U 盘则将安装包通过物理接口转移到目标主机中。
2. 下载 rpm 包在联网的计算机中下载需要的rpm包。
centOS 6的相关镜像在官方、阿里、清华等镜像站均已下线,但可以在以下网站中找到:
https://vault.centos.org/6.9/os/x86_64/Packages/
按照下面两节下载相应的包,下载完成后如图:
图 1-1 下载 rpm 包
2.1. gcc 相关包在提供的网站上ctrl+f搜索以下包,并点击下载:
1. cloog-ppl
2. cpp
3. gcc
4. glibc-devel
5. glibc-headers
6. kernel-headers
7. ...
使用树莓派搭建简单的 NAS 服务器
硬件环境RaspBerry PI 4B * 1SD卡读卡器 * 1SD卡 * 1网线 * 1硬盘 * 1软件环境Windows 11Raspberry Pi ImagerUbuntu Server 20.04 LTSSambaTransmission / qBittorrent
1. 烧录系统安装树莓派官方系统烧录软件Raspberry Pi Imager。
将SD卡插入读卡器,将读卡器插入 PC 的 USB 口。
选择Ubuntu Server 20.04 LTS系统以及SD卡:
图 1-1 烧录系统
点击烧录工具右下角的“齿轮”按钮,配置主机名、开启SSH服务、配置登录用户名与密码、配置初始连接的WiFi名与密码、配置语言。此处我们使用的是没有任何显示器的裸树莓派,所以务必开启SSH以及配置好WiFi。
2. 连接有线网首先将系统默认生成的/etc/netplan/50-cloud-init.yaml备份,并删除原文件。
配置有线网络:
1sudo vim /etc/netplan/02-netcfg.yaml
输入以下内容:
1234567891011net ...
基于 gazebo 仿真的 ROS 2 开发
博文编辑中…
适用版本:ros-galactic
1. ROS2 安装 gazebo默认安装的ros2是不包含gazebo的,首先我们安装gazebo11:
1sudo apt-get install ros-galactic-gazebo-*
后续我们会使用Cartographer进行SLAM,所以还需要安装Cartographer相关的功能包:
12sudo apt install ros-galactic-cartographersudo apt install ros-galactic-cartographer-ros
接着安装Turtlebot3相关功能包:
12sudo apt install ros-galactic-turtlebot3sudo apt install ros-galactic-turtlebot3-simulations
2. 使用 gazebo 仿真2.1 例程配置gazebo的仿真模型路径:
1$ export GAZEBO_MODEL_PATH=$GAZEBO_MODEL_PATH:'ros2 pkg \prefix turt ...
基于 ROS turtlesim 的简单编程
博文编辑中…
1. ROS demo2. ROS 简单指令3. ROS 工程
本节内容基本根据古月居老师的《ROS入门21讲》整理归纳
本节功能包部分代码皆使用python3语言编写
3.1. 工程概述3.1.1 工程结构workspace
├── src/
├── build/
├── devel/
└── install/
ROS工程的开发、编译等都需要在ROS的工作空间(workspace)中进行,在工作空间中一般分为四个目录:
src,代码空间(Source Space),放置工程的功能包,所有的功能包代码、配置等都在src中进行;
build,编译空间(Build Space),放置工程编译过程中产生的中间文件;
devel,开发空间(Development Space),放置工程编译生成的可执行文件、库、脚本等;
install,安装空间(Install Space),工程使用catkin_make install目录生成的安装目录,与devel有一定重复。
3.1.2 功能包功能包是ROS编译的最小单元,其在src代码空间目录下,不能将代码直接放在src目录下 ...
Windows 11 WSL2 安装并运行 ROS
博文编辑中…
适用版本:WSL2 Ubuntu-20.04 ros-noetic ros-galactic
1. WSL1.1. 安装 WSL2 与 Ubuntu-20.04在windows设置(设置->应用->可选功能->更多 Windows 功能)中启用Virtual Machine Platform(虚拟机平台)与适用于 Linux 的 Windows 子系统:
图 1-1 打开虚拟机平台与linux子系统功能
等待安装完成后,升级wsl:
1234# 升级wsl --update# 重启wsl --shutdown
在Minecroft Store中下载Ubuntu-20.04 LTS:
图 1-2 安装Ubuntu-20.04
安装完成后,在开始菜单或者Windows 终端(Windows 11)中启动Ubuntu。
2. ROS2.1. 安装 ROS12345678910# 添加 ros 源sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_re ...
居家杂谈
引2022 年 3 月 28 日晚 8 点,上海官方宣布第二日早 5 点起封锁黄浦江以东,顿时,超市、菜市场、批发市场人声鼎沸,简直是给奥密克戎开了个盛大 party。我和她早已居家办公,收入暂时不成问题,另外,幸好平时有囤积食物的习惯,也可以多熬些日子。
生存游戏3 月 28 号政策刚出,曰,封锁 4 日;期限未到,又曰,按 7 + 7 (14 日)封锁;期限又到,我们社区划分为防控区,按说可进出小区、再不济也可小区活动,然,又一文件下达,防控区参考管控区管理,原则上不出家门。
4 月 22 号前我们小区已四面楚歌,对面小区、隔壁小区、经常路过的小区、曾经住过的小区都已查出阳性病例,只有我们社区没有病例,所有居民也只能战战兢兢地生活。23 日一早,浦东发布公众号发布了前日疫情:我们小区赫然在列,要知道社区一旦出了阳性病例,隔离期限就必须从 7 + 7 的第一日开始算起,虽然也不知道到底什么时候可以解封,但没有病例,总让人有个念想,这一消息传来,实在让人心灰意冷。当日,又有消息,此人不住在我们小区,只是登记在此处(虽然我也不太明白这是什么意思),又给人了一丝希望。次日,小道消息稍微证实 ...
基于 Naive-UI-Admin 开发后台管理系统的相关问题总结
适用版本:naive-ui-admin 1.8.0
1. route 切换 / tab 切换后页面空白route 切换 / tab 切换后页面空白的问题,目前我遇到两种情况,都会导致这个问题发生:
view 页面无元素
在<template></template>内部至少要有一个元素(如图 1-1),若页面 A 无内容,则其跳转到其他路由,都会是空白页面:
图 1-1 至少一个元素
view 页面有多个根元素
第二次遇到页面空白的问题后,我去网上查找资料,包括 github 上的 issue,给的答案基本都是因为动画控件的原因, view 页面不能有多个根元素。这个答案听得我一头雾水,其实是我没有理解什么是根元素:在 naive-ui-admin 中,根元素是指 view 页面内的<template></template>内部最顶级的元素。而我最初以为<template>就是指根元素。
我当时的代码如图 1-2:
图 1-2 反例
现在我们知道,我的根元素有 3 个:<n-card> ...
解决 CentOS 6 无法正常使用 yum 的问题
CentOS 6 yum 源已于 2020 年 11 月被官方移除,逐级镜像也会陆续移除。
将 yum 源替换为国内阿里 yum 源可解决此问题。
1. 替换 yum 源禁止通过镜像访问 yum 源(因为镜像已失效):
1sed -i "s|enabled=1|enabled=0|g" /etc/yum/pluginconf.d/fastestmirror.conf
为防止意外情况,建议备份原有的 yum 源:
1mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下载阿里的 yum 源替换原 yum 源:
1wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo
清除与下载 yum 包缓存:
12yum clean allyum makecache
若在下载到缓存的步骤出现以下错误:
http://mirrors.al ...
CentOS 7 安装与使用 NFS
注:以下文字内 [your ip] 为你当前的本机 ip,[your gateway ip] 为你当前本机的网关 ip,[link nfs ip] 为需要连接本机 nfs 的目标 ip。
1. 安装 NFS1.1. 安装 NFS 与 rpcbind1yum install nfs-utils rpcbind
1.2. 创建共享目录并设置权限12mkdir /data/share/chmod 755 -R /data/share
1.3. 配置 NFS/data/share/ [your gateway ip]/24(rw,no_root_squash,no_all_squash,sync,insecure)
rw表示设置目录可读写。
sync表示数据会同步写入到内存和硬盘中,相反rsync表示数据会先暂存于内存中,而非直接写入到硬盘中。
no_root_squashNFS客户端连接服务端时如果使用的是root的话,那么对服务端分享的目录来说,也拥有root权限。
no_all_squash不论NFS客户端连接服务端时使用什么用户,对服务端分享的目录来说都不会拥有匿名用户权限。
i ...