Windouws11下WSL2的Ubuntu18.04安装及ROS+PX4环境配置

一、准备工作

1.开启windows相关功能

开始 \(\rightarrow\) 搜索 \(\rightarrow\) 程序与功能 \(\rightarrow\) 启动或关闭Windows功能 \(\rightarrow\) 勾选 "适用于LInux的Windows子系统""虚拟机平台"

保存当前工作后,按要求重启即可

2.安装内核更新包

https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi

  • 不安装内核更新包可能出现错误安装Linux子系统失败提示错误代码0x800701bc

3.在命令提示符(Command Prompt,也俗称为控制台)中设置wsl默认版本为2并更新wsl

wsl --set-default-version 2
wsl --update

4.下载子系统

开始 \(\rightarrow\) 搜索 \(\rightarrow\) PowShell

#查看可安装banben
wsl --list --online 
#开始安装
wsl --install -d Ubuntu-18.04 # 安装Ubuntu-18.04

选择需要的版本安装(我在这里选的是Ubuntu18.04)

二、安装子系统

1.Ubuntu 系统安装

开始 \(\rightarrow\) 搜索 \(\rightarrow\) Ubuntu18.04 运行会自动安装子系统ubuntu18.04

安装完以后输入用户名和密码(Ubuntu22.04界面与Ubuntu18.04、Ubuntu20.04不同,但是内容大体相仿

  • 用户名首字母不要含有大写
  • 密码输入以后是不可见
  • 重新输入密码仍然是不可见

在PowerShell中使用wsl -l -v命令则可以查看当前的子系统信息

进入系统以后换源

sudo vim /etc/apt/sources.list

输入键盘上的“I”,进入插入模式

内容替换为

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

按键盘上的“ESC”,然后输入:wq(注意冒号为半角)即可完成换源

更换完成后输入sudo apt-get update更新软件源列表即可

2.系统从C盘迁出

打开PowerShell,终止正在运行的分发或虚拟机:

wsl --shutdown

对需要迁移的分发或虚拟机导出(我安装的版本是Ubuntu-18.04):

wsl --export Ubuntu-18.04 path

我这里的path给的是D:\WSL2\wsl2_Ubuntu_1804
完整指令则是

wsl --export Ubuntu-18.04 D:\WSL2\wsl2_Ubuntu_1804

卸载分发版或虚拟机

wsl --unregister Ubuntu-18.04

导入新的分发版或虚拟机:

wsl --import Ubuntu-18.04  path --version 2

我这里的path给的是D:\WSL2\wsl2_Ubuntu_1804
完整指令则是

wsl --import Ubuntu-18.04 D:\WSL2 D:\WSL2\wsl2_Ubuntu_1804 --version 2

接下来需要找回一下账户:

ubuntu1804.exe config --default-user username

这里的username即为之前输入的用户名

  • 若报错安装其中一个文件系统时出现错误。有关详细信息,请运行'dmesg'。

    打开PowerShell运行wsl --shutdown后重启Ubuntu18.04即可。

  • 若出现错误系统找不到指定的文件需要重新安装ubuntu

3.重新安装Ubuntu

首先需要卸载Ubuntu,Microsoft Store中无法卸载,可以在控制面板中对Ubuntu卸载

查看当前环境安装的wsl

wsl --list

注销(卸载)当前安装的Linux的Windows子系统(名称要与list获取的一致)

wsl --unregister Ubuntu-18.04

卸载成功,查看当前安装的Linux的Windows子系统

wsl --list

再重新安装即可

三、环境配置

1.ROS安装

添加ROS软件源

将下面这条命令复制到ubuntu的终端执行

sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

添加密钥

将以下命令复制到ubuntu的终端执行

sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
  • 如果公钥无法验证,就在网上搜相关的公钥替换上去即可

更新软件源

将以下命令复制到ubuntu的终端执行

sudo apt update

安装ROS

ubuntu18.04 执行下面的命令来安装

sudo apt install ros-melodic-desktop-full

如果提示有没安上的依赖,可以使用下面命令来安装

sudo apt-get install ros-melodic-rqt*

安装完再执行一下,确保安装成功

sudo apt install ros-melodic-desktop-full

初始化rosdep

初始化rosdep与网络环境关系很大,直接使用下面这个命令,选3就行

wget http://fishros.com/install -O fishros && . fishros

这行代码来源于这个网站

设置环境变量

echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc

验证安装是否成功

新开三个终端,分别输入

roscore
rosrun turtlesim turtlesim_node
rosrun turtlesim turtle_teleop_key

出现小乌龟图标并且能控制,说明ROS安装成功

2.PX4安装

从github上clone源码

git clone -b v1.11.1 https://github.com/PX4/PX4-Autopilot.git --recursive #Ubuntu18.04用这个v1.11.1版本,然后直接运行ubuntu.sh组件即可

进入PX4-Autopilot文件夹,继续下载未下载完的组件(一般是下完了,不放心可以运行一下这步)

cd PX4-Autopilot/
git submodule update --init --recursive

执行ubuntu.sh脚本

bash ./PX4-Autopilot/Tools/setup/ubuntu.sh

中间出错的话执行指令

python3 -m pip install --upgrade pip
python3 -m pip install --upgrade Pillow

如果过程中有安装失败的地方,可以再用:

bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --fix-missing
  • 更新一下,完成后一定要重启系统

测试PX4

进入你下载的PX4-Autopilot文件夹内,进行编译

cd PX4-Autopilot

make px4_sitl_default gazebo

若遇到类似的错误

FAILED: /home/xxxx/catkin_ws/Firmware/Tools/sitl_gazebo/models/iris/iris.sdf

则运行

sudo apt upgrade

再次编译即可成功:

make px4_sitl_default gazebo

若出现其它如.so文件缺失的错误,请删除X4-Autopilot文件夹后,重新git clone PX4源码

终端输入commander takeoff,可以看到无人机起飞

终端输入commander land, 可以看到无人机降落

添加环境变量

将这三行放入./.bashrc的最后面,作为./.bashrc的最后三排

Ubuntu18.04用下面这三行

source ~/PX4-Autopilot/Tools/setup_gazebo.bash ~/PX4-Autopilot/ ~/PX4-Autopilot/build/px4_sitl_default
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot
export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/sitl_gazebo

3.MAVROS安装

sudo apt-get install ros-melodic-mavros ros-melodic-mavros-extras

然后运行以下命令测试

roslaunch mavros px4.launch

若出现以下报错

UAS: GeographicLib exception: File not readable /usr/share/GeographicLib/geoids/egm96-5.pgm | Run install_geographiclib_dataset.sh script in order to install Geoid Model dataset!

尝试运行

# sudo apt install ros-melodic-mavros ros-melodic-mavros-extras 		# for ros-melodic

wget https://gitee.com/robin_shaun/XTDrone/raw/master/sitl_config/mavros/install_geographiclib_datasets.sh
sudo chmod a+x ./install_geographiclib_datasets.sh
sudo ./install_geographiclib_datasets.sh  #这步需要装一段时间,请耐心等待PX4配置

若出现以下报错

FCU: DeviceError:serial:open: No such file or directory

需要roscd到mavros下的launch下的px4.launch(apm.launch我也改了)

将串口修改为存在的串口(用这个命令来查看ls -l /dev/

<arg name="fcu_url" default="/dev/ttyACM0:57600" />
//改为我存在的串口,比如tty0
<arg name="fcu_url" default="/dev/tty0:57600" />

若再出现以下报错

FCU: DeviceError:serial:open: Permission denied

给串口权限即可

sudo chmod 666 /dev/ttyUSB0 #临时权限

永久打开串口权限

首先查看用户组

ls -l /dev/ttyUSB0

终端输出:

crw-rw-rw- 1 root dialout 188, 0 12月 19 14:47 /dev/ttyUSB0

可以看到用户 root ,所属用户组为 dialout, 因此一种方法是把我们的当前用户名 加入到这个用户组。

$ whoami
username
sudo usermod -aG dialout username

最后,logout 再登入系统,登陆名username就可以使用该串口了。

再运行

roslaunch mavros px4.launch

没有报错出现了。

运行

roslaunch px4 mavros_posix_sitl.launch

仿真成功

四、Fast-Planner工程实例

1.创建一个工作文件夹方便管理

mkdir work_sp

2.创建工作空间

# 创建工作空间
cd work_sp
mkdir -p catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
# 编译工作空间
cd ~/catkin_ws/
catkin_make # 编译src下面所有源码,但是不会生成install空间,如果需要生成install,catkin_make install

3.安装该工程的必要依赖

sudo apt-get install libarmadillo-dev ros-melodic-nlopt
cd work_sp/catkin_ws/src
git clone https://github.com/HKUST-Aerial-Robotics/Fast-Planner.git
cd ../ 
catkin_make

4.运行该实例

source devel/setup.bash && roslaunch plan_manage rviz.launch

新开一个终端

source devel/setup.bash && roslaunch plan_manage kino_replan.launch
posted @ 2023-04-22 13:30  Soapen  阅读(1011)  评论(0编辑  收藏  举报