PIBOT用户手册

作者: PIBOT导航机器人 | 来源:发表于2017-12-18 18:32 被阅读2435次

目录

1. 概述

1.1PIBOT

apollozeushadeshera是PIBOT工作室专门针对ROS开发的移动差分两轮小车、全向三轮小车、全向四麦克纳姆轮小车和差分四轮驱动小车

主要应用

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

应用场景

室内平坦地面

外观图

apollo-点击我查看详情

zeus-点击我查看详情

hades-点击我查看详情

hera-点击我查看详情

淘宝链接

apollo
zeus
hades
hera

相关资料

链接:https://pan.baidu.com/s/1kENjOvblWX6ie29CgUPzUQ 密码:mltf

1.2软件支持

  • 速度精准控制,支持角速度和线速度并发
  • PID控制动态调节,动态曲线显示
  • 通过USB(USB转串口)与上位机互连通讯,运动解算及PID速度环都在下位控制器完成,只需要通过串口命令发送线速度与角速度即可驱动小车底盘,同时可以直接读取小车的实时位置及实时速度信息(上位驱动都已实现)
  • 基于ROS的激光雷达构建地图SLAM,支持键盘、手柄或者手机APP控制建图;支持RVIZ选点建图
  • 基于ROS的室内自动导航与避障,AMCL的定位
  • 基于摄像头的远程监控及APP同步显示
  • 手机APP控制移动、小车位置设定,导航目标设定及路径显示(需要ROS上位机支持,即树莓派/PC)
image
  • 提供完善的文档和丰富的示例
  • 支持模拟器,无需硬件环境可以直接使用使用模拟建图与导航
  • 开源所有代码,包括底层嵌入式部分代码,上位ROS驱动代码导航配置,Android App代码

1.3硬件清单

apollo

主要机械部件:

  • 小车主体
    小车底盘采用双层亚克力+双层主板亚克力。


    2d-1.png
2d-2.png 2d-3.png 2d-4.png
  • 底盘
    • 主动轮:65mm直径优质橡胶轮 2个
    • 从动轮:1.5寸尼龙万向轮 1个
    • 减速编码器电机:2个495线,轮子转动一圈会产生的脉冲信号高达1980个
  • 电子控制部件:
    • Arduino Mega 2560单片机控制板+扩展板或SMT32F103主控板:1个
    • DC12-5v降压模块,双USB输出(提供给树莓派等供电)
      -其他部件:
    • 12V、6000mAh锂电池+充电器: 1个
      Raspberry Pi 3 Model B 树莓派3 B型或RK3288(内嵌ROS系统)

zeus

主要机械部件:

  • 小车底盘采用4MM双层亚克力+3MM双层电路板基板的亚克力板,外观简洁美观,安装方便


  • 底盘
    • 主动轮:58毫米全向轮
    • 减速编码器电机:3个 990线,轮子转动一圈会产生的脉冲信号高达3960个
  • 电子控制部件:
    • Arduino Mega 2560单片机控制板+扩展板或SMT32F407主控板:1个
    • DC12-5v降压模块,双USB输出(提供给树莓派等供电)
  • 其他部件:
    • 12V、6000mAh锂电池+充电器: 1个
      Raspberry Pi 3 Model B 树莓派3 B型或RK3288(内嵌ROS系统)

hades

主要机械部件:

  • 小车底盘采用4MM双层亚克力+3MM双层电路板基板的亚克力板,外观简洁美观,安装方便


  • 底盘
    • 主动轮:60毫米麦克纳姆轮
    • 减速编码器电机:4个 990线,轮子转动一圈会产生的脉冲信号高达3960个
  • 电子控制部件:
    • Arduino Mega 2560单片机控制板+扩展板或SMT32F407主控板:1个
    • DC12-5v降压模块,双USB输出(提供给树莓派等供电)
  • 其他部件:
    • 12V、6000mAh锂电池+充电器: 1个
      Raspberry Pi 3 Model B 树莓派3 B型或RK3288(内嵌ROS系统)

1.4安装手册&操作手册

PIBOT操作手册
apollo安装手册
zeus安装手册
hades安装手册

2. 下位机开发

小车出厂已经刷好固件程序和设置好配置,无需关心下位机嵌入式程序的可以跳过本节

2.1概述

  • 使用Arduino Mega 2560为主控单元,使用Visual studio code+Platform IO进行开发,支持Windowsubuntu环境
  • 使用STM32F1为主控单元,使用Keil进行开发
  • 使用STM32F4为主控单元,Ubuntu下使用Visual studio code进行开发

2.2环境搭建

Arduino

具体请参考Visual Studio Code插件PlatformIO IDE开发Arduino

STM32F1

具体请参考PIBOT的STM32F1的环境配置与编译

STM32F4

具体请参考PIBOT的ubuntu下stm32 C/C++模版及配置编译

