【探索之路】机器人篇(1)-ROS-mwRobot开篇
机器人的定义
首先,什么才是机器人?机器人是不是必须和人一样的外形?我们先看一看维基百科给机器人的定义:
由上可见,机器人并不是和人一样的外形,而是可以模拟人类行为或者思想再或者是模拟其他生物的机械。那么我们就知道了,我们的扫地机器人虽然外表不像人,但是它却能够想人类一样自己去清扫地面上的垃圾,所以它是属于机器人范畴。再比如我们的送餐机器人,它虽然是轮子驱动的,但是却能完成服务员送菜的行为,所以也是机器人。
那么,我们就知道机器人并不一定要求和人类有一样的外表,能够模拟人类行为或思想与其他生物的机械。
ROS(Robot Operating System)
机器人操作系统(ROS),由名字可知是一个专门为机器人设计的操作系统。那么它具体的介绍我们可以先看看它的定义:
由上述可得,机器人操作系统和我们平常所属知的Windows、Linux、IOS操作系统并不一样,它虽然叫操作系统,但是和软件一样是运行在Linux系统上的,也就是上述所说的后操作系统。它的设计目标是提高了机器人领域的代码复用率。并提供了一套非常优秀的通信机制。它的出现为机器人的开发提供了极大的便利。目前有很多机器人都在使用这个系统。
mwRobot
mwRobot,是一款由我本人独自设计并制作的一款基于ROS系统的机器人。包括了三维建模、底层驱动、软件调试等环节。mwRobot的意思是(miss wind Robot).
此篇博文写于2018-09-15早上。目前我以完成了对机器人地盘的三维建模,确定了地盘的结构并已经将其中的一些必要结构发到工厂加工。
由于是第一次制作,所以我这边选择的是简单的双轮差速驱动式机器人,外形参考的turtleBot2。
下面贴几张图片作为展示和参考(注: 3D文件已经保存到了码云项目中(无turtlebot2的文件),
文件名称为: https://gitee.com/mwRobot/mwRobot_solidworks RAR_files /3D建模_2018_09_14 24_00.rar ):
机器人turtlebot2外形图:
下面介绍一下mwRobot的整体规划:
结构部分:
整车分为3层结构,共四个亚克力圆板和3x4=12根铝型材。
亚克力使用的是6mm厚的黑色亚克力板,整个图纸已经加工好并发给店家要求切割。
铝型材的型号20x20,在买的时候就把长度发给了店家,并要求双端攻丝。
车轮用的是直径为95mm的铝合金轮子。
万向轮用的是两寸的。
电控部分:
车轮的电机使用的RM3510+配套的820电调(驱动),通信方式为CAN.电压24V.
(因为参加过RoboMater机器人比赛,有现成的电机,所以直接拿来用了,个人使用的话不推荐,价格太高)
对于控制板方面,使用的是RM的T型板,MCU是STM32F405。输入电压是24V,主控板能稳定输出12V电压。并带有DJI的遥控器接收机接口。
动力来源使用的是电池TB47.其实整套电控使用的都是DJI的产品.都是打比赛目前是闲置的。
PC部分:
miniPC使用的DJI的妙算,ubuntu 14.04系统。
双目相机:kinect V1版
激光雷达:思岚V1 - RPLIDAR A1
ROS版本:indigo
物理仿真:gazebo
编程工作是在ubuntu 14.04的台式电脑上,使用的开发环境是RoboWare.
机械加工的零件还没发过来,这两天先做一下仿真。
【探索之路】机器人篇(1)-ROS-mwRobot开篇的更多相关文章
- 【探索之路】机器人篇(3)-给mwRobot建立模型
在创建一个mwRobot_description程序包那一节中,我们添加了依赖roscpp rospy std_msgs 和 urdf , 现在我们再添加一个xacro依赖. 如何添加依赖? 打开程 ...
- 【探索之路】机器人篇(2)-ROS系统并创建工作空间和项目
在ROS官网,已经给出了详细的教程.下面我就般一下砖,把相应的操作写到这里.官方网址:http://wiki.ros.org/cn/ 安装ROS系统 indigo在ubuntu上的安装教程.官网:ht ...
- SLAM+语音机器人DIY系列:(二)ROS入门——10.在实际机器人上运行ROS高级功能预览
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人“miiboo”中的大部分程序也采用ROS进行开发,所以本文就重点对ROS ...
- 机器人操作系统(ROS)在线实训平台学习实验指南
机器人操作系统(ROS)在线学习指南 在高校开设ROS相关课程已经积累了一年多的经验,由于自动化类专业在课程安排中不同于计算机相关专业,通常没有Linux相关的课程基础,直接上手ROS较为 ...
- 2016级算法第一次练习赛-F.AlvinZH的儿时梦想——机器人篇
864 AlvinZH的儿时梦想----机器人篇 题目链接:https://buaacoding.cn/problem/868/index 思路 中等题. 判断无限玩耍: \(p\) 的值能够承担的起 ...
- 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernetes)-kubernetes/dashboard
本章介绍所需环境:ubuntu18.04,建立在上一篇微服务探索之路01篇已经安装了docker的基础上. 1 替换k8s镜像源为国内镜像 进入目录 cd /etc/apt/sources.list. ...
- 微服务探索之路03篇-docker私有仓库Harbor搭建+Kubernetes(k8s)部署私有仓库的镜像
❝ 目录: 微服务探索之路01篇.net6.0项目本地win10系统docker到服务器liunx系统docker的贯通 微服务探索之路02篇liunx ubuntu服务器部署k8s(kubernet ...
- 【探索之路】机器人篇(5)-Gazebo物理仿真环境搭建_让机器人运动起来
如果完成了前两步,那么其实我们已经可以去连接我们的现实中的机器人了. 但是,做机器人所需要的材料还没有到,所以我们这里先在电脑平台上仿真一下.这里我们用到的就算gazebo物理仿真环境,他能很好的和R ...
- 【探索之路】机器人篇(4)-根据3D文件来优化自己的机器人模型
此章节不是必须做的!!!! 因为我已经用solidworks画了机器人的3D模型,那我就直接导入已经画好的三维模型. 如果大家没有画也是可以直接使用上一章节我们已经构建的机器人模型.我这里只是一个对显 ...
随机推荐
- Jdk源码-集合类主要原理和解析
写在前面 熟悉Jdk原理的重要性不言而喻,作为Java开发者或者面试者,了解其实现原理也显得更为装逼,在Java读书计划我写到了,它是面试中最基础的一部分,所以单独拿出来做个总结,为了更好滴理解和学习 ...
- moviepy音视频剪辑VideoClip类fl_image方法及参数image_func的功能介绍
☞ ░ 前往老猿Python博文目录 ░ moviepy音视频剪辑模块的视频剪辑基类VideoClip的fl_image方法用于进行对剪辑帧数据进行变换. 调用语法:fl_image(self, im ...
- 音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概念介绍
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...
- 转:使用DOS命令chcp查看windows操作系统的默认编码以及编码和语言的对应关系
代码页是字符集编码的别名,也有人称"内码表".早期,代码页是IBM称呼电脑BIOS本身支持的字符集编码的名称.当时通用的操作系统都是命令行界面系统,这些操作系统直接使用BIOS供应 ...
- 第14.12节 Python中使用BeautifulSoup解析http报文:使用select方法快速定位内容
一. 引言 在<第14.10节 Python中使用BeautifulSoup解析http报文:html标签相关属性的访问>和<第14.11节 Python中使用BeautifulSo ...
- 分布式文件系统HDFS-部署和配置
1 部署HDFS HDFS的基本操作可以分为集群管理和文件系统操作两种类型: 集群管理:包括Namenodede 的格式化.集群的启动和停止.集群信息查看等. 文件系统:包括对目录.文件和权限等内容的 ...
- 熊海CMS xhcms v1.0代码审计
有空的时候就进行小型CMS的代码审计,这次审计的对象是熊海CMS v1.0 本地环境安装好了之后,可以看到提示安装了锁文件 说明重装漏洞应该不会存在了,这时候丢进seay代码审计系统的代码也出结果了, ...
- SQL Server 批量插入数据方案 SqlBulkCopy 的简单封装,让批量插入更方便
一.Sql Server插入方案介绍 关于 SqlServer 批量插入的方式,有三种比较常用的插入方式,Insert.BatchInsert.SqlBulkCopy,下面我们对比以下三种方案的速度 ...
- hash相关
转译☞:https://www.cs.rice.edu/~as143/COMP441_Spring17/scribe/lect4.pdf 1 大规模图片检索问题 基于树模型的算法在分类跟聚类中很受欢迎 ...
- 牛客挑战赛46 B
题目链接: 最小的指数 乍一看还以为是Pollard_rho算法,其实大可不必. 发现\(1<= n <= 1e18\),我们可以将n分为两部分(分块思想降低时间复杂度). 剔除小于等于\ ...