欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

树莓派安装Ubuntu Mate解决无法连接WiFi问题,并部署Ros系统

程序员文章站 2022-03-15 11:02:59
...

树莓派安装Ubuntu Mate解决无法连接WiFi问题,并部署Ros系统。

一、解决Ubuntu Mate安装完成后不能连接wifi的问题

安装镜像下载地址:

链接: https://pan.baidu.com/s/1bolsKK28uSsHBotFTsK2XA

提取码: fcea

详细的烧写和安装过程就不在这里叙述了,在安装完成Mate后,发现系统竟然没有无线网,WTF?在查找了好多问题后,找到了如下解决办法。

1、进入/etc/network/目录中

2、编辑interfaces文件(注意此处使用root权限编辑),以下是interfaces原内容,

# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
# The loopback network interface
auto lo
iface lo inet loopback			#此处仅分配了一个本地回环地址,所以需要在此处添加wifi的配置

3、在尾部加入如下内容,完成后保存

auto wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -Dwext -i wlan0 -c /ect/wpa_supplicant/wpa_supplicant.conf -B

4、进入/etc/wpa_supplicant目录中,root权限下新建一个名为wpa_supplicant.conf的文件,文件内容如下:

network={
        ssid="xxx"
        psk="xxx"
}

ssid和psk分别对应无线网名称和密码,如果有多个wifi的情况下,可以依次往下追加,如下:

network={
        ssid="xxx"
        psk="xxx"
        priority=1
}
network={
        ssid="xxx"
        psk="xxx"
        priority=2
}

其中priority的值越大,代表此个ssid优先级越高。

完成以上步骤后,保存并重启树莓派,但是重启完成后并不能保证wifi能顺利连接,这时候需要返回到第3步,将添加的内容用#注释掉再重启一次就可以了。

二、安装openssh

我习惯在Windows上使用ssh去操作,因此需要安装ssh,首先更新一下源:

sudo apt update

安装openssh

sudo apt install openssh-server

安装完成后启动ssh服务

sudo /etc/init.d/ssh start

查看树莓派本地ip

ifconfig

树莓派安装Ubuntu Mate解决无法连接WiFi问题,并部署Ros系统

三、安装ros

1、更新源

Ubuntu Mate默认的源为官方源,可能连接存在不顺畅的问题,建议使用国内的源,不过这个根据个人网络确定,如果需要使用国内源,建议先将原来的配置备份一下:

①、备份原配置

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

②、设置国内源:

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'

或者可以设置国外源,这个根据个人网速环境选择。

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://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

④、更新源

sudo apt update

更新过程中可能会出现没有公钥的情况,如下:

aaa@qq.com:~$ sudo apt update
命中:1 http://ppa.launchpad.net/flexiondotorg/minecraft/ubuntu xenial InRelease
命中:2 http://ppa.launchpad.net/ubuntu-mate-dev/welcome/ubuntu xenial InRelease   
命中:3 http://ppa.launchpad.net/ubuntu-mate-dev/xenial-mate/ubuntu xenial InRelease                   
获取:4 http://packages.ros.org/ros/ubuntu xenial InRelease [4,678 B]                                   
命中:5 http://ppa.launchpad.net/ubuntu-pi-flavour-makers/ppa/ubuntu xenial InRelease                   
错误:4 http://packages.ros.org/ros/ubuntu xenial InRelease                                        
  由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
命中:6 http://ports.ubuntu.com xenial InRelease                              
命中:7 http://ports.ubuntu.com xenial-updates InRelease
命中:8 http://ports.ubuntu.com xenial-security InRelease
命中:9 http://ports.ubuntu.com xenial-backports InRelease
正在读取软件包列表... 完成  
W: GPG 错误:http://packages.ros.org/ros/ubuntu xenial InRelease: 由于没有公钥,无法验证下列签名: NO_PUBKEY F42ED6FBAB17C654
E: 仓库 “http://packages.ros.org/ros/ubuntu xenial InRelease” 没有数字签名。
N: 无法安全地用该源进行更新,所以默认禁用该源。
N: 参见 apt-secure(8) 手册以了解仓库创建和用户配置方面的细节。

遇事不要慌,总有解决办法的,将这个错误提实复制一下,去百度一搜,解决办法自然就找到了:

⑤、安装公钥:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654

出现如下提示就说明安装成功了。

