0.系统镜像文件的烧录
下载树莓派官方镜像烧录软件
蓝奏云 https://wwz.lanzoue.com/iKmpo1vmapfa 密码:b9zi
安装的是 Ubuntu22.04.4 64bit LTS 版本
1.初见Ubuntu22.04.4 LTS – 配置远程连接(同一)
如何在 Windows笔记本 上远程控制 Ubuntu22.04.4 LTS 树莓派(同一局域网下):
1. 受控端(树莓派4B)
1.Ubuntu初始化引导(未作记录)
2.找到设置 – Sharing(共享) ,配置一下
3.配置部分防火墙:
1 | sudo ufw allow 5900/tcp |
4.查询本机在此局域网内的的IP:
1 | ip a |
2.主控端(Windows)
1.找到Windows内置应用 – 远程桌面连接
4.18 opencv的安装、调用USB摄像头
- Ubuntu 内置 Python3
1 | sudo apt update |
1 | sudo apt install libopencv-dev python3-opencv |
1 | python3 -c "import cv2; print(cv2.__version__)" |
桌面新建文件夹,进入其目录
1 | touch 1.py |
1 | import cv2 |
1 | `python3 1.py` |
1 | ^C # 即按键"Ctrl+C" |
ying.树莓派硬件相关
1.风扇安装位置
Ubuntu22.04+usi 配置摄像头
1.检查gpu_mem,start_x是否如以下配置(其实不需要改,默认就已打开,只需要检查确认下)
gpu_mem=128
start_x=1
将camera_auto_detect注释掉
1 | #camera_auto_detect=1 |
2.安装raspi-config的依赖组件
1 | sudo apt-get install triggerhappy lua5.1 alsa-utils |
3.获取raspi-config,也可以去链接里自己下最新的,或者用我写好的命令
1 | Wget http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20210212_all.deb |
4.安装raspi-config,在
1 | sudo dpkg -i raspi-config_20210212_all.deb |
5.修改Raspberry的启动配置使能项
1 | sudo raspi-config |
选择3 Interface
选择第一个 P1 Camera,然后就一直选择OK,如果报错就执行下面的步骤,如果没有就一直OK下去,然后返回初始界面后选择 Finish ,会让你选择是否重启,选择OK。
如果出现错误Your firmwave appears to be out of date (no start_x.elf). Please update
(1)查看boot分区所在的设备号,设备号可能是:/dev/mmcblk0p1
df -h
(2)这个要看具体是哪个了,有可能是我这条语句里面的
sudo mount /dev/mmcblk0p1 /boot
6.查看是否成功
1 | ls -al /dev/ | grep video |
如果是排线插在树莓派上的,可能是video0,如下图所示。如果有则应该是成功的。或者你可以拔掉再重新上电试一试,看是不是少一个。
无密码登录/插电就登录:解除密钥环–自动登录
4.22 鱼香Ros
1.鱼香Ros – 一键安装 Ros2 和 VScode
1 | wget http://fishros.com/install -O fishros && . fishros |
M.Ubuntu个性化合集
语言更改为中文:
然后会提示你重启 – 手动重启
4.ROS2到底装哪里了
在Windows安装过软件的小伙伴都知道安装软件都会选择一个安装目录,但是安装ROS时候并没有让你选择,ROS安装的默认目录在/opt/ros/下,根据版本的名字进行区分。
我们本节安装的是humble版本的ROS,所以安装目录在/opt/ros/humble下。
1 | cd /opt/ros/humble/ |
安装 Partimage 磁盘克隆软件(失败了)
要在 Ubuntu 上安装 Partimage 磁盘克隆软件:
1 | sudo apt install partimage |
从命令行启动:
1 | sudo partimage |
串口通信工具minicom
1 | sudo apt instal minicom |
1 | sudo minicom -s |
1 | ls -l /dev/serial* |
树莓派安装非官方系统没有raspi-config命令的解决方法
1、安装依赖
1 | sudo apt install whiptail parted lua5.1 alsa-utils psmisc |
2、从Raspberrypi官网下载最新的deb安装包
1 | wget http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20200707_all.deb |
3、安装Deb安装包
1 | sudo dpkg -i raspi-config_20200707_all.deb |
4、装好软件还是提示缺少依赖执行错误
1 | sudo apt install -f -y |
5、运行raspi-config,需要sudo或以上权限
1 | sudo raspi-config |
顿时熟悉的窗口出现在眼前
原文链接:https://blog.csdn.net/no1xium/article/details/107477055
2.1 开启GPIO串口功能,并使用硬件串口
使用 sudo raspi-config
进入图形界面
选择菜单 Interfacing Options -> P6 Serial,
第一个选项(would you like a login shell to be accessible over serial?)选择 NO,
第二个选项(would you like the serial port hardware to be enabled?)选择 YES
原文链接:https://blog.csdn.net/wanggao_1990/article/details/103702563
2.2 禁用串口的控制台功能
前面步骤已经交换了硬件串口与mini串口的映射关系,但是,现在还不能使用树莓派串口模块与电脑进行通信,因为,树莓派gpio口引出串口默认是用来做控制台使用的,即是为了用串口控制树莓派,而不是通信。所以我们要禁用此默认设置。
首先执行命令如下:
1 | sudo systemctl stop serial-getty@ttyAMA0.service |
然后执行命令行修改文件:
1 | sudo nano /boot/cmdline.txt |
并删除语句console=serial0,115200(没有的话就不需要此步骤)
2.3 测试验证串口通信功能
这里使用三种方式进行测试验证, c语言下使用wiringPi库, python语言下使用serial包,最后命令行使用minicom工具。
先安装以上开发工具
1 | sudo apt-get install wiringpi |
原文链接:https://blog.csdn.net/wanggao_1990/article/details/103702563
1 | touch test.py |
1 | `python3 test.py` |
1 | # -*- coding: utf-8 -* |
1 | sudo mv ~/Desktop/slam_gmapping-eloquent-devel/* /opt/ros/humble/src |
1 | sudo apt install python3-roslaunch |
Ros2 命令行操作
1 | pwd |
1 | ls |
1 | ls -A |
1 | mkdir test |
1 | cd test/ |
1 | touch readme.txt |
1 | rm readme.txt |
1 | cd .. |
1 | rm -R test |
1 | sudo apt install XXXX |
1 | - Ctrl+Alt+T 打开终端 |
1 | - 重新打开一个终端 |
1 | # 查看某个节点的基本信息,或者当前系统里有哪些节点 |
1 | ros2 node list |
1 | ros2 node info /turtlesim |
1 | ros2 topic |
1 | 得知当前系统有哪些话题正在发布和订阅 |
1 | # 对(/turtlel/pose)话题进行订阅并打印(数据会周期性地打印出来) |
1 | 控制海龟运动(转圈) |
1 | 创建一只新的海龟,名为"haigui" |
1 | 将上面命令中参数 "turtle1" 改为 "haigui",可以看到"haigui"开始转圈了 |
1 | ros2 bag |
1 | # 录制动作(ctrl+c停止,保存在当前终端所在路径下面) |
1 | # 复现录制的动作(善用Tab) |
镭神N10激光雷达 在 Ubuntu22.04LTS Ros2 中的驱动使用安装流程
1 | sudo chmod 777 /dev/ttyUSB0 |
1 | sudo usermod -aG dialout happy |
Linux 下查看串口
Linux下查看串口状态:快速掌握要点(linux下查看串口) – 后浪云 (idc.net)
1 | ls -l /dev/tty* |
安装Ros2
#重装了系统,系统初始化后#
sudo apt update
sudo apt install locales
sudo locale-gen en_US en_US.UTF-8
sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8
export LANG=en_US.UTF-8
#配置了远程连接#
sudo ufw allow 5900/tcp
sudo ufw allow 3389/tcp
sudo apt install net-tools
ifconfig
#-#-#-#-#
从头配一遍
1.起手初始化配置
Settings – Power – Screen Blank –> Never 永不息屏
2.连接WiFi
3.设置 - Sharing
要你设置密码 - 直接空着点继续 - Remote Desktop 开起来
ip a 看ip
远程连接(今天的远程连接非常奇怪,只能看和共享剪切板,不能控制)
4.happy@happy:~/Desktop$ cd
happy@happy:~$ wget http://fishros.com/install -O fishros && . fishros
选5 – 更换系统源; 再选2 –更换系统源并清理第三方源;再选1 – 添加Ros/Ros2源
#草,换源更新失败三次,第四次换成http-ROS官方源才成功
5.happy@happy:~$ wget http://fishros.com/install -O fishros && . fishros
选1 – 装Ros2
((再选2 – 不更换源 继续安装(但它貌似还是帮我还原了 并且还是换源两次失败 第三次换成https-ROS官方源成功)
再选1 – humble
再选1 - 桌面版
跑到最后没跑通。。关了终端重来一遍))
选1 – 更换系统源再继续安装
选1 – humble
选1 – 桌面版 成功了
6.- Ctrl+Alt+T 打开终端
pi@pi-desktop:~$ ros2 run turtlesim turtlesim_node 启动小乌龟
7.- 重新打开一个终端
ros2 run turtlesim turtle_teleop_key 启动键盘映射
测试完毕,证明ROS环境安装成功
8.Ctrl+C 关闭海龟和键盘
9.再跑小鱼 选3 – 配rosdepc
rosdepc update
10.再跑小鱼 选4 – 检测到有Ros环境 成功了
Ros2开发环境配置
1 | 安装git: |
1 | 安装 VSCode: |
安装VSCode schinese 插件
安装 python 插件
安装 C/C++ 插件
安装 cmake 插件
安装 vscode-icons 插件
安装 ROS 插件
安装 Msg language support 插件
安装 URDF 插件(机器人模型)
安装 intelliCode 插件 (人工智能助手)
安装 Markdown All in One 插件
工作空间与功能包:开发过程的大本营
工作空间(workspace):存放项目开发相关文件的文件夹;是开发过程的大本营。
Home/
Home/dev_ws(dev workspace):工作空间的根目录,内有四个子空间(工作空间的名字可以自定义,数量也并不是唯一)
- src:代码空间(Source Space)
- install:安装空间(Install Space):放置所有代码最终编译结果
- build:编译空间(Build Space):放置编译的中间文件,不太可读
- log:日志空间(Log Space):编译的日志信息
开始创建工作空间:
1.创建文件夹 dev_ws ;
1 | 2.# 创建dev_ws: |
1 | 3.# 进入src空间: |
1 | 4.# 安装 pip |
1 | 5.# 使用 pip 安装 ros 小依赖工具 rosdepc(解决ROS网络访问问题) |
1 | 6.# 初始化 rosdepc 工具 |
1 | 7.# 回到工作空间根目录 |
1 | 8.# 从src文件夹下搜索所有功能包的依赖项并判断是否安装好 |
1 | 9.# 安装 colcon |
1 | 10.# 使用 colcon 对整个工作空间进行完整编译 |
1 | 11.# 配置你的环境变量(因为我们的工作空间是在的任意目录下创建的) |
古月居8:话题:节点间传递数据的桥梁
1 | happy@happy:~$ ros2 run learning_topic topic_helloworld_pub |
6.4 重新配
0.烧录TF卡 UBUNTU DESKTOP 22.04.4 LTS (64-BIT)
1.起手初始化配置
Settings – Power – Screen Blank –> Never 永不息屏
Display – Resolution – 1280*720(备选)
2.连接WiFi
3.设置 - Sharing
要你设置密码 - 直接空着点继续 - Remote Desktop 开起来
ip a 看ip
远程连接
4.happy@happy:~/Desktop$ cd
happy@happy:~$ wget http://fishros.com/install -O fishros && . fishros
选5 – 更换系统源; 再选2 –更换系统源并清理第三方源;再选1 – 添加Ros/Ros2源
5.happy@happy:~$ wget http://fishros.com/install -O fishros && . fishros
选1 – 装Ros2
选1 – 更换系统源再继续安装
选1 – humble
选1 – 桌面版
(等待半天ing)
Ros2安装成功了,输密码确认一下
6.再跑小鱼 选3 – 配rosdepc
rosdepc update
7.再跑小鱼 选4 – 检测到有Ros环境 成功了
至此ROS2环境配置完毕
8.sudo apt install python3-pip 检查一下pip 没问题
happy@happy:~$ python3 -m pip install numpy
检查numpy 安装了
sudo apt install libopencv-dev python3-opencv
检查opencv-python 安装了
happy@happy:~$ python3 -m pip install matplotlib
检查matplotlib 安装了
至此OpenCV环境安装完毕
下面是一段用于解决特定问题的配置:http://t.csdnimg.cn/gMpU6
相关知识:如何在 Ubuntu 中创建、删除和调整 SWAP 空间 - 系统极客 (sysgeek.cn)
1 | 创建分区路径 |
开始创建工作空间:
happy@happy:~$ cd /home
1.创建文件夹 dev_ws ;
1 | 2.# 创建dev_ws: |
1 | 3.# 进入src空间: |
1 | 4.# 检验 pip 是否安装 |
1 | 5.# 使用 pip 安装 ros 小依赖工具 rosdepc(解决ROS网络访问问题)(未使用) |
1 | 6.# 初始化 rosdepc 工具 |
1 | 7.# 回到工作空间根目录 |
1 | 8.# 从src文件夹下搜索所有功能包的依赖项并判断是否安装好 |
1 | 9.# 检查 colcon 是否安装 |
1 | 10.# 使用 colcon 对整个工作空间进行完整编译 |
1 | 11.# 配置你的环境变量(因为我们的工作空间是在的任意目录下创建的) |
下一步,从U盘导入
下一步,USB插上N10雷达;
1 | 提升指定串口权限 |
1 | sudo usermod -aG dialout happy |
插上USB摄像头
1 | sudo apt install ros-humble-usb-cam |
报错:Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is heWaiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 2220 (unattended-upgr)
Waiting for cache lock: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 2220 (unattended-upgr)… 916s
解决方案:
1 | sudo killall apt apt-get |
如果提示没有apt进程:
1 | apt: no process found |
解决了
6.7 进入 home/dev_ws
colcon build 显示 cartographer 编译 failed
#sudo apt install cmake 检查cmake 没事
初步判断为 cratographer 没有 absl
进入 home
sudo apt-get install stow
sudo chmod +x ~/dev_ws/src/cartographer/scripts/install_abseil.sh
$ cd ~/dev_ws/src/cartographer/scripts
./install_abseil.sh
报错:bash: ./install_abseil.sh: /bin/sh^M: bad interpreter: No such file or directory
sed -i ‘s/\r$//‘ install_abseil.sh
git clone https://github.com/abseil/abseil-cpp.git
./install_abseil.sh: 20: git: not found
这个错误提示表示系统无法找到git
命令,因此无法执行git clone
命令。
安装git
sudo apt-get install git
报错
sudo apt install ros-humble-cartographer
sudo apt install ros-humble-cartographer-ros
wget http://fishros.com/install -O fishros && . fishros
3