【Robot 学习1】 机器人平台搭建

 


0、机器人组成的理论知识


机器人是一个机电一体化的设备,从控制的角度来看,机器人系统可以分为四大部分,即执行机构、驱动系统、传感系统和控制系统

【Robot 学习1】 机器人平台搭建_第1张图片

 

1、 执行机构:人体的手和脚,直接面向工作对象的机械装置;

2、驱动系统:人体的肌肉和筋络,负责驱动执行机构,将控制系统下达的命令转换成执行机构需要的信号;

3、传感系统:人体的感官和神经,主要完成信号的输入和反馈,包括内部传感器(里程计、IMU等)和外部传感器系统(摄像头、激光雷达等);

4、控制系统:人体的大脑,实现任务即信息的处理,输出控制命令信号;控制系统需要基于处理器(树梅派、工控机、TK2等)实现,在处理器之上,控制系统需要完成机器人的算法处理、关节控制、人机交互等丰富的功能;


开始搭建自己机器人平台啦!!


逛了几家淘宝店后,选定了 rikirobot智能机器人 家的两驱三轮 ,全套(深度摄像头+激光雷达+工控机+驱动板+小车平台)下来得5600,精打细算发现只买小车平台+stm32的驱动板,其他的单独配省不少钱 嘿嘿~

【Robot 学习1】 机器人平台搭建_第2张图片

免费为rikirobot做个广告吧 

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.757b2e8d4pteRI&id=546026210769&_u=6nk2em3f0c6

 一、执行机构

平台直接买的rikirobot家的机器人(平台+stm32驱动板)。平台本体由三层空间构成,使用铝合金板切割拼装,执行机构比较简单,有两个直流电机带动主动轮,配合一个从动轮实现机器人的移动。

【Robot 学习1】 机器人平台搭建_第3张图片

 二、驱动系统

            riki 的平台搭载了如图所示的底层驱动板,其中集成了电源驱动、电机驱动、姿态传感器接口等底层驱动功能;

【Robot 学习1】 机器人平台搭建_第4张图片

1、电源子系统

按胡博士的说法,一般的机器人平台需要有个电源子系统,但是riki家的电源是 12V  2800mah的锂电池,直接给驱动板供电;驱动板通过USB micro的通讯端口给工控机供电、通过电机接口给两个主动轮供电、通过传感器接口给9轴IMU供电。

2、电机驱动子系统

直流电机的驱动子系统自上而下可分为两部分,第一部分是与电机直连的电机驱动模块,可将上层下达的控制信号转换为电机需要的电源信号;第二部分是电机控制模块,接收控制系统的运动命令,实现对电机的闭环驱动控制;

3、传感器接口(9轴IMU、里程计)

riki将部分传感器接口集成到驱动板上,可以处理9轴IMU、里程计等传感器的信号;

 三、传感器系统

1、内部传感器

riki的内部传感器包括GY-85 九轴IMU以及集成在小车主动轮上的编码器;

GY-85 九轴IMU链接:https://detail.tmall.com/item.htm?spm=a230r.1.14.20.c6312336FAOwMf&id=41337816280&ns=1&abbucket=12

霍尔码器链接:https://item.taobao.com/item.htm?spm=a230r.1.14.60.6b2a181dCRD5Qt&id=556442142947&ns=1&abbucket=12#detail

【Robot 学习1】 机器人平台搭建_第5张图片       【Robot 学习1】 机器人平台搭建_第6张图片

【Robot 学习1】 机器人平台搭建_第7张图片        【Robot 学习1】 机器人平台搭建_第8张图片

2、外部传感器

riki套餐中配的深度摄像头是乐视的、激光雷达是思岚A1/A2,直接买套餐太贵了,我单独买了kinect1、思岚A1算下来省了不少钱!下边分别介绍下kinect1、思岚A1的具体参数:

kinect1 我是去淘宝上买的二手九成新,景深镜头感应距离是1.2米到3.5米,分别率是320×240 16位色深 30fps

具体参数如下所示,

【Robot 学习1】 机器人平台搭建_第9张图片   【Robot 学习1】 机器人平台搭建_第10张图片

思岚A1  

【Robot 学习1】 机器人平台搭建_第11张图片    【Robot 学习1】 机器人平台搭建_第12张图片

四、控制系统

1、硬件方案

控制系统硬件选择上有两种方案:单处理器和多处理器。

单处理器,就是使用PC作为控制系统平台,控制系统的功能在PC上使用ROS系统实现,通过USB串口与机器人驱动板直接通信,采集机器人信息并控制机器人移动,这种方案简单易用处理器性能强大,可很快实现ROS功能,但是PC机体大、灵活性差(必须用USB线跟驱动板相连接)、接口种类少、且无法进行远程监控,不作为推荐方案。

多处理器,针对第一种方案,做ROS开发的基本会选择“PC+嵌入式系统”的方案,我选择的是“PC+工控机Intel3865”,将工控机搭载在机器人上作为机器人本体的控制系统,PC通过无线网络与工控机连接,实现对机器人人的远程监控、图形化显示,以及处理复杂功能的运算。

