SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建——2.安装ros-kinetic
SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建——2.安装ros-kinetic
摘要
通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整体的认识。接下来就正式进入机器人大脑(嵌入式主板:树莓派3)的开发。本章将从树莓派3的开发环境搭建入手,为后续ros开发、slam导航及语音交互算法做准备。本章内容:
1.安装系统ubuntu_mate_16.04
2.安装ros-kinetic
3.装机后一些实用软件安装和系统设置
4.PC端与robot端ROS网络通信
5.Android手机端与robot端ROS网络通信
6.树莓派USB与tty串口号绑定
7.开机自启动ROS节点
2.安装ros-kinetic
安装好系统ubuntu-mate-16.04后,就可以安装对于我们机器人开发非常重要的ROS系统了,根据ubuntu的版本与ROS行版本之间的对于关系,这里我们安装ros-kinetic这个发行版。
2.1.连接wifi网络
由于安装需要通过网络在线进行,所以需要先连接上wifi,在桌面右上角找到wifi样式的图标,在下拉栏中选择[Edit Connections…],如图13。
(图13)编辑网络连接
在弹出来的窗口中,点击[Add]来添加我们的网络连接,并选择[Wi-Fi]连接类型,最后点击[Create…]来创建,如图14。
(图14)创建网络连接
在网络连接的配置窗口中,首先设置[General]参数,为了让系统开机自启动后能自动连接该网络,勾选前两项,如图15。
(图15)网络连接General参数
然后设置[Wi-Fi]参数,SSID栏填入自己家wifi的名字(我家的wifi名字叫error),Mode栏选择Client,Device栏下拉填入自己的无线网卡号,如图16。
(图16)网络连接Wi-Fi参数
然后设置[Wi-Fi Security]参数,Security栏填入自己家wifi的加密方式(一般的加密方式都是WPA&WPA2 Personal),Password栏填入wifi的连接密码,最后点击[save]保存设置好的参数,如图17。
(图17)网络连接Wi-Fi Security参数
最后找到[Enable Networking]选项,去掉选项前面的勾,然后再勾上,让网络配置生效;稍等片刻,我们配置的wifi连接error将自动连接上,这样就连接网络完成了,如图18。
(图18)重启网络使网路配置生效
为了让机器人启动后,我们能通过网络远程访问,这里建议大家在树莓派上设置成静态IP分配,首先打开命令行终端用ifconfig查看一下当前分配给树莓派的IP地址,将这个IP地址绑定成静态IP,这样可以保证该IP不会与其他设备发生IP冲突,如图19。
(图19)查看IP地址
然后,对上面创建的网络连接的[IPv4 Settings]参数进行设置,Method栏选择Manual,Addresses栏填入静态IP参数(静态IP设为192.168.0.117,子网掩码设为255.255.255.0,网关设为192.168.0.1),DNS servers栏填入192.168.0.1,最后保存就行了,只需要重启网络静态IP就设好了,如图20。
(图20)设置静态IP
2.2.安装ros-kinetic
其实在ubuntu上安装ROS,有很详细的ROS官方教程,感兴趣的朋友可以直接参考官方教程kinetic/Installation/Ubuntu - ROS Wiki。由于官方教程用英文书写,为了方便大家阅读,我将官方教程翻译过来,方便大家学习,下面正式进入安装。温馨提醒,由于不同的编辑器对过长的句子换行的规则不同,下面的命令被自动换行后可能影响正常的阅读,请直接参阅官方教程中的命令kinetic/Installation/Ubuntu - ROS Wiki。
(1)设置ubuntu的sources.list
打开命令行终端,输入如下命令:
sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
(2)设置keys
打开命令行终端,输入如下命令:
sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116
(3)安装ros-kinetic-desktop-full完整版
打开命令行终端,分别输入如下两条命令:
sudo apt-get updatesudo apt-get install ros-kinetic-desktop-full
小技巧,如果安装过程提示“下载错误”,请耐心重试上面的两条命令,这个错误多半是由于网络故障造成的。
(4)初始化rosdep
打开命令行终端,分别输入如下两条命令:
sudo rosdep initrosdep update
(5)配置环境变量
打开命令行终端,分别输入如下两条命令:
echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrcsource ~/.bashrc
(6)安装rosinstall
打开命令行终端,输入如下命令:
sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
(7)测试ros安装成功与否
打开命令行终端,输入如下命令:
roscore
如果此时出现以下内容
setting /run_id to 4cb2a932-06c0-11e9-9ff2-000c2985f3ab
process[rosout-1]: started with pid [38686]
started core service [/rosout]
那么恭喜你,ROS已经成功的安装上了!!!
后记
如果大家对博文的相关类容感兴趣,或有什么技术疑问,欢迎加QQ技术交流群(117698356)
参考文献
[1] 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.
下载更多资料:www.xiihoo.com
QQ技术讨论群: 117698356
B站视频教程:https://space.bilibili.com/66815220
Github源码:https://github.com/xiihoo/Books_Robot_SLAM_Navigation
Gitee源码(国内访问速度快):https://gitee.com/xiihoo-robot/Books_Robot_SLAM_Navigation
SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建——2.安装ros-kinetic相关推荐
- SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建——1.安装系统ubuntu_mate_16.04...
SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建--1.安装系统ubuntu_mate_16.04 摘要 通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整体的认 ...
- SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建——5.Android手机端与robot端ROS网络通信...
SLAM导航机器人零基础实战系列:(五)树莓派3开发环境搭建--5.Android手机端与robot端ROS网络通信 摘要 通过前面一系列的铺垫,相信大家对整个miiboo机器人的DIY有了一个清晰整 ...
- SLAM导航机器人零基础实战系列:(三)感知与大脑——5.机器人大脑嵌入式主板性能对比...
SLAM导航机器人零基础实战系列:(三)感知与大脑--5.机器人大脑嵌入式主板性能对比 摘要 在我的想象中机器人首先应该能自由的走来走去,然后应该能流利的与主人对话.朝着这个理想,我准备设计一个能自由 ...
- SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航——2.google-cartographer机器人SLAM建图...
SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航--2.google-cartographer机器人SLAM建图 摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在 ...
- SLAM导航机器人零基础实战系列:(一)Linux基础——2.安装Linux发行版ubuntu系统
SLAM导航机器人零基础实战系列:(一)Linux基础--2.安装Linux发行版ubuntu系统 摘要 由于机器人SLAM.自动导航.语音交互这一系列算法都在机器人操作系统ROS中有很好的支持,所以 ...
- SLAM导航机器人零基础实战系列:(四)差分底盘设计——2.stm32主控软件设计
SLAM导航机器人零基础实战系列:(四)差分底盘设计--2.stm32主控软件设计 摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买 ...
- SLAM导航机器人零基础实战系列:(四)差分底盘设计——5.底盘PID控制参数整定
SLAM导航机器人零基础实战系列:(四)差分底盘设计--5.底盘PID控制参数整定 摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买 ...
- SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航——1.在机器人上使用传感器...
SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航--1.在机器人上使用传感器 摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐趣 ...
- SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航——4.多目标点导航及任务调度...
SLAM导航机器人零基础实战系列:(六)SLAM建图与自主避障导航--4.多目标点导航及任务调度 摘要 通过前面的基础学习,本章进入最为激动的机器人自主导航的学习.在前面的学习铺垫后,终于迎来了最大乐 ...
最新文章
- Python基本数据类型之列表
- D - Yet Another Problem On a Subsequence CodeForces - 1000D (DP,组合数学)
- PHP添加php-java-brideg模块(ubuntu环境)
- html5 webrtc fir 请求关键帧_中信建投官网强调认可我们的投资理念的股民朋友请求 CTRL D 收藏、锁定本直播地址...
- Android编译系统简要介绍和学习计划
- java中redis存储map集合_使用RedisTemplate存储Map集合的一点注意
- IDC简报:6月份国外最佳虚拟主机提供商Top5
- [管理]《高绩效人士的五项管理》 -- 李践
- MySQL的事务处理
- Java中递归复制多级文件夹(IO流)
- 三菱PLC连接威纶通触摸屏
- Bootstrap的Modal模态框取消时有多重阴影
- 高中数学竞赛与自主招生内部练习试题<二>
- dataframe类型数据的遍历_pandas中遍历dataframe的每一个元素
- [裴礼文数学分析中的典型问题与方法习题参考解答]4.3.21
- 计算机怎么让隐藏的文件夹不能搜索,电脑怎么巧妙隐藏文件夹让人找不到?隐藏电脑文件方法教程...
- 完美二叉树、满二叉树、完全二叉树
- Ansys workbench分析应用基础(2)
- ASP.NET与.NET Framework和C#的关系
- useEffect五个经典问题实践总结
热门文章
- MySQL binlog存储格式笔记
- Hyper-V (window 10 家庭版安装 Hyper-V)
- C++(11):通过is_same检查类型,decay退化类型
- 麻雀算法SSA,优化VMD,适应度函数为最小包络熵,包含MATLAB源代码,直接复制粘贴!
- MATLAB之function函数
- 怎么理解卡卷会员接口
- 安全测试涉及的测试对象有哪些?
- 《CCNA学习指南:Cisco网络设备互连(ICND2)(第4版)》——1.1节理解VLAN 和VLAN Trunk 及排除相关故障...
- excel显著性检验_《如何利用Excel对所得数据进行显著性分析?》 excel怎么做方差齐性检验...
- 【龙讯module小课堂】“光”怪陆离:PWmat计算光学性质(三)