ROS
                                
                                
                                
                                    ROS copied to clipboard
                            
                            
                            
                        🔥ROS(c++)机器人操作系统 学习(写于2020年夏)
ROS
机器人操作系统@双愚
- 
运行环境:Ubuntu18.04 微软云服务器(AzureUser@aitraining)
/home/AzureUser/hcq/ROS - 
ROS & SLAM个人笔记:https://www.yuque.com/huangzhongqing/ld627o
 - 
创建工作空间与功能包详解:https://www.yuque.com/huangzhongqing/ld627o/zr0eix
 - 
ROS2(python): https://github.com/HuangCongQing/ros2_python
 
编译和运行
// 1 设置工作空间
cd catkin_wp/src
catkin_init_workspace
// 编译(需要回到工作空间catkin_wp)
cd ..
catkin_make  // 产生build和devel文件夹(类似cmake)
catkin_make install // 就会有install文件夹
//设置环境变量(个人是zsh)
source devel/setup.zsh  // 不同shell,不同哦.bash  .zsh
通过设置gedit ~/.zshrc,不用每次都source
gedit ~/.zshrc   或者  gedit ~/.bashrc
source ~/.zshrc  或者 source ~/.bashrc
//2 创建功能包(src文件夹下)
//创建包 catkin_create_pkg 包名 依赖1 依赖2 
cd src
catkin_create_pkg test_pkg std_msgs roscpp rospy
// 编译功能包(回到目录catkin_ws)
catkin_make
// 设置环境变量(能让系统找到我们的工作空间和功能包) 此命令只在当前终端生效
source devel/setup.bash
通过设置gedit ~/.zshrc,不用每次都source
gedit ~/.zshrc
source ~/.zshrc
// 运行
roscore //启动ROS master
rosrun turtlesim(功能包名) turtlesim_node(节点名) //rosrun启动节点,该节点归属于功能包,这个节点就是小海龟仿真器
rosrun turtlesim turtle_teleop_key
ROS介绍
作者:Morgan 其博士生导师:吴恩达!
别人已经造好轮子,集成起来,提高软件复用率。 (有的组织擅长建模,OR导航 OR物理识别,ROS就可以把这些组织都连接起来,帮助他们建立一种相互合作的的高效的方式,在已有成果做更多东西。)
ROS2:一开始只是学术界,后面成为机器人领域的普遍标准,很多设计上的局限性和问题暴露出来,所以需要改良到工业界。
- 节点 节点管理器(婚介所)
 - 话题&服务
 
两种通信机制:话题和服务
- 话题:
- 发布订阅模型
 - 异步通信机制(单向)
 - 话题数据:消息
 
 - 服务:
- 客户端服务端模型
 - 同步通信机制(双向)
 
 

1 古月 · ROS入门21讲
代码路径: catkin_wp/src PDF路径: slides-ros_21_tutorials 视频:https://www.bilibili.com/video/BV1zt411G7Vn
- 09.创建工作空间与功能包
 - 10-11 发布者订阅者的编程实现
 - 12.话题消息的定义与使用
 - 13.客户端Client的编程实现
 - 14.服务端Server的编程实现
 - 15.服务数据的定义与使用
 - 16.参数的使用与编程方法
 - 17.ROS中的坐标系管理系统 tf
 - 18.tf坐标系广播与监听的编程实现
 - 19.launch启动文件的使用方法
 
2 中科院软件所-机器人操作系统入门(ROS入门教程)(推荐先看,讲的更细致) 【推荐入门先看】
官方代码: https://github.com/DroidAITech/ROS-Academy-for-Beginners 个人fork代码:https://github.com/HuangCongQing/ROS-Academy-for-Beginners
本地学习 代码路径: catkin_academy/src 视频:https://www.bilibili.com/video/BV1mJ411R7Ni
3 机器人操作系统ROS理论与实践【9讲】
代码路径: catkin_ROS9/src PDF路径: 机器人操作系统ROS理论与实践
- 1:认识ROS
 - 2:ROS基础
 - 3:机器人系统设计
 - 4:机器人仿真
 - 5:机器人感知
 - 6:机器人SLAM与自主导航
 - 7:ROS理论与实践Moveit
 - 8:ROS机器人综合应用
 - 9:ROS2.0
 
Tips: 注意不同ROS,切换到不同分支
- kinetic版本切换到kinetic分支
 - melodic版本切换到melodic分支
 
4 可视化(Visualization)
code:
- catkin_wp/src/learning_visualization
 
rosrun learning_visualization 1basic_shapes
rosrun learning_visualization 2points_and_lines
rosrun learning_visualization 3path
ROS组织结构
一个workspace下面可以有多个package,但是workspace有自己组织package的方式。每一个package都是workspace当中的代码包,应该存放在src下面。那么,组织结构如下所示:
---workspace
|   |---src
|      |---package_1
|         |---CMakeLists.txt
|         |---src
|             |---xxx.cpp
       |---package_2
...
|
|      |---package_n
Reference
书籍:《ROS机器人开发实践_胡春旭》
- 《ROS机器人开发实践》源码:https://github.com/huchunxu/ros_exploring
 
视频和代码
- 1 古月 · ROS入门21讲
 - 2 中科院软件所-机器人操作系统入门(ROS入门教程
 - 3 机器人操作系统ROS理论与实践【9讲】
 
1 古月 · ROS入门21讲
视频:https://www.bilibili.com/video/BV1zt411G7Vn
课件:https://github.com/huchunxu/ros_21_tutorials/tree/master/docs/slides
源码:https://github.com/huchunxu/ros_21_tutorials
2 中科院软件所-机器人操作系统入门(ROS入门教程)
- 视频:https://www.bilibili.com/video/BV1mJ411R7Ni
 
3 机器人操作系统ROS理论与实践【9讲】
微信公众号:【双愚】(huang_chongqing) 聊科研技术,谈人生思考,欢迎关注~

往期推荐: