低成本改造扫地机
如何把两轮差速底盘、激光传感器和PC组装成一台自主导航机器人?
所需硬件(Cost < ¥1000)
- Roomba 600
- RPLIDAR S1/A1/A2/A3
- 自己的笔记本
-
Xbox 360 手柄(阿修罗2无线版)
所有通道(8个模拟[-1.0,+1.0] + 11个数字{0,1})默认初始值:
axes: [-0.0, -0.0, -0.0, -0.0, 1.0, 1.0, -0.0, -0.0] buttons: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
所需软件
组装方案
AhaBot
DIY路线
- Setup
- Bringup
- Basic Operation
- SLAM
- Navigation
利用laser_filters裁剪雷达数据
新建文件angular_bounds_filter_example.launch
:
<launch>
<node pkg="laser_filters" type="scan_to_scan_filter_chain" output="screen" name="laser_filter">
<rosparam command="load" file="path to angular_bounds_filter.yaml" />
</node>
</launch>
和angular_bounds_filter.yaml
:
scan_filter_chain:
- name: angle
type: laser_filters/LaserScanAngularBoundsFilterInPlace
params:
lower_angle: -1.57
upper_angle: 1.57
最后加载angular_bounds_filter_example.launch
文件。
RViz导入模型与底盘驱动测试
TODO
- 激光数据去畸变
- 压缩mesh模型,提高RViz加载速度
udev rule
EKF
王晋泰《自主导航机器人制作十日谈》课程内容
- 项目准备
- 课程内容解读
- 软件环境配置
- 项目分析与采购技巧
- 自主导航机器人能力的分析
- 硬件选型及其注意事项
- 物料采购技巧
- 开源硬件与开源项目
- Arduino开源硬件及编程
- 底盘控制器开源项目分析
- 原理草图绘制
- 底盘控制器电路设计与制作
- 控制板制作方式分析
- 布局草图绘制
- 焊接并连接线路
- 控制板软硬件测试
- 机器人本体组装
- 差速模型解读
- 机器人本体设计与组装
- 记录机器人差速模型参数
- 机器人操作系统的使用与配置
- Linux与ROS基础命令
- 底盘控制器驱动功能包配置
- 底盘控制器驱动功能包调试
- 功能包与移动控制
- ROS常见功能包演示
- 移动控制功能整合
- 使用手机控制机器人
- 激光雷达与可视化工具
- 激光雷达传感器使用
- 深度相机传感器使用
- 机器人操作系统可视化工具
- 自主导航
- 仿真环境中的自主导航
- 自主导航功能包
- 自主导航功能的整合与调试
- 回顾与总结
- 知识的类型
- 抽象层次
- 学习方法分享
我最想设计的一门移动机器人课程
- Concepts of Robotics
- Perception
- Planning & Control
- ROS, C++, Ubuntu, Arduino
- Encoder, Motor, Power
- URDF Modeling and Simulation
- SLAM and Navigation
参考文献
- Roomblock
- Roomba
- Running the navigation stack on the Roomba
- TurtleBot3手册
- Coordinate Frames for Mobile Platforms
- Setup and Configuration of the Navigation Stack on a Robot
ROS中发布激光扫描消息rplidar 扫描角度设置裁剪rplidar的扫描数据通过修改rplidar的ros包源码达到屏蔽雷达角度的目的- ROS机器人底盘(38)-laser_filters的使用(3)-屏蔽指定角度
- 小强ROS机器人教程
- ROS By Example Volume 1
- urdf-XML-link
- urdf-XML-joint
- udev — Linux dynamic device management
- Writing udev rules
- 激光slam理论与实践
- ROS 学习系列 – 执行turtlebot navigation的方法
- linorobot
Linorobot is a suite of Open Source ROS compatible robots that aims to provide students, developers, and researchers a low-cost platform in creating new exciting applications on top of ROS (Robot Operating System). Linorobot supports different robot bases you can build from the ground up.
- onine
ROS based service robot