简介
- 程序实现了室内自主导航机器人。基本功能有激光SLAM建图、AMCL定位、机器人运动规划、车辆监控和任务规划。
- 底盘采用Autolabor公司的autolabor pro1,激光雷达选用rplidar A1,Nvidia TX2 作为主控,操作系统Ubuntu 16.04,基于ROS kinetic实现。
- Github
配置步骤
1.安装依赖项
$ sudo apt-get install ros-kinetic-joy ros-kinetic-teleop-twist-joy ros-kinetic-teleop-twist-keyboard
$ sudo apt-get install ros-kinetic-gmapping ros-kinetic-move-base ros-kinetic-amcl \
ros-kinetic-map-server ros-kinetic-dwa-local-planner ros-kinetic-global-planner
2.建立ros工作空间,clone 代码
$ mkdir -p ~/auto_ws/src
$ cd ~/auto_ws/src
$ git clone https://github.com/kinglintianxia/autolabor_pro1.git
$ cd ~/auto_ws
$ catkin_make
代码树形图:
.
├── autolabor_pro1
├── autolabor_pro1_description
├── autolabor_pro1_driver
├── autolabor_pro1_nav
└── README.md
3.autolabor pro1 底盘配置
autolabor pro1底盘驱动下载与解压,代码中底盘驱动位于autolabor_pro1_driver目录下
$ wget http://autolabor.cn/file/AutolaborPro1_ROS_Driver_Package20180115.zip
$ unzip -d ./ AutolaborPro1_ROS_Driver_Package20180115.zip
autolabor_pro1_driver节点
autolabor_pro1_driver节点通过串口和底盘进行通讯,实现控制。具体通讯协议见AutolaborPro1产品使用手册.pdf
- 发布的topic:
轮式⾥程计:/wheel_odom (nav_msgs/Odometry),
剩余电池电量:/remaining_battery (std_msgs::Int32)
- 发布的tf:
odom->base_link
- 订阅的topic:
/cmd_vel (geometry_msgs/Twist)
添加udev rules
机器人中可能会使用多个串口,比如本例中底盘和rplidar都是串口通讯,所以在ubuntu /dev
目录下会出现 /dev/ttyUSB0 和 /dev/ttyUSB1,为了使程序识别正确对应的器件,使用udev rules对串口进行重映射并赋权限。格式如下:
KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE:="0666", SYMLINK+="autolabor_pro1"
获取Vendor id和Product id,有两种方法:
- 在能分辩串口器件的情况下,使用
$ lsusb
> ID `