ROS机器人开发实践学习笔记1
刚刚开始学习ROS,打算入机器人的坑了,参考教材是《ROS及其人开发实践》胡春旭编著 机械工业出版社 华章科技出品。本来以为可以按照书上的步骤一步步来,但是,too young to simple啊,程序员的苦逼日子开始了,特地记录如下。
一、几个概念:
1、ROS:(Robot operating system),直接翻译就是机器人操作系统,但是很坑爹的是,它根本不是个系统,他只是个编写机器人软件的强大框架。它含有大量的工具、丰富的库、众多的协议,拥有操作系统的作用,包括硬件抽象、底层驱动管理、功用功能执行、程序间消息传递、程序发行包管理等。能够大大简化机器人平台的繁杂,提高了机器人行为控制的稳定性。但是,我要说ROS叫(robot operating system framework)更加通俗易懂些。
2、ROS设计目标:
a、尽量提高机器人研发中的软件复用率
b、框架中的每个功能模块能够被单独设计、编译、运行时松耦合方式结合
c、功能模块都封装于独立的功能包或元功能包,便于社区共享与分发
d、ROS由核心通信机制、开发工具、应用功能和生态系统四个部分构成
e、为机器人开发提供了硬件抽象、底层驱动、消息传递、程序管理、应用原型等机制,整合了第三方工具及库文件,便于用户快速完成机器人应用的建立、编写和多机整合等
3、ROS的特点:ROS的核心分布式网络,借助灵活的通信方式,实现数据传递的高效性。
a、点对点的设计,进程以节点形式运行
b、多语言支持,C、C++、Python、Java及Octave和Lisp等,每个模块可以用不同的语言实现
c、架构精简、集成度高
d、组建化工具包丰富
e、开源且免费,BSD协议
二、安装ROS,ROS主要支持特定版本的linux,几乎每个版本的ROS和对应版本的linux对应,否则几乎无法成功安装,最新版本的ROS Melodic是2018年5月发布的,几乎网上都是对kinetic版本的,linux选用ubuntu 18.04.2版本即可,桌面好像没有过多要求。
本篇是在Kubuntu18.04上安装的Melodic版本的ROS框架,就是按照官方教程一步步来就可以:
1、添加软件源:sudo sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
2、更新软件源:sudo apt update, sudo apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
3、基础安装:普通用户最好完全安装 sudo apt install ros-melodic-desktop-full,也可以安装指定的包:sudo apt install ros-melodic-PACKAGE例如:sudo apt install ros-melodic-slam-gmapping
4、查找可以用的包:apt search ros-melodic
5、初始化rosdep,使用ros前,需要初始化rosdep,通过初始化rosdep完成系统组建的基本安装与配置:sudo rosdep init,更新rosdep update
6、环境配置:echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc 更新配置文件source ~/.bashrc
7、安装构建依赖包:sudo apt install python-rosinstall python-rosinstall-generator python-wstool build-essential
8、系统升级:sudo apt upgrade
三、管理环境,catkin方式创建ROS工作空间
1、下面我们开始创建一个catkin 工作空间:
$ mkdir -p ~/catkin_ws/src #创建目录
$ cd ~/catkin_ws/src #切换到新建目录
$ cd ~/catkin_ws/ #切换到新建目录
$ catkin_make #编译它:
$ source devel/setup.bash #加载到系统环境
$ roscore #启动ros环境
$ echo $ROS_PACKAGE_PATH #检查环境变量,如果结果如:/home/municationk/catkin_ws/src:/opt/ros/melodic/share,个人可能不同,类型基本一样就是可以了
到此,ROS工作环境已经搭建完成。
ROS机器人开发实践学习笔记1的更多相关文章
- ROS机器人开发实践学习笔记3
摘要: 刚刚开始学习ROS,打算入机器人的坑了,参考教材是<ROS及其人开发实践>胡春旭编著 机械工业出版社 华章科技出品.本来以为可以按照书上的步骤一步步来,但是,too young t ...
- ROS机器人开发实践学习笔记2
刚刚开始学习ROS,打算入机器人的坑了,参考教材是<ROS及其人开发实践>胡春旭编著 机械工业出版社 华章科技出品.本来以为可以按照书上的步骤一步步来,但是,too young to si ...
- ros机器人开发概述
1. ROS项目开发流程? 参照古月大神写的ROS探索总结系列:http://blog.exbot.net/archives/619 具体项目设计可看看<程序员>杂志的最新一篇 ...
- ROS机器人开发实践1->SSH远程登录要点记录
1.有线网卡 设置 找到有线网络,点击设置,修改其中的IPv4的地址和子网掩码. 1 //地址 2 192.168.xxx.xxx 3 //子网掩码 4 255.255.255.0 点击应用 2.配置 ...
- SLAM+语音机器人DIY系列:(四)差分底盘设计——4.底盘ROS驱动开发
摘要 运动底盘是移动机器人的重要组成部分,不像激光雷达.IMU.麦克风.音响.摄像头这些通用部件可以直接买到,很难买到通用的底盘.一方面是因为底盘的尺寸结构和参数是要与具体机器人匹配的:另一方面是因为 ...
- Ubuntu虚拟机+ROS+Android开发环境配置笔记
Ubuntu虚拟机+ROS+Android开发环境配置笔记 虚拟机设置: 1.本地环境:Windows 7:VMWare:联网 2.虚拟环境 :Ubuntu 14.04. 比較稳定,且支持非常多ROS ...
- ROS机器人程序设计(原书第2版)补充资料 (柒) 第七章 3D建模与仿真 urdf Gazebo V-Rep Webots Morse
ROS机器人程序设计(原书第2版)补充资料 (柒) 第七章 3D建模与仿真 urdf Gazebo V-Rep Webots Morse 书中,大部分出现hydro的地方,直接替换为indigo或ja ...
- Kinect开发学习笔记之(一)Kinect介绍和应用
Kinect开发学习笔记之(一)Kinect介绍和应用 zouxy09@qq.com http://blog.csdn.net/zouxy09 一.Kinect简单介绍 Kinectfor Xbox ...
- Cocos2dx游戏开发系列笔记13:一个横版拳击游戏Demo完结篇
懒骨头(http://blog.csdn.net/iamlazybone QQ:124774397 ) 写下这些东西的同时 旁边放了两部电影 周星驰的<还魂夜> 甄子丹的<特殊身份& ...
随机推荐
- 可视化利器 TensorBoard
人工智能的黑盒: TensorBoard 的作用: 1.用TensorFlow保存图的信息到日志中 tfsummary.FileWriter("日志保存路径", sess.grap ...
- 利用jenkens+github实现简单的CI/CD
一 获取github accessToken 依次点击 settings----> Developer settings --->Personal access tokens 到这里如 ...
- Java 10 的 10 个新特性,你颤抖了吗?
Java 9才发布几个月,很多玩意都没整明白,现在Java 10又快要来了.. 这时候我真尼玛想说:线上用的JDK 7 甚至JDK 6,JDK 8 还没用熟,JDK 9 才发布不久不知道啥玩意,JDK ...
- stm32f429 仿真器不能识别芯片
刚买的野火挑战者开发板,下载几次程序后,忽然就不能通过JLINK下载了,提示如下错误: No Cortex-M Device found in JTAG chain. Error: Flash Dow ...
- 《数据结构与算法之美》 <05>链表(下):如何轻松写出正确的链表代码?
想要写好链表代码并不是容易的事儿,尤其是那些复杂的链表操作,比如链表反转.有序链表合并等,写的时候非常容易出错.从我上百场面试的经验来看,能把“链表反转”这几行代码写对的人不足 10%. 为什么链表代 ...
- PHP通过iconv将字符串从GBK转换为UTF8字符集
PHP通过iconv将字符串从GBK转换为UTF8字符集的方法,需要的朋友可以参考下. 1. iconv()介绍 iconv函数可以将一种已知的字符集文件转换成另一种已知的字符集文件.例如:从GB23 ...
- 《构建之法》——Alpha2项目的测试
这个作业属于哪个课程 课程的链接 这个作业要求在哪里 作业要求的链接 团队名称 Runningman 这个作业的目标 测试其他组的项目,互相借鉴 作业正文 作业正文 测试人姓名 陈嘉莹 测试人学号 2 ...
- Python多线程爬虫爬取网页图片
临近期末考试,但是根本不想复习!啊啊啊啊啊啊啊!!!! 于是做了一个爬虫,网址为 https://yande.re,网页图片为动漫美图(图片带点颜色........宅男福利 github项目地址为:h ...
- nginx 缓存区太小导致后台Connection reset by peer 报错
问题概述:图片bit 64生成数据流太大,导致小程序分享弹窗的二维码图片生成失败 后台报错: 排查: Client------>nginx------->h5------>nginx ...
- 如何python循环中删除字典元素
//下面这行就是在循环中遍历删除字典元素的方法! for i in list(dictheme2.keys()): if dictheme2[i]<self.countFortheme: dic ...