我一定要学好 ROS !!!

Tags
Published
Created time
Mar 20, 2023 08:41 AM
Author
2023.03
urdf模型 描述了机器人底盘的形状、传感器之间的安装关系、各个传感器在tf tree中的关系。其实,miiboo底盘urdf模型的主要作用是提供各个传感器在tf tree中的关系,这些关系将在SLAM和导航算法中被使用。
 

使用IMU

在机器人上只需要使用miiboo_imu这个驱动包就可以驱动mpu9250模块了。将miiboo_imu这个驱动包拷贝到~/catkin_ws/src/中,编译后就可以使用了。miiboo_imu驱动包文件结构,如图11。ydlidar驱动包中的其他文件我们不需要关心,只需要设置ydlidar/launch/my_x4.launch文件,这个用于启动IMU。
IMU数据格式:
IMU模块采用右手坐标系,IMU模块正前方为x轴、正左方为y轴、正上方为z轴。IMU模块提供3轴加速度、3轴角速度、3轴磁力计、经数据融合后用欧拉角表示的姿态。
IMU数据在ROS中是以sensor_msgs/Imu消息类型进行表示,如图13。
 
usb_cam摄像头驱动安装:
将usb_cam下载到~/catkin_ws/src/中,直接编译就行了。
cd ~/catkin_ws/src/ git clone https://github.com/ros-drivers/usb_cam.git rosdep install usb_cam cd ~/catkin_ws/ catkin_make
 
驱动USB摄像头:
其实很简单,一条命令启动USB摄像头。
roslaunch usb_cam usb_cam.launch
AMCL粒子滤波算法,是一种思想,比如要计算一个矩形里面一个不规则形状的面积,这个问题不好直接计算,但是可以拿一把豆子均匀撒到矩形中,统计落在不规则形状中豆子的占比就能算出其面积了。在机器人定位问题中,我们在地图的任意位置撒上许多粒子点,然后通过传感器观测数据按照一定的评价方法对每个粒子点进行打分,评分高的粒子点表示机器人有更大的可能在此位置;在下一轮撒点时,就在评分高的粒子点附近多撒一些点,这样通过不断的迭代,粒子点就会聚拢到一个地方。这个粒子点聚集的地方,就是机器人位置的最优估计点
 
路径规划:
机器人导航中核心的就是路径规划,路径规划是通过利用环境障碍物信息找到一条到达目标并且开销小的路劲。导航中会用到两种路径规划,即全局路径规划global_planner和局部路径规划local_planner。全局路径规划更像是一种战略性策略,需要考虑全局,规划处一条尽量短并且易于执行的路径。在全局路径的指导下,机器人在实际行走时还需要考虑周围实时的障碍物并制定避让策略,这就是局部路径规划要完成的事,可以说机器人的自主导航最终是由局部路径规划一步步完成的。ROS中推荐的全局路径规划器是global_planner
 

ros-navigation使用

ros-navigation功能包集是一个很强大的导航框架,支持几乎所有的移动机器人。我们只需要按照适当的配置就可以将ros-navigation应用到我们自己的机器人。为了更好的管理配置文件和启动节点,我们需要先为miiboo机器人建立一个功能包miiboo_nav,用于专门存放我们机器人的导航配置与启动文件。miiboo_nav功能包文件结构,如图36。不难发现,miiboo_nav是一个不包含任何可执行源码的功能包,里面只包含config和launch。config中存放导航中各算法模块的参数配置,launch中存放启动导航所需的各种节点的启动文件。下面依次介绍这些文件的作用