autolabor开源ros机器人笔记

    1、 AutolaborOS 基于 Ubuntu Mate和ROS Kinetic,增加web管理

    2、 Autolabor 1
    软件结构:
    Arduino Mega 2560 主要运行PID程序,负责执行串口收到的指令,控制马达以指定速度旋转,同时对编码器计数,向上层软件报告轮胎实际转动脉冲数.
     详细功能可以参考此部分源代码,位于U盘 Arduino 源代码目录中.

     Raspberry Pi 3 为机器人主要软件环境平台,内部运行Linux系统Debian发行版,在这之上运行Indigo 版本 ROS系统, 实现机器人所有功能.
     诸如控制底盘运动,SLAM,导航各功能,均以软件包的形式,运行在ROS系统之上. 通过一个Launch文件可以将各功能模块配置在同一个启动文件内,实现需要彼此配合的功能.
    http://wiki.ros.org/roslaunch
    
    PC 并不是必须的部分,在Autolabor1中,此部分主要作用是运行ROS工具软件rviz用以观察SLAM输出的地图以及指示导航目标. 您完全可以通过二次开发, 将此部分功能移植到手机上或者省略(例如自行指示目标)
    由于ROS是一个分布式的系统,只要所有ROS节点连接在同一个Core上,无论功能包运行在哪个硬件上(Raspberry Pi 或者 PC) 对于系统来说并无差别.
    3、 A utolabor 1 硬件 结构:
    主控板 并没有芯片元件,只起到转接的作用,直插在Arduino Mega 2560之上.
    电池 为12.6V 6800mah 锂离子聚合物电池,正常情况可以使用1-2小时. 如需更换更大容量电池,可以到此店铺选用,可兼容适用.
     马达 为12V直流1:30减速比,尾部安装有11线霍尔编码器.正常情况下轮子每旋转一圈会产生 330个脉冲.考虑到单片机的倍频,通常在配置时要将这个数字乘以4. 详细了解可以扩展阅读 这篇文章
    电路原理图:
    

    
    2、Autolabor 2

        
        


    ROS底盘使用说明:
    ros_arduino_python,此ros包和小车通讯。

    另需ros_arduino_bridge 
    teleop_twist_keyboard 键盘控制

    ls/dev指令确定arduino在raspberry的串口地址(虚拟)。修改权限

    底盘配置:https://v.qq.com/x/page/z0506x9q8yn.html?start=519
    
    自定义底盘使用:
    小车通过串口指令控制,3个命令:
    1、指定轮子按速度旋转:m 左轮速度 右轮速度: m 100 -50
    2、读取编码器数据:e

    3、重置,清零编码器:r

    USB线连接arduino控制板及PC,PC使用串口工具发送指令。

    硬件介绍:
     Raspberry Pi 3b开发板提供 4个USB接口

   移动部分 Arduino Mega 2560开发板搭载PID算法结合马达上的霍尔传感器,可以精确控制轮胎旋转速度.同时Arduino还会提供ROS系统所需要的里程计信息。
    驱动部分采用双路180W大功率驱动器,单路可以提供最大80W驱动能力,具有较大的驱动冗余。



    硬件介绍视频:
    https://v.qq.com/x/page/y0506dtsi6f.html?start=63


    使用:
     连接到树莓派的Linux系统
    Linux/Mac SSH命令,windows使用Putty等工具。

    工具使用方法可以参考

    SSH使用说明

     autolabor 机器人默认的IP是 192.168.1.1 用户名 pi 密码 raspberry
   
     默认启动脚本
    默认情况下Linux系统在启动后会执行脚本 /etc/rc.local 里的内容
     vim /etc/rc .local 进行编辑
    打开后:
        cd /root
    ./startautolabor.
sh
    startautolabor.sh 是 Autolabor的自动启动脚本,该脚本的内容如下.
       source /opt/ros/indigo/setup.bash
    export ROS_MASTER_URI=
http://192.168.1.1:11311/
    export ROS_IP=
192.168.1.1
    roslaunch
/opt/ros/indigo/share/rosbridge_server/launch/rosbridge_websocket.launch
    其中第二行和第三行配置了ROS MASTER的IP地址和本机IP地址.

     最后一行启动了 rosbridge_websocket.launch 文件,这个文件内配置的节点实现控制底盘和手机通讯的功能.
    #注释,增加自己脚本
    cd /root

    #./startautolabor .sh
    myrobot
.sh
    也可以根据需要修改startautolabor.sh的内容,例如替换成自己需要的IP地址,执行自己需要的launch文件.
    默认roslunch文件:rosbridge_websocket.launch文件中,默认配置了两个节点
    ros_arduino_python
   rosbridge_websocket

  其中ros_arduino_python负责与下位机Arduino通讯,将cmd_vel指令转化为Arduino需要的PID指令,从而控制马达以指定速度旋转.同时会读取Arduino提供的编码器数据,向ROS系统发布里程计数据.
  rosbridge_websocket是实现手机遥控的核心部件,它负责实现手机端与ros系统的通讯功能.当手机端需要订阅某个topic时,会通过websocket像rosbridge_websocket发起订阅的申请, 由rosbridge向其通知ros系统内部topic新的消息. rosbridge 可以通过tcp udp 和 websocket 通讯, autolabor2中使用的websocket的实现方式.
 
    手机客户端:
    基于ROSBridge和Unity3D开发: http://autolabor.cn/autolabor2/dev-u3d/
    3、Autolabor 2.5
    在2代的基础上搭载rplidar a1改进版激光雷达,搭载Autolabor OS,Autolabor OS :超级账户 root 密码 autolabor

 

猜你喜欢

转载自blog.csdn.net/fantasysolo/article/details/80178681
今日推荐