机器人主要分为硬件和软件。
机械、电机、齿轮、电路和传感器被归类为硬件。
直接驱动或控制机器人硬件的微控制器级别的固件,以及利用从传感器获得的信息进行识别、制图、导航和动作规划的应用软件均被分类为软件
根据功能,ROS的功能包被分类为
机器人功能包 某些公司开源的完整包, 例如和TurtleBot3, 网站上有很多的成品机器人的开发包.
专为传感器的传感器功能包: 例如SlamTec的 rplidar
专为驱动部的电机功能包: 例如中大电机控制驱动器 NB510系列
========================================================
ROS注册的机器人分类
■ 机械手臂(Manipulator)
■ 移动机器人(Mobile robot)
■ 自动驾驶汽车(Autonomous car)
■ 人形机器人(Humanoid)
■ 无人驾驶飞机(UAV:Unmanned Aerial Vehicle)
■ 无人潜艇(UUV:Unmanned Undersea Vehicle)
■ 无人水面艇(UWV:Unmanned Surface Vehicle)
apt-cache search ros-kinetic 可以查看符合的机器人功能包存在, 如果有, 则可以安装它作为肌醇版本, 对于
turtlebot3 (推荐获取最新的源代码而不是二进制文件) 则为
sudo apt-get install ros-kinetic-turtlebot3 ros-kinetic-turtlebot3-msgs ros-kinetic-turtlebot3-
simulations
========================================================
环境信息有位置、空间、天气、声音、惯性、振动、气体、电流量、RFID,物体和外力识别等很多种。该信息被用作机器人执行实际任务的重要数据
在制作机器人时,通过驱动轮或机器人手臂让机器人移动,且通过智能手机等进行遥
控并不意味着开发完成。如果您在这里停下来,只能说您搭建了一个
移动的机器。机器人
只有在自己认识到周围环境,只提取有意义的信息,并能够计划和做出思考和判断,
才能
被视为机器人。这就是为什么传感器很重要
距离传感器:
Laser Distance Sensor,激光距离传感器
LDS
LiDAR(Light Detection And Ranging,光检测和测距
LiDAR
LRF(Laser Range Finders,激光测距仪)
LRF
三维距离传感器RealSense、Kinect和Xtion
惯性传感器
转矩传感器
阵列麦克风
LDS、3D传感器、相机等传感器有大量需要处理的信息,处理起来需要较高的配置,还需要如OpenNI和OpenCV的Point Cloud处理,以及图像处理所需的库, 因此无法用微处理器实现
ROS官方支持传感器分为
1D range finders 可用于制作低成本机器人的红外线方式的直线距离传感器
2D range finders 常用于导航的传感器
3D Sensors 有英特尔RealSense、微软Kinect和华硕Xction,以及各种3D测量所需的传感器
Pose Estimation(GPS+IMU)、
Cameras、用于物体识别、人脸识别和字符识别的相机驱动程序和各种应用功能包
Sensor Interfaces、有传感器支持USB和Web协议
Audio/Speech Recognition、音识别相关
Environmental、
Force/Torque/Touch Sensors、
Motion Capture、
Power Supply
RFID
...
相机 (
此部分后续再深度跟踪...)
利用相机图像的对象识别和脸部识别
双目测距以及建立3维地图的Visual-SLAM
单眼相机Visual-SLAM
颜色识别
跟踪特定对象的对象跟踪
激光距离传感器(Laser Distance Sensor,LDS)
在室内广泛使用的Hokuyo的URG系列
室外的产品有SICK和Velodyne的配有多个激光传感器的HDL系列
价格 LDS HLS-LFCD2 约 100美元) 思岚 RPLIDAR约400美元.
典型的LDS由一个激光器、一个反射镜和电机组成。当使用LDS时,会听到电机声音,因为它会
旋转内部的反射镜,
以在水平面内发射激光,
在旋转反射镜的过程中测量激光的返回时间。测量范围通常是从180度到360度,取决于具体产品.
注意的地方:
强烈的激光束可能会损伤眼睛. 激光等级分为1级到4级,数字越高越危险.1级是安全的产品
LDS利用反射光. 因此如果不发生反射或者散射太多或
表面太黑反射太少,则无法测量. 如透明玻璃、PET瓶和玻璃杯
传感器仅检测水平面上的物体
在ROS中测试. (HLDS(日立-LG数据存储)公司的LDS(HLS-LFCD2))
安装hls_lfcd_lds_driver功能包
sudo apt-get install ros-kinetic-hls-lfcd-lds-driver
sudo chmod a+rw /dev/ttyUSB0
加载应用
roslaunch hls_lfcd_lds_driver hlds_laser.launch
检查scan数据
rostopic echo /scan
-
$ rostopic echo /scan
-
header:
-
seq: 49
-
stamp:
-
secs: 1499956463
-
nsecs: 667570534
-
frame_id: laser
-
angle_min: 0.0
-
angle_max: 6.28318548203
-
angle_increment: 0.0174532923847
-
time_increment: 2.98899994959e-05
-
scan_time: 0.0
-
range_min: 0.119999997318
-
range_max: 3.5
-
ranges: [0.0, 0.47200000286102295, 0.4779999852180481, 0.48399999737739563, 0.4909999966621399,
-
0.4970000088214874, 0.0, 0.5099999904632568,
-
frame_id设置为laser
-
测量角度为6.28318548203弧度(= 360°)。
-
您还可以看到增量为1°(0.0174532923847 rad = 1°),
-
测量距离范围是0.11米到3.5米,
-
而且将距离值按测量角度的顺序记录在发布的数组中
$ rviz
Views的Type设置为“TopDownOrtho”,将其变成XY平面视图
[Global Options] → [Fixed Frame]更改为“laser”
单击RViz左下角的[Add]按钮,选择[Axes]来添加. 然后更改细节设置(Length和Radius)
单击RViz左下角的[Add]按钮,选择[LaserScan]来添加, 然后更改细节设置(Topic、Color Transformer和Color)
LDS的应用
SLAM(Simultaneous Localization And Mapping)识别机器人周围的障碍物,并通过估计自身的位置来创建地图
电机功能包
目前有支持PhidgetMotorControl HC、Roboteq AX2550 Motor Controller和ROBOTIS Dynamixel的功能包
功能包查找
点击上方的ROS版本中的“kinetic”,可以看到ROS的最新版本“kinetic”的功能包列表
例如可以找到 思岚的 rplidar
$cs
$cm
运行参考
思岚 官方wiki.
注意的是 我目前用的是A3, 需要修改 rplidar.launch 因为默认配置的是A2的, 其实也就是波特率的修改而已.
阅读(2000) | 评论(0) | 转发(0) |