树莓派Pi4B+激光雷达SLAM建图环境搭建(Ubuntu20.04.3 + ROS Noetic)

您所在的位置:网站首页 ros主从机rosbag录制 树莓派Pi4B+激光雷达SLAM建图环境搭建(Ubuntu20.04.3 + ROS Noetic)

树莓派Pi4B+激光雷达SLAM建图环境搭建(Ubuntu20.04.3 + ROS Noetic)

2024-01-19 19:07| 来源: 网络整理| 查看: 265

原文:树莓派Pi4B+激光雷达SLAM建图环境搭建(Ubuntu20.04.3 + ROS Noetic)

之前学习ros,nvidia jetson nano板子装的ubuntu18.04系统比较正常,但是pi4b的板子装的raspberry系统会出现各种依赖问题。最近想充分利用下几块pi4b的板子,反复试了pi4官方/非官方的ubuntu18.04.5+ROS Melodic版本,最终都会卡在map-server或rviz等依赖上。最终用Pi4B + Ubuntu20.04.3 + ROS Noetic + RpLidar安装测试成功,记录一下安装过程。

图片图片01  Ubuntu镜像烧制

准备好PI4B板子、SD卡、USB读卡器、显示器、无限键鼠,外加一台烧制用的电脑,这里我用的一个ubuntu的开发本。

1.1 准备烧制软件a. 安装Raspberry Pi Imager

安装树莓派官方的烧制软件Raspberry Pi Imager,我用的本身是linux,可以直接命令安装:

sudo snap install rpi-imager

其他操作系统可以自行下载对应版本:

Raspberry Pi Imager as a deb packageRaspberry Pi Imager for WindowsRaspberry Pi Imager for macOS

app安装完是树莓派的icon,找到后启动:

图片图片1.2 烧制镜像a. 选择镜像

点击“CHOOSE OS”,选择“Other general-purpose OS” —“Ubuntu”—“Ubuntu Server 20.04.3”,选中arm64的版本(会自动下载对应镜像文件,不用自己单独下载):

图片图片

b. 选择SD卡

点击“CHOOSE STOGAGE”,选择要烧制的SD卡后,点击“WRITE”即可。

*注意:这里下载并烧制的速度很慢,感觉至少1-2个小时左右,实在熬不动了睡了,第二天早上起来看烧制完毕了…

1.3 系统初始化a. 初始化密码

sd卡插入pi4,接上键鼠、显示器,启动系统,初始用户名和密码都是ubuntu,第一次登录会强制修改密码。

你也可以创建一个自己习惯的用户:

# 添加work用户 sudo adduser work # 添加权限 sudo vim /etc/sudoers work ALL=(ALL) ALL sudo usermod -aG sudo,adm,dialout,cdrom,floppy,audio,dip,video,plugdev,lxd,netdev work # 查看权限 id work # 切换用户 su work

因为安装的是server版,为了方便操作,我们还需要安装桌面:

# 更新 sudo apt update sudo apt upgrade # 安装桌面 sudo apt install -y ubuntu-desktop1.4 远程管理a. 远程桌面

设置里配置wiki之后,从官网下载安装nomachine arm64版本,之后就可以脱离显示器和键鼠,通过路由器查看ip后直接ssh或nomachine操作即可。

b. 异地组网

你还可以安装ZeroTier,登录并创建私有网络,在板子里join后,你就可以在非局域网直接链接到板子:

# linux下一键安装 curl -s https://install.zerotier.com | sudo bash # 加入自己创建的私有网络 zerotier-cli join a09acf02339e3f97

设置“network”自动网络代理,配置.pac文件地址,以避免后边某些包无法下载。

02  安装ROS Noetic2.1 安装ros noetic

因为melodic仅支持18.04,ROS1里只有noetic支持ubuntu20.04,所以我们这里安装noetic版本:

# 配置ros源 sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list' # 添加公钥 sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654 # 或 curl -s https://raw.githubusercontent.com/ros/rosdistro/master/ros.asc | sudo apt-key add - # 安装ros桌面版 sudo apt update sudo apt install ros-noetic-desktop #桌面完整版-desktop-full;桌面版-desktop;基础版-ros-base # 安装slam包 sudo apt install ros-noetic-slam-gmapping ros-noetic-map-server # 设置环境 echo "source /opt/ros/noetic/setup.bash" >> ~/.bashrc source ~/.bashrc # 安装编译依赖 sudo apt install python3-rosdep python3-rosinstall python3-rosinstall-generator python3-wstool build-essential # 初始化 rosdep sudo apt install python3-rosdep sudo vim /etc/hosts 185.199.110.133 raw.githubusercontent.com sudo rosdep init rosdep update2.2 安装编译环境并测试激光雷达# 准备编译目录 mkdir -p ~/catkin_ws/src cd catkin_ws/src/ # 克隆RPLIDAR ROS代码库(记得添加板子的ssh key到github) git clone [email protected]:robopeak/rplidar_ros.git # 编译 cd ~/catkin_ws catkin_make # source echo "source /home/ubuntu/catkin_ws/devel/setup.bash" >> ~/.bashrc source ~/.bashrc echo $ROS_PACKAGE_PATH # 启动激光雷达节点 roscore rosrun rplidar_ros rplidarNode # 查看激光雷达数据 rostopic list rostopic echo /scan # 可视化点云数据 roslaunch rplidar_ros view_rplidar.launch # 如果在PC上查看点云,须去掉rplidarNode的启动 roscd rplidar_ros/launch/ cp view_rplidar.launch view_rplidar_robot.launch # 修改robot文件,把rplidar.launch注释掉,以免PC本地启动rplidar节节点2.3 测试slam建图

参考:机器人操作系统ROS—使用激光雷达RpLidar A1进行SLAM定位建图 #四、使用激光雷达进行SLAM定位建图

# 定位与地图管理工具 sudo apt install ros-noetic-fake-localization ros-noetic-map-server # hector 不需要里程计数据,只根据激光信息即可构建地图 sudo apt install ros-noetic-hector-slam ros-noetic-hector-slam-launch # gmapping 需要IMU+里程计+激光信息构建地图 sudo apt install ros-noetic-gmapping ros-noetic-slam-gmapping # karto sudo apt install ros-noetic-open-karto ros-noetic-slam-karto # SLAM建图测试 roslaunch rplidar_ros view_slam.launch # PC端可视化 roslaunch rplidar_ros view_slam_robot.launch #只保留rviz node即可 # 保存地图 roscd rplidar_ros/ mkdir map -p && cd map rosrun map_server map_saver -f map03  总结

安装过程中全程连接手机4G热点,除了raw.githubusercontent.com安装相对顺畅,所以如果大家因为各种网络问题,注意三种解决方法:

1. 科学上网避免有些域名不能访问;

2. 手机4/5G热点网速更快(全部下来2-3G的流量);

3. 域名如果怎么搞都不行,就在其他机器ping出IP地址,直接把IP配置到/etc/hosts中,跳过DNS过程。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3