环境配置

Arduino

使用Visual studio code打开附带下位代码文件夹,在platformio.ini修改相应模型以及使用的电机控制器
apollo

models =
    -D ROBOT_MODEL=ROBOT_MODEL_DIFF
    -D MOTOR_CONTROLLER=COMMON_CONTROLLER

zeus

models =
    -D ROBOT_MODEL=ROBOT_OMNI_3
    -D MOTOR_CONTROLLER=COMMON_CONTROLLER

STM32

STM32F1

123.png

Arduino

STM32F4

param.mk的修改相关配置,同Arduino

2.3代码分析

具体请参考ROS机器人底盘(7)-Firmware的代码分析(1)
ROS机器人底盘(8)-Firmware的代码分析(2)

2.4参数配置

运动参数出厂时都内置在板子的EEPROM/FLASH中,若需要修改,请在下面ROS驱动开发中查看

3. 上位机开发

上位机出厂已经刷好系统和安装好ROS,无需关心细节可以直接调过3.2 3.2

3.1概述

采用Raspberry Pi 3或者RK3288作为上位ROS主控

3.2Ubuntu的刷入、ROS的安装

具体请参考树莓派(raspberry pi 3b)安装ROS Kinetic Kame
RK3288中ROS的安装

sudo /etc/init.d/lightdm stop即可关闭图像界面

3.3ssh远程连接

windows中推荐安装xshell远程连接

安装xshell

网盘中下载xshell并安装

通过Xshell连接Raspberry Pi 3

输入IP和用户名密码,默认用户名密码均为pibot即可连接

输入IP
SHELL

Windows通过xshell传输文件


3.4Master主机

需要一个PC安装ROS环境(最好有但不必须),用来显示查看地图或者玩转模拟器等
主机环境Ubuntu 16.04或者Windows7/10+Vmvare+Ubuntu16.04虚拟机Ros kinetic环境, 安装ROS参见PIBOT操作手册相关章节

3.5多机通讯

Master主机与树莓派或者RK3288怎么建立ROS通讯的,如需了解细节
请参考ROS多机的通讯配置,不关心直接照着PIBOT操作手册相关章节配置即可

4.ROS驱动开发

4.1概述

下位机及通过串口与Raspberry Pi 3或者PC通讯,通讯协议具体请参见ROS机器人底盘(3)-通讯协议

4.2 驱动开发及PID参数动态调整

PID参数已在出厂时候配置,如需了解细节请参考ROS机器人底盘(10)-PIBOT的driver的实现及动态PID调节

4.3 目录结构简介

建议拷贝提供的压缩文件至目标设备(树莓派等)上解压,不然会遇到一些问题,具体问题见Q&A

PIBOT的ROS workspace目录如下图


  • arbotix_ros 模拟器
  • pibot 工具集
    pibot
  • pibot_bringup pibot驱动包
    pibot_bringup
  • pibot_description pibot urdf文件
    pibot_description
  • pibot_navigation 建图导航相关配置项
    pibot_navigation
  • pibot_simulator pibot导航模拟器
    pibot_simulator
  • rplidar_ros rplidar激光雷达驱动包
  • ydlidar-1.2.1 eai激光雷达驱动包

4.4编译与测试

编译

cd ~/pibot/ros_ws
catkin_make

source devel/setup.bash
或者直接写入.bashrc中(这样每次启动bash会直接调用)
echo "source /xxxx/devel/setup.bash" >> ~/.bashrc

** xxx为完整路径**

测试

初始化配置

Raspberry Pi 3运行rosrun pibot setup.sh
重新拔插USB口或者重启Raspberry Pi 3

ls /dev/pibot -l

开始测试

修改波特率
pibot_bringup/params/base_param.yaml
Raspberry Pi 3运行roslaunch pibot_bringup bringup.launch
Master主机运行rosrun rqt_reconfigure rqt_reconfigure可以查看和修改内置的配置信息,运行roslaunch pibot keyboard_teleop.launch即可通过键盘控制小车运动

同时支持小米等手柄的接入,运行roslaunch pibot joystick.launch即可

默认参数出厂会固化到板子

apollo
  • Arduino


  • STM32F1


zeus
  • STM32F4


hades
  • STM32F4


hera

4.4 校准

4.4.1无IMU校准

参见ROS机器人底盘(11)-pibot的控制及校准

4.4.2IMU校准

5.ROS建图与导航

5.1概述

ROS驱动中提供了cmd_vel的订阅及odom的发布,至此再需要一个激光雷达就可以完成建图了

5.2建图

Raspberry Pi 3运行roslaunch pibot_navigation gmapping.launch
Master主机运行roslaunch pibot_navigation view_nav.launch

2种建图方法

  • 运行roslaunch pibot keyboard_teleop.launch或者roslaunch pibot joystick.launch即可通过键盘或者遥控手柄开始建图
  • 直接选择导航的点(2D Nav Goal)开始建图

