树莓派安装Ubuntu Mate解决无法连接WiFi问题,并部署Ros系统
树莓派安装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
三、安装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玩的开心!