博文视点Broadview
以下文章来源于DevFrank ,作者Hi小王
DevFrank .
汽车码农,分享学习与成长记录。
之前和大家一起学习了《ROS机器人开发实践》,我们对ROS1的通信机制、开发组件等有了一定的了解,但上次结尾也提到,ROS1也存在一些不足,今天我们就跟着《ROS2智能机器人开发实践》来一起学习一下ROS2有了哪些改进。
在此也感谢电子工业出版社|博文视点杨老师提供的纸质版样书,才能及早来和大家一起学习回顾ROS2的开发知识。
本书1-3章是ROS2基础原理,4-6章是ROS2机器人设计,7-9是ROS2机器人应用。
1 ROS-智能机器人的灵魂
机器人的发展从电气时代、数字时代到现在的智能时代,软件在机器人中的占比越来越大,对机器人软件开发的效率和稳定性也提出了更高的要求。在前辈们的探索下,ROS机器人操作系统作为一个通用的开发平台(事实的标准)在2007年应运而生。
ROS的核心目标是为提高机器人的软件开发效率和复用率。从ROS 1到ROS 2,代表着机器人应用到不断成熟,尤其是在多机器人协作、跨平台开发、实时性等方面,相比前者,它重新设计了系统架构、软件API,优化升级了编译系统等。
ROS 2在ubuntu系统的安装可以参考fishros的安装脚本,另外也可以自己鼓捣尝试在win、mac等多平台尝试安装。
安装好后可以试试turtlesim海龟示例(不用roscore):
ros2 run turtlesim turtlesim_noderos2 run turtlesim turtle_teleop_key
2 ROS2核心原理-构建机器人的基石
在开发之前,我们先来了解下ROS2机器人开发的主要流程。
可以根据书中流程尝试创建C++/Python的功能包和节点,并尝试colcon build的编译方法。另外,ROS2的节点命令行操作不同于之前的rosnode xx,是ros2 node xx,熟悉常用的命令行工具,便于后续高效的开发。
可以根据书中流程尝试创建C++/Python的功能包和节点,并尝试colcon build的编译方法。另外,ROS2的节点命令行操作不同于之前的rosnode xx,是ros2 node xx,熟悉常用的命令行工具,便于后续高效的开发。
3 ROS2常用工具-机器人开发利器
用好常用的工具可以让开发事半功倍。
ROS2依然提供了包含launch多节点启动和配置脚本(python语言描述)、tf坐标系管理系统、Gazebo机器人三维物理仿真平台、RViz数据可视化平台、rosbag数据记录与回放、rqt模块可视化工具箱等多个实用工具。
4 ROS2机器人仿真-零成本学习机器人
从控制等角度看,机器人主要由传感系统、控制系统、驱动系统和执行机构四部分组成。
仿真等第一步是建模,ROS2提供了URDF机器人建模格式和XACRO模型优化语法,可以描述外观、环境等属性;建模完成后,可以加载到Gazebo仿真环境中,进行运动控制仿真,还可加入RGB相机、Lidar等插件,进行传感系统的仿真。
5 ROS2机器人构建-第一个实物机器人
TurtleBot3是ROS社区一款经典的机器人,这一节作者带大家了解第一台梦想小车——OriginBot是如何搭建的。
从功能包编译仿真测试、到驱动系统设计、电机闭环控制、差速运动学解算、电源管理、IMU解析、和计算平台选择等,让大家对机器人的开发流程有了全面的认识。
6 ROS2控制与感知-能动会看的秘密
从运动控制器(下位机)协议开发,到应用处理器(上位机)协议开发,使得底盘驱动和上层应用联系了起来,这一块也是让机器人动起来的关键部分,然后对速度、里程计话题和tf进行状态监控和运动控制;随后再根据需要增加摄像头、激光雷达等传感器实现环境感知。
7 ROS2视觉应用、地图构建、自主导航
最后一部分是机器人应用,讲述了视觉巡线、二维码识别等视觉应用,激光和视觉SLAM地图构建,以及Nav2自主导航应用,也对这些应用所涉及等技术知识如标定、模型训练部署进行了扩展,便于后续我们开展项目实践。
尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...
时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...
如题 ...
读者评论