保存地图

  • 运行下列命令即可(my_map为自定义名称)
roscd pibot_navigation/maps/
rosrun map_server map_saver -f my_map`

可以看到生成2个文件

5.3导航

Raspberry Pi 3运行roslaunch pibot_navigation nav.launch map_name:=my_lab.yaml
Master主机运行roslaunch pibot_navigation view_nav.launch

如果直接运行roslaunch pibot_navigation nav.launch而不指定map_name参数则使用默认参数,nav.launch文件中可以设置默认使用的地图文件

image.png

6.模拟器

PIBOT包内置了模拟器,可以直接运行模拟导航

  • 运行roslaunch pibot_simulator nav.launch
  • 运行roslaunch pibot_navigation view_nav.launch
    这样无需小车也可以模拟导航了

7.Android App

保证手机跟跟PC或者Raspberry Pi 3连接同一个网络,保证手机能够访问到roscore(export ROS_IP=XXX.XXX.XXX.XXX)具体参见ROS多机的通讯配置


修改Master URI选择roscoreURI 点击CONNECT
切换Camera ViewMap View
android_app
  • Set Pose在地图长按 相当于Rviz中的 2D Pose Estimate
  • Set Goal在地图长按 相当于Rviz中的 2D Nav Goal
  • 左下角Joystick可以发出cmd_vel topic控制小车移动

显示视频

显示视频需要硬件摄像头支持同时在PC或者Raspberry Pi 3启动roslaunch pibot usb_camera.launch

附录

zeus建图视频

Mapping-点击我查看视频

zeus导航视频

Navigation-点击我查看视频

常见问题

  • 1.ROS代码编译问题
    如果从windows拷贝的源码编译可能遇到以下问题

    • No such file or directory

      No such file or directory 这是生成动态参数时因为windowsLinux下换行不一致导致的,使用Visual Code打开pibot\cfg\CalibrateAngular.cfg

      右下角点击CRLF修改为LF并保存,同样的还有pibot\cfg\CalibrateLinear.cfgpibot_bringup\cfg\pibot_parameter.cfg
    • 2.Permission denied

      Permission denied 问题原因与上面类似,解决方法就是添加执行权限chmod +x pibot\cfg\CalibrateAngular.cfg同样的还有pibot\cfg\CalibrateLinear.cfgpibot_bringup\cfg\pibot_parameter.cfg
  • 3.Invalid arg

    Invalid arg 问题原因是没有设置环境变量

    设置为支持的选项即可
    如:export PIBOT_LIDAR=rplidar或者export PIBOT_LIDAR=eai-x4
    类似还有export PIBOT_MODEL=apollo或者export PIBOT_MODEL=zeus

同之前,如果不希望每次都需要设置,最好把该配置写到~/.bashrc文件中

  • 4.雷达启动不转,health state 异常



    多半是你这usb供电问题,或者可能电池电量不足,电池需要充电

相关文章

网友评论

  • aout_4477:启动模拟器。出现这个问题,请问怎么解决
    [map_server-4] process has died [pid 18719, exit code -11, cmd /opt/ros/kinetic/lib/map_server/map_server/home/wangjy/ROS_code/pibot_ros/ros_ws/src/pibot_simulator/maps/test_map.yaml __name:=map_server __log:=/home/wangjy/.ros/log/86b4ef7c-cb84-11e8-8e6f-a402b951647c/map_server-4.log].
    log file: /home/wangjy/.ros/log/86b4ef7c-cb84-11e8-8e6f-a402b951647c/map_server-4*.log
    [fake_localization-6] process has died [pid 18740, exit code -11, cmd /opt/ros/kinetic/lib/fake_localization/fake_localization base_pose_ground_truth:=odom __name:=fake_localization __log:=/home/wangjy/.ros/log/86b4ef7c-cb84-11e8-8e6f-a402b951647c/fake_localization-6.log].
    log file: /home/wangjy/.ros/log/86b4ef7c-cb84-11e8-8e6f-a402b951647c/fake_localization-6*.log
    [move_base-5] process has died [pid 18721, exit code -11, cmd /opt/ros/kinetic/lib/move_base/move_base __name:=move_base __log:=/home/wangjy/.ros/log/86b4ef7c-cb84-11e8-8e6f-a402b951647c/move_base-5.log].
    log file: /home/wangjy/.ros/log/86b4ef7c-cb84-11e8-8e6f-a402b951647c/move_base-5*.log
  • 别想歪啦:想问一下,资料里面有没有源码啊!我最近在自学相关内容,想找一份源码琢磨琢磨,如果能源码的话,感激不尽。

本文标题:PIBOT用户手册

本文链接:https://www.haomeiwen.com/subject/jbkqixtx.html