Pibot介绍
来源:互联网 发布:搜索引擎自然排名优化 编辑:程序博客网 时间:2024/05/19 01:13
目录
1. 概述
Pibot
Zues和Apollo是PIBOT工作室专门针对ROS开发的移动三轮全向小车和差分两轮小车
主要应用
- ROS机器人教学
- 机器人创客开发
- 服务机器人研发
- AGV研发
应用场景
室内平坦地面
实物外观图
软件支持
- 速度精准控制,支持角速度和线速度并发
- PID控制自动调节
- 500线左右编码器,倍频后一圈可输出1980脉冲
- 波特率115200的串口与上位机互连通讯
- 手机APP控制移动
提供完善的文档和丰富的示例
支持与ROS系统互连,提供底盘与激光雷达结合的建地图、定位、导航等技术支持和解决方案。
硬件清单
Zeus
主要机械部件:
- 小车主体
小车底盘采用双层亚克力。
- 底盘
- 主动轮:58毫米全向轮
- 减速编码器电机:3个 495线,轮子转动一圈会产生的脉冲信号高达1980个
底盘自重:3kg
- 电子控制部件:
- Arduino Mega 2560单片机控制板:1个
- Arduino Mega 2560扩展版:1个
- 电机控制板:1个或者电机驱动器:2个
- 数显可调降压模块
- 其他部件:
- 12V充电器: 1个
- 松下18650锂电池:9个
Raspberry Pi 3 Model B
树莓派3 B型(内嵌ROS系统)
Apollo
[图片上传失败…(image-975dd3-1513593114417)]
[图片上传失败…(image-1ef194-1513593114417)]
- 底盘
- 主动轮:65mm直径优质橡胶轮 2个
- 从动轮:1.5寸尼龙万向轮 1个
- 减速编码器电机:2个495线,轮子转动一圈会产生的脉冲信号高达1980个
- 电子控制部件:
- Arduino Mega 2560
单片机控制板:1个
- Arduino Mega 2560
扩展版:1个
- 电机控制板:1个或者电机驱动器:2个
- 数显可调降压模块
-其他部件:
- 松下18650锂电池:6个
- 12V充电器: 1个
Raspberry Pi 3 Model B 树莓派3 B型(内嵌ROS系统)
2. 下位机开发
概述
下位机使用Arduino Mega 2560为主控单元,使用Visual stdio code
+Platform IO
进行开发,支持Windows
和ubuntu
环境
环境搭建
具体请参考Visual Stuido Code插件PlatformIO IDE开发Arduino
环境配置
使用Visual stdio code
打开附带下位代码文件夹,在platformio.ini
修改相应配模型以及使用的电机控制器
models = -D ROBOT_MODEL=ROBOT_MODEL_DIFF -D MOTOR_CONTROLLER=AF_SHIELD_CONTROLLER
烧写程序至主控板
代码分析
具体请参考三轮全向机器人底盘(7)-Firmware的代码分析(1)
三轮全向机器人底盘(8)-Firmware的代码分析(2)
参数配置
运动参数出厂时都内置在板子的EEPROM中,若需要修改,请在下面ros驱动开发中查看
3. 树莓派相关
概述
采用Raspberry Pi 3
作为上位ROS
主控 Raspberry Pi 3
是一款针对电脑业余爱好者、小型企业等用户的迷你电脑,预装Linux系统,体积仅信用卡大小,搭载ARM架构处理器,运算性能和智能手机相仿。
在接口方面,Raspberry Pi 3
提供了可供键鼠使用的USB接口,此外还有快速以太网接口、SD卡扩展接口以及1个HDMI高清视频输出接口,可与显示器或者TV相连。
它价格便宜,使用功率小,所以它很适合用于嵌入式项目。
很多人已经能够把Pi用于各种项目,从针对小孩的一些简单项目到携有更高级功能的复杂项目,它可以被创造的像一个桌面PC那样用于制作电子表格、文字处理和玩游戏,它还可以播放高至1080p的高清视频。
所谓麻雀虽小五脏俱全, 用来形容树莓派( Raspberry Pi) 最好不过了 , 这块信用卡般大小的主板拥有和pc样的能力。
USB, Ethernet, HDMI, RCA, 3.5mm Stereo Jack, 还有无比强大的GPIO。 Raspberry Pi 3
拥有
博通BCM2837 1.2GHz 四核处理器Cortex-A53 芯片
1GB RAM
400MHz VideoCore IV GPU
内置蓝牙 4.0
802.11n Wi-Fi模块
四个 USB 插口
一个以太网接口
一个HDMI
树莓派的GPIO针脚图:
电源
Raspberry Pi 3
采用5v供电,Pibot
提供可调数显降压模块,出厂时输出已经调至5v,可通过显示的数码管切换显示模式查看到,同时提供USB输出,直接可以通过安卓的数据线给Raspberry Pi 3
供电
ubuntu的刷入、ROS的安装
具体请参考树莓派(raspberry pi 3b)安装ros kinect
关闭图形
sudo /etc/init.d/lightdm stop
即可关闭图像界面
ssh远程连接
vi /etc/rc.local
exit 0前添加
service ssh start
Master主机
主机环境可选择Windows7/10+Vmvare ubuntu16.04
虚拟机Ros kinetic
环境, 安装这里不做说明
通过Xshell连接Raspberry Pi 3
windows中可以安装提供的xshelRaspberry Pi 3
输入IP和用户名密码,默认用户名密码均为pibot
ubuntu直接ssh username@ip登入
多机通讯
具体请参考ros多机的通讯配置
4.ROS驱动开发
概述
Arduino Mega 2560
下位及通过串口与Raspberry Pi 3
通讯,通讯协议具体请参见三轮全向机器人底盘(3)-通讯协议
驱动开发及PID参数动态调整
参见三轮全向机器人底盘(10)-pibot的driver的实现及动态PID调节
编译与测试
编译
cd ~/pibot/ros_wscatkin_make
测试
初始化配置
使用PIBOT提供的镜像可直接跳过本次配置
在Raspberry Pi 3
运行rosrun pibot_setup.bash
重新拔插USB口或者重启Raspberry Pi 3
ls /dev/pibot -l
开始测试
在Raspberry Pi 3
运行roslaunch pibot_bringup bringup.launch
在Master主机
运行rosrun rqt_reconfigure rqt_reconfigure
可以查看和修改内置的配置信息,运行rosrun pibot teleop_twist_keyboard.py
即可通过键盘控制小车运动
同时支持小米等手柄的接入,运行
roslaunch pibot joystick.launch
即可
校准
参见三轮全向机器人底盘(11)-pibot的控制及校准
4.ROS建图与导航
概述
ros驱动中提供了cmd_vel
的订阅及odom
的发布,至此在需要一个激光雷达就可以完成建图了
备注
直接在Raspberry Pi 3
允许建图逻辑还是比较吃力,上面已经配置好了多机通讯,何不把建图运动的逻辑放在上位呢这样效果会好很多
建图
在Raspberry Pi 3
运行roslaunch pibot_navi common.launch
在Master主机
运行roslaunch pibot_navigation gammping.launch
及roslaunch pibot_navigation view_navi.launch
2种建图方法
- 运行
rosrun pibot teleop_twist_keyboard.py
或者roslaunch pibot joystick.launch
即可通过键盘或者遥控手柄开始建图 - 直接选择导航的点(
2D Nav Goal
)开始建图
保存地图
- 运行
rosrun map_server map_saver -f my_map
即可
导航
在Raspberry Pi 3
运行roslaunch pibot_navi common.launch
在Master主机
运行roslaunch pibot_navigation navi.launch
及roslaunch pibot_navigation view_navi.launch
附录
Zeus建图视频
Zeus导航视频
- Pibot介绍
- 6. PIBOT的通讯协议
- 11. pibot的控制及校准
- 7. PIBOT的Firmware的代码分析(1)
- 8. PIBOT的Firmware的代码分析(2)
- 10. pibot的driver的实现及动态PID调节
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 介绍
- 利用二分法解决 leetcode 378. Kth Smallest Element in a Sorted Matrix
- 打开App显示文件已损坏,打不开,您应该将它移到废纸篓,怎么办?
- lintcode--数据流中第一个唯一的数字
- Java-NIO(八):DatagramChannel
- ServletResponse接口,HttpServletResponse接口
- Pibot介绍
- JAVA中的变量
- AS编译c/c++生成so文件
- Markdown小技巧:代码格式、缩进和字体大小
- Java-NIO(九):管道 (Pipe)
- 数据结构直接插入排序
- awvs扫描器的使用
- Android研究_Gralloc_5 Grallo分配和释放Buffer
- 排序