aaa@qq.com:~$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F42ED6FBAB17C654
Executing: /tmp/tmp.AUXjipKnTZ/gpg.1.sh --keyserver
keyserver.ubuntu.com
--recv-keys
F42ED6FBAB17C654
gpg: requesting key AB17C654 from hkp server keyserver.ubuntu.com
gpg: key AB17C654: "Open Robotics <aaa@qq.com>" not changed
gpg: Total number processed: 1
gpg:              unchanged: 1

重复第④步,更新源。

2、安装Ros

①、ros的安装

执行如下命令:

sudo apt-get install ros-kinetic-desktop-full

内容比较多,有将近1G左右,所以慢慢等吧

正在设置 ros-kinetic-pcl-conversions (0.2.1-0xenial-20191215-085347+0000) ...
正在设置 ros-kinetic-pcl-ros (1.4.4-0xenial-20200109-112701+0000) ...
正在设置 ros-kinetic-perception-pcl (1.4.4-0xenial-20200109-183502+0000) ...
正在设置 ros-kinetic-vision-opencv (1.12.8-0xenial-20191215-084143+0000) ...
正在设置 ros-kinetic-perception (1.3.2-0xenial-20200323-115100+0000) ...
正在设置 ros-kinetic-gazebo-dev (2.5.19-1xenial-20191214-133118+0000) ...
正在设置 ros-kinetic-gazebo-plugins (2.5.19-1xenial-20200109-080121+0000) ...
正在设置 ros-kinetic-gazebo-ros (2.5.19-1xenial-20200109-121406+0000) ...
正在设置 ros-kinetic-gazebo-ros-pkgs (2.5.19-1xenial-20200109-152423+0000) ...
正在设置 ros-kinetic-simulators (1.3.2-0xenial-20200407-060228+0000) ...
正在设置 ros-kinetic-desktop-full (1.3.2-0xenial-20200407-060742+0000) ...
正在设置 dh-strip-nondeterminism (0.015-1) ...
正在设置 odbcinst (2.3.1-4.1) ...
正在处理用于 bamfdaemon (0.5.3~bzr0+16.04.20160824-0ubuntu1) 的触发器 ...
Rebuilding /usr/share/applications/bamf-2.index...
正在处理用于 fontconfig (2.11.94-0ubuntu1.1) 的触发器 ...
正在处理用于 initramfs-tools (0.122ubuntu8.8) 的触发器 ...
正在处理用于 libc-bin (2.23-0ubuntu5) 的触发器 ...
正在处理用于 systemd (229-4ubuntu16) 的触发器 ...
正在处理用于 ureadahead (0.100.0-19) 的触发器 ...
aaa@qq.com:~$ 

②、ros初始化

安装完成后,将ros初始化一下:

sudo rosdep init
rosdep update

③、配置环境变量

加入环境变量

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

④、测试

打开一个新终端输入:

roscore

出现如下提示:

aaa@qq.com:~$ roscore 
... logging to /home/yangwang/.ros/log/014e29e0-836e-11ea-a6db-b827eb301818/roslaunch-yangwang-pi-18606.log
Checking log directory for disk usage. This may take awhile.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://yangwang-pi:40911/
ros_comm version 1.12.14


SUMMARY
========

PARAMETERS

 * /rosdistro: kinetic
 * /rosversion: 1.12.14

NODES

auto-starting new master
process[master]: started with pid [18651]
ROS_MASTER_URI=http://yangwang-pi:11311/

setting /run_id to 014e29e0-836e-11ea-a6db-b827eb301818
process[rosout-1]: started with pid [18674]
started core service [/rosout]

那就说明已经成功了。这时候就可以用最经典的小乌龟去测试,指令我在这里列出,详细测试各位自己可以去体验一下。

rosrun turtlesim turtlesim_node #运行turtlesim 包中的turtlesim_node节点,打开小乌龟控制台

rosrun turtlesim turtle_teleop_key # 运行turtlesim 包中的turtle_teleop_key节点,使鼠标可以移动小乌龟

rosnode list #显示系统上所有运行的节点 

rostopic list #显示所有主题 

可以用最经典的小乌龟去测试,指令我在这里列出,详细测试各位自己可以去体验一下。

rosrun turtlesim turtlesim_node #运行turtlesim 包中的turtlesim_node节点,打开小乌龟控制台

rosrun turtlesim turtle_teleop_key # 运行turtlesim 包中的turtle_teleop_key节点,使鼠标可以移动小乌龟

rosnode list #显示系统上所有运行的节点 

rostopic list #显示所有主题 

最后祝各位树莓派和Ros玩的开心!