树莓派烧录22.04镜像后的初始配置,并新建工作空间、功能包

镜像烧录

使用Etcher烧录镜像“ubuntu-22.04-preinstalled-desktop-arm64+raspi.img”,注意版本一定是要与树莓派匹配的,即名称中必须有raspi,否则板子初始化会失败。之后进行系统配置,用户名是user  , 一个用户可以有多个主机;  主机名是 hostname,要修改,就去 /etc/hostname目录修改.

22.04镜像下载网址为:Index of /releases/jammy

ROS2及VSCode下载

使用鱼香肉丝进行一键下载,依次选择命令1 1 2,等待三分钟左右后选择1 1,安装humble桌面版。如果提出报错按照说明进行操作即可。之后使用同样的命令选择[7]即可下载VSCode

# 注意里面的字母大写O,不是数字0
sudo wget http://fishros.com/install -O fishros && . fishros

设置系统时间

如果系统时间与目前时间相差较大,则会提示证书过期,无法执行sudo apt update命令。具体设置自动同步时间的方法如下:

# 设置系统时间为当前时间,如 "2024-06-19 13:30:40"
sudo date --set="2024-06-19 13:30:40"

# 安装 ntp 工具包,如果出现无法获得锁的提示则杀死对应进程
sudo apt install ntp
sudo kill -9 2549             # 把2549替换为对应占用锁的进程号
date                          # 查看是否同步

# 启动 ntp 并设置开机自启动
sudo systemctl start ntp
sudo systemctl enable ntp

SSH远程连接树莓派

由于树莓派板子运行太慢,使用笔记本电脑远程SSH连接,对其进行操作。需要树莓派和笔记本连在同一个局域网内(需要是路由器的那种,不可以是手机热点),然后在树莓派上输入ifconfig查看网络ip,如192.168.1.109。查看ip也可以在笔记本上网址输:192.168.1.1,进入局域网管理员界面查看设备ip。

首次开机需要手动打开树莓派的SSH功能,方法如下:

# 安装 ifconfig 对应工具包
sudo apt install net-tools

# 第一次开机需要下载 SSH 工具包
sudo apt install openssh-server

# 打开并设置开机自动运行
sudo systemctl enable ssh
sudo systemctl start ssh

# 查看SSH运行状态
sudo systemctl status ssh

之后在笔记本上的VSCode中,配置SSH文件中修改ip为刚才查到的树莓派的ip,连接,选择linux,输入密码即可。User指的是命令行中的前一个,如例子中的命令行显示为lamps-xe1@bit。

Host mypi
  HostName 192.168.1.109
  User lamps-xe1    

注意:如果笔记本之前连接过相同ip的树莓派,容易出现连接失败的场景,在笔记本cmd中运行  ssh lamps-xe3@192.168.1.109 如下报错,这是因为之前连接的树莓派在笔记本中留下了密钥,更换板子就更换了密钥,使用了相同的ip地址就会出现这个报错。

@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ED25519 key sent by the remote host is
SHA256
/RTKufPt7dc2U2jh+PJfqGJtiA.
Please contact your system administrator.
Add correct host key in C:\Users\w_yXenon/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in C:\Users\w_yXenon/.ssh/known_hosts:13
Host key for 192.168.1.109 has changed and you have requested strict checking.
Host key verification failed.

解决方法如下:

  • 使用文本编辑器打开 known_hosts 文件

    在 Windows 上,你可以使用文本编辑器(如 Notepad++、Sublime Text 等)打开 known_hosts 文件。文件通常位于 C:\Users\YourUsername\.ssh\known_hosts

  • 查找并删除旧的条目

    打开文件后,查找与你尝试连接的树莓派 IP 地址相关的行。行的开头通常显示了主机 IP 地址或主机名以及其密钥。

    • 使用编辑器的查找功能(通常是 Ctrl + F)查找 192.168.1.109(根据你的实际情况替换为正确的 IP 地址)。
    • 找到匹配的条目后,删除整行或删除行中的特定条目。
    • 保存文件后关闭编辑器即可。

新建工作空间并编译

# 新建文件夹,-p为-parent意思,如果该路径下有父目录不存在,则一并创建父目录
mkdir -p ~/ros2_ws/src
cd ~/ros2_ws/src
#安装pip3
sudo apt install -y python3-pip
#通过pip3安装rosdepc,rosdepc是中国区适配的rosdep,并初始化和更新
sudo pip3 install rosdepc
sudo rosdepc init
rosdepc update

#到工作空间目录下,安装/更新依赖,此处版本为ROS2 Humble LTS
cd ~/ros2_ws
rosdepc install -i --from-path src --rosdistro humble -y
# 没有colcon命令要先安装
sudo apt update
sudo apt upgrade
sudo apt install python3-colcon-ros

# 到工作空间根目录下,colcon build 将编译文件夹下的所有源码并完成相应配置
cd ~/ros2_ws
colcon build

使用CMake创建功能包

# 创建一个包,在ROS2中创建新包的命令语法是:
ros2 pkg create <package_name> --build-type ament_cmake --license Apache-2.0 --dependencies rclcpp
# 举例,包名称为two_camera
ros2 pkg create two_camera --build-type ament_cmake --dependencies rclcpp --license Apache-2.0

build-type 用来指定该包的编译类型,一共有三个可选项ament_python、ament_cmake、cmake
license 用于制定证书,一般设置为Apache-2.0,如果不指定会弹出一个警告但是没有别的影响
dependencies 指的是这个功能包的依赖,由于我需要的是C++语言,这里使用的依赖是rclcpp

摄像头及GStreamer相关

# 查看摄像机支持的协议帧率:
v4l2-ctl -d /dev/video0 --list-formats-ext --all

# 命令行启动gstreamer:
gst-launch-1.0 v4l2src device=/dev/video0 ! image/jpeg, width=1920, height=1080, framerate=30/1 ! jpegdec ! videoconvert ! autovideosink

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值