温馨提示
本篇文章已经收录在我最新出版的书籍《机器人SLAM导航核心技术与实战》,感兴趣的读者可以购买纸质书籍来进行更加深入和系统性的学习,购买链接如下:
摘要
通过前面一系列的铺垫,相信大家对整个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节点
7.开机自启动ROS节点
在后续教程学习完后,基本上所有的机器人算法就开发的差不多了。于是,我们就需要在机器人上电开机时,自启动想要启动的ROS节点,让机器人立马进入工作状态。
由于我自己尝试过网上的教程,将ROS节点启动命令放入系统开机自启动脚本的方法,亲测不成功。后来仔细研究才知道,需要系统完全启动,建立起ROS运行的必须环境后,ROS节点程序才能开始工作,所以系统开机自启脚本行不通。
于是,经过我自己的研究,找到了一种简单的方法,将要启动的roslaunch命令加入机器人的~/.bashrc文件的末尾。这样在系统启动后,执行用户自动登录时,~/.bashrc会被调用,这样就可以实现ROS节点启动了。关于用户自动登录的设置可以参考前面的相关内容。
添加到~/.bashrc文件末尾的内容如下,根据自己的需要,将命令替换成自己的ROS节点启动命令。
#robot auto start
if rostopic list ; then
echo "roscore and robot_auto_start started!"
else
#launch roscore
nohup roscore
#launch
sleep 30
...
fi
设置完成后,sudo reboot就可以了。
后记
------SLAM+语音机器人DIY系列【目录】快速导览------
第1章:Linux基础
1.Linux简介
2.安装Linux发行版ubuntu系统
3.Linux命令行基础操作
第2章:ROS入门
1.ROS是什么
2.ROS系统整体架构
3.在ubuntu16.04中安装ROS kinetic
4.如何编写ROS的第一个程序hello_world
5.编写简单的消息发布器和订阅器
6.编写简单的service和client
7.理解tf的原理
8.理解roslaunch在大型项目中的作用
9.熟练使用rviz
10.在实际机器人上运行ROS高级功能预览
第3章:感知与大脑
1.ydlidar-x4激光雷达
2.带自校准九轴数据融合IMU惯性传感器
3.轮式里程计与运动控制
4.音响麦克风与摄像头
5.机器人大脑嵌入式主板性能对比
6.做一个能走路和对话的机器人
第4章:差分底盘设计
1.stm32主控硬件设计
2.stm32主控软件设计
3.底盘通信协议
4.底盘ROS驱动开发
5.底盘PID控制参数整定
6.底盘里程计标
第5章:树莓派3开发环境搭建
1.安装系统ubuntu_mate_16.04
2.安装ros-kinetic
3.装机后一些实用软件安装和系统设置
4.PC端与robot端ROS网络通信
5.Android手机端与robot端ROS网络通信
6.树莓派USB与tty串口号绑定
7.开机自启动ROS节点
第6章:SLAM建图与自主避障导航
1.在机器人上使用传感器
2.google-cartographer机器人SLAM建图
3.ros-navigation机器人自主避障导航
4.多目标点导航及任务调度
5.机器人巡航与现场监控
第7章:语音交互与自然语言处理
1.语音交互相关技术
2.机器人语音交互实现
3.自然语言处理云计算引擎
第8章:高阶拓展
1.miiboo机器人安卓手机APP开发
2.centos7下部署Django(nginx+uwsgi+django+python3)
参考文献
[1] 张虎,机器人SLAM导航核心技术与实战[M]. 机械工业出版社,2022.
序
前言
编程基础篇
第1章 ROS入门必备知识
第2章 C++编程范式
第3章 OpenCV图像处理
硬件基础篇
第4章 机器人传感器
第5章 机器人主机
5.2.1 安装Ubuntu MATE 18.04 120
第6章 机器人底盘
SLAM篇
第7章 SLAM中的数学基础
第8章 激光SLAM系统
第9章 视觉SLAM系统
第10章 其他SLAM系统
自主导航篇
第11章 自主导航中的数学基础
第12章 典型自主导航系统
12.1 ros-navigation导航系统 470
第13章 机器人SLAM导航综合实战
附录A Linux与SLAM性能优化的探讨
附录B 习题