1)如何实现工控机与PC机的通信?

设置IP地址,工控机与PC必须在同一个局域网下,分别在计算机roswing-K45VD、syw上使用ifconfig命令查看计算机的局域网IP地址,如下图所示:

PC端(ros-wing):ifconfig后得出的ip地址为192.168.1.4

【Robot 学习1】 机器人平台搭建_第13张图片

工控机端(syw) ifconfig后得出的ip地址为192.168.1.20

【Robot 学习1】 机器人平台搭建_第14张图片

分别在两台计算机的/etc/hosts 文件中加入对方的IP地址和对应的计算机名

# @ros-wing, /etc/hosts
192.168.1.20 syw

# @syw, /etc/hosts
192.168.1.4 ros-wing

然后分别在两台计算机上ping下对方,看看网络是否畅通

【Robot 学习1】 机器人平台搭建_第15张图片

【Robot 学习1】 机器人平台搭建_第16张图片

到此,说明底层的网络通讯已经搞定了;

2)设置ROS_MASTER_URI

该小车采用的工控机+PC的双控制模式,但是系统中只能有一个Master,所以从机(工控机)需要知道Mater(PC)的位置。ROS Master的位置可以使用环境ROS_MASTER_URI进行定义,在从机工控机上使用如下命令设置ROS_MASTER_URI:

$ echo "export ROS_MASTER_URI=http://ros-wing:11311" >>  ~/.bashrc

【Robot 学习1】 机器人平台搭建_第17张图片

3)ssh连接

ROS是基于分布式的软件框架,本小车采用双控制模式,工控机(ubuntu16.04&ROS)作为小车端主控制器,PC(ubuntu 16.04&ROS)作为远端控制系统。为了在自己的笔记本电脑上可以远程控制小车,所以在小车工控机与自己的笔记本电脑上进行SSH配置。
 

step1:SSH程序的安装

确保在小车工控机上安装好了openssh-server程序,在本地主机上安装好了openssh-client程序(ubuntu16.04默认已经装好了客户端)。

sudo apt install openssh-client #本地笔记本电脑上运行此条,实际上通常是默认安装client端程序的
sudo apt install openssh-server #小车工控机上运行此条命令安装

step2:小车工控机上启动ssh服务

以下命令都只针对服务器端(server only)。
一般服务器上安装ssh完成后,会自动启动ssh服务,并且默认随系统启动,如果没有,请手动启动:

sudo /etc/init.d/ssh start #服务器启动ssh-server服务,

其他命令:

sudo /etc/init.d/ssh stop #server停止ssh服务
sudo /etc/init.d/ssh restart #server重启ssh服务

然后确认sshserver是否启动了:(或用“netstat -tlp”命令)

ps -e|grep ssh

如果只有ssh-agent那ssh-server还没有启动,需要/etc/init.d/ssh start,如果看到sshd那说明ssh-server已经启动了。

如果没有则可以这样启动:

sudo/etc/init.d/ssh start

step3:查询服务器的ip地址

在服务器终端运行以下命令:

ifconfig #查询ip地址,在返回信息中找到自己的ip地址

【Robot 学习1】 机器人平台搭建_第18张图片
从我的返回信息中看到,我的ip地址(inet地址)是:192.168.1.20
step4:在本地主机端ssh远程登录服务器

这一步需要知道服务器的用户名(我的服务器名字也是syw-Default-string)及IP地址。
在本地主机上运行以下命令:
用户端连接服务器用于登录远程桌面(以下user时远程主机的用户名)

ssh [email protected]
#或
ssh -l syw-Default-string 192.168.1.20
# 如果需要调用图形界面程序
ssh -X [email protected]

初次登录时会出现以下信息,请记住要输入的密码是服务器主机本身的登陆密码:
【Robot 学习1】 机器人平台搭建_第19张图片

以上表示连接成功,且命令提示副前的用户名@主机名由本地主机变成服务器的信息,即表明现在该终端所有的命令都是在服务器中执行。

这个地方特别容易出问题,常见的报错是Permission denied,please try again.

1、解决方法是

要修改当前用户的ssh权限,即修改 /etc/ssh/sshd_config 文件中

PermitRootLogin without-password

改为如下

PermitRootLogin yes

注意这时一定要重启服务器,然后才能生效

2、刚接触SHH的人(比如我)ssh [email protected] 这个是错误的,正确的应该是ssh [email protected];

多说一嘴,两个主机ping的时候是用ping syw-Default-string,这块特别容易ssh [email protected]搞混淆了!!!

step5:退出远程登录

用Ctrl+D或者exit

2、软件方案

工控机上都需要装ROS操作系统,装ROS的教程特别多,这里就不列了,有一点需要注意的是,在从机上装ROS时胡博士推荐的是装基本版,这个视从机的性能而定吧,如果是树梅派推荐基本版,我用的是工控机豪一点,直接装的完整版,哈哈!!

你可能感兴趣的:(Robot,学习)