Pibot介绍

来源:互联网 发布:搜索引擎自然排名优化 编辑:程序博客网 时间:2024/05/19 01:13

目录

1. 概述

Pibot

Zues和Apollo是PIBOT工作室专门针对ROS开发的移动三轮全向小车和差分两轮小车

主要应用

  • ROS机器人教学
  • 机器人创客开发
  • 服务机器人研发
  • AGV研发

应用场景

室内平坦地面

实物外观图

Zues
Apollo

软件支持

  • 速度精准控制,支持角速度和线速度并发
  • 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进行开发,支持Windowsubuntu环境

环境搭建

具体请参考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

Raspberry Pi 3

树莓派的GPIO针脚图:
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 3SHELL

输入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.launchroslaunch 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.launchroslaunch pibot_navigation view_navi.launch

附录

Zeus建图视频

mapping

Zeus导航视频
navigation