草莓采摘机器人项目——ROS导航 (一)

ROS+Handsfree系统以及环境安装

来到公司的第一个小项目, 组长让我先了解学习一下ROS系统,目标就是简单的运用ROS已经封装好的方法进行简单的蒙特卡罗算法导航。 公司用的机器是 HandsFree Stone 机器人平台: Stone机器人平台
具体改装后成品图如下:

Stone是一款采用前万向后差速驱动底盘布局的中型机器人开发平台。Stone采用了基于32位STM32F407芯片的多功能控制器OpenRE Board,拥有丰富的板载资源和二次开发接口,还集成了十轴惯性测量单元。Stone可支持多款主流的激光雷达、单板计算机、RGBD摄像头。Stone支持OpenRE机器人库和ROS系统,完善的开发教程,满足ROS开发、SLAM研究者的需求,适用于机器人相关领域的研究和产品Demo研发。

运用ROS已经封装好的方法进行简单的蒙特卡罗算法导航虽然简单, 但是对于了解Ubuntu系统并不深的我来说, 重新梳理学习了解ROS还是非常必要的。首先安装必要的系统与环境, 我选择使用Ubuntu16.04 + ROS Kinetic作为开发系统与环境。

Ubuntu系统安装

尝试过在Win10虚拟机安装ROS系统和Handsfree, 但是局限于在虚拟机下ROS的下载安装环境的时间过于漫长, 经常显示连接超时而导致下载错误。 迫于无奈准备给自己的笔记本做个双系统(Win10+Ubuntu16.04)。 网上教程无数, 我就不一一重复了。 在此附上我参考的方法连接,方法多且细:Win10+Ubuntu双系统安装

ROS Kinetic安装

重点来了, 开始安装ROS Kinetic版本。 在Ubuntu16.04下依次在终端执行以下指令以安装ROS Kinetic版本。

(1) 添加sources.list

$ sudo sh -c '. /etc/lsb-release && echo "deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main" > /etc/apt/sources.list.d/ros-latest.list'

(2) 添加keys

$ sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net:80 --recv-key 421C365BD9FF1F717815A3895523BAEEB01FA116

(3) 系统更新

$ sudo apt-get update
$ sudo apt-get upgrade

(4) 安装ROS Kinetic版本

$ sudo apt-get install ros-kinetic-desktop-full # Ubuntu 16.04

(5) 初始化rosdep

$ sudo rosdep init
$ rosdep update

(6) ROS环境配置

$ echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc

(7) 安装rosinstall

$ sudo apt-get install python-rosinstall

执行完以上语句后, 等待其下载安装。 下载时间依据网速而定, 在某一步骤下载失败的话重复执行当前命令语句直至下载成功即可。 所有步骤执行成功后,开始测试是否安装成功。

测试ROS

(1)打开一个终端启动 roscore:

$ roscore

(2)重新打开一个终端,输入:

$ rosrun turtlesim turtlesim_node

(3) 再打开一个终端,输入:

$ rosrun turtlesim  turtle_teleop_key

这时会有一个画有一只小乌龟的对话框,将鼠标聚焦在第三个终端窗口上,然后通过键盘上的方向键,进行操作小海龟,如果小海龟正常移动,并且在屏幕上留下自己的移动轨迹,如下图:

则说明ROS已经成功安装、配置、运行。

Handsfree 下载与安装

Handsfree简介

HandsFree 是一个面向机器人研究、开发的开源软硬件系统。它有完备与科学的框架,以优秀的嵌入式系统框架为核心,精良的电路、机械设计为支撑,帮开发人员快速实现多种形态的机器人。Handsfree系统包含机器人导航,SLAM,计算机视觉等模块,并拥有自己上层软件和调试系统。它也支持国外其他的开源项目,如 ROS, MPRT, PIXHAWK 等,这一切都为开发人员带来了无比的便捷。

Handsfree下载

HandsFree支持ROS的indigo版本和Kinetic,ubuntu14.04上只支持indigo,ubuntu16.04上只支持kinetic。

这里只介绍Kinetic版本的下载,indigo版本下载可以参考官网下载方法:handsfree-indigo版本下载
在官网上有两种Handsfree Kinetic版本的下载, 一种是一键安装脚本, 一种是一步步安装版本。 我曾试过一步步安装版本, 可能由于网速不佳以及其他问题导致一直下载失败。 无奈使用一键安装脚本, 一次成功。。。 具体为什么我也不清楚, 有大佬知道的话欢迎留言~ 谢谢!
一步步安装官网步骤网址如下: 一步步安装Hansfree-Kinetic

一键安装脚本

如果你的系统版本是ubuntu16.04,安装HandsFree kinetic: (推荐安装ubuntu16.04)

cd ~
wget https://raw.githubusercontent.com/HANDS-FREE/handsfree/master/Documentation/auto_install_all_ubuntu16.04.sh
bash auto_install_all_ubuntu16.04.sh

安装后的测试

安装成功后可以使用USB连接到机器人,然后在终端执行:

roslaunch handsfree_hw handsfree_hw.launch

如果一切正常,终端会显示:

auto-starting new master
process[master]: started with pid [9562]
ROS_MASTER_URI=http://Robot:11311setting /run_id to ffa41cce-05bd-11e8-8df0-001e64f02337
process[rosout-1]: started with pid [9575]
started core service [/rosout]
process[handsfree_hw_node-2]: started with pid [9585]
process[mobile_base/controller_spawner-3]: started with pid [9589]
process[robot_state_publisher-4]: started with pid [9591]
[ERROR] [1517317423.863958024]: hf link initialized failed, please check the hardware
[INFO] [WallTime: 1517317424.295263] Controller Spawner: Waiting for service controller_manager/load_controller
[INFO] [WallTime: 1517317424.298319] Controller Spawner: Waiting for service controller_manager/switch_controller
[INFO] [WallTime: 1517317424.301498] Controller Spawner: Waiting for service controller_manager/unload_controller
[INFO] [WallTime: 1517317424.304670] Loading controller: joint_state_controller
[INFO] [WallTime: 1517317424.351596] Loading controller: servo1_position_controller
[INFO] [WallTime: 1517317424.399306] Loading controller: servo2_position_controller
[INFO] [WallTime: 1517317424.419282] Loading controller: mobile_base_controller
[INFO] [WallTime: 1517317424.469234] Controller Spawner: Loaded controllers: joint_state_controller, servo1_position_controller, servo2_position_controller, mobile_base_controller
[INFO] [WallTime: 1517317424.479183] Started controllers: joint_state_controller, servo1_position_controller, servo2_position_controller, mobile_base_controller

打开新的终端,执行以下语句:

roslaunch handsfree_hw keyboard_teleop.launch

如果安装无误, 可移动过键盘进行遥控机器人行走。

ROS+Handsfree系统以及环境安装 over

草莓采摘机器人——ROS导航(一) ROS Kinetic + Handsfree系统安装以及环境配置相关推荐

  1. 草莓采摘机器人——ROS导航(三)ROS自适应蒙特卡罗定位算法(ACML)理解

    草莓采摘机器人--ROS导航(三) ROS自适应蒙特卡罗定位算法(AMCL)理解 在详细解释ROS工作原理与步骤之前, 我想先Mark一下自适应蒙特卡罗定位算法的原理与思想. 毕竟算法才是王道. AM ...

  2. 黄瓜采摘 matlab,黄瓜采摘机器人关键技术研究

    成果名称:黄瓜采摘机器人关键技术研究 申请单位:中国农业大学 成果编号:鉴字[教TP2011]第002号 鉴定日期:2011年3月7日 学 科:农业工程 成果内容摘要: 黄瓜采摘机器人是利用机器人的多 ...

  3. ROS机器人导航仿真(kinetic版本)

    准备工作: ubuntu 16.04系统;ROS kinetic版本;ROS包turtlebot,导航包rbx1,模拟器arbotix,可视化rviz 1.安装ubuntu 16.04系统与安装ROS ...

  4. Gazebo搭建虚拟环境完成ROS机器人定位导航仿真及YOLO检测识别标记物体

    文章目录 前言 一.前期准备 (一)创建工作空间 (二)功能包racecar 二.Gazebo搭建自己的虚拟环境 (一)相关设置 (二)运行小车模型 (三)手动搭建环境 (四)运行创建环境 三.进行g ...

  5. 学习机器人SLAM导航核心技术(二)之ROS

    第1章:ROS入门必备知识 ROS全称Robot Operating System,是一个用于机器人应用开发的开源框架.ROS提供了一系列工具和库,使得机器人开发者可以更轻松地编写软件,从而实现机器人 ...

  6. SLAM导航机器人零基础实战系列:(二)ROS入门——2.ROS系统整体架构

    SLAM导航机器人零基础实战系列:(二)ROS入门--2.ROS系统整体架构 摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机 ...

  7. ROS导航仿真和多点导航3——实现机器人巡检功能

    ROS导航仿真和多点导航3--实现机器人巡检功能 0.代码分享 1.主要结构梳理 2.任务初始化类class TaskInit 3.创建TaskTransfer对象,实现机器人从一个路径点到另一个路径 ...

  8. ROS机器人定位导航仿真(包括智能车、无人机飞行的仿真)

    ROS智能车定位导航 一.准备阶段 1.下载智能车源码包 进入ROS工作区 cd ~/ROS/src/ 在终端中使用Git命令下载源码包 git clone https://github.com/xm ...

  9. SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构

    摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人"miiboo"中的大部分程序也采用ROS进行开发,所 ...

最新文章

  1. 重磅 | 机器学习大神Bengio最新论文发布,专注RNN优化难题,将在NIPS提出新概念fraternal dropout
  2. (69)番外 —— 编写一个简易的反调试引擎
  3. 使用docker commit 来扩展一个image
  4. python两个装饰器执行顺序_python中多个装饰器的执行顺序详解
  5. P6154 游走 概率dp
  6. zk ui_高级ZK:异步UI更新和后台处理–第2部分
  7. 导轨式网管型工业交换机优势具体在哪里呢?
  8. C语言中变量的储存类别
  9. 为什么要使用Base64?
  10. HTML5动画软件工具编辑器 HTML5动画分类 工具推荐
  11. ActiveMQ消息重发
  12. 油猴安装使用[自留]
  13. 正则表达式学习笔记系列----1
  14. 随机抽样一致性算法(RANSAC)示例及源代码
  15. 126邮箱国外服务器,OUTLOOK连126邮箱能不能向国外新闻组投递邮件?哪些邮箱服务器可以?...
  16. imx6q的启动方式
  17. windows10 查看.theme文件
  18. matlab画基因表达热图,科学网—使用pheatmap软件绘制基因表达热图 - 陈振玺的博文...
  19. 关于视觉工业相机的50个问题
  20. 第六天 01-hydra工具windows远程桌面的密码爆破

热门文章

  1. 汤因比的《历史研究》所感之一
  2. aqistudy真气网JS逆向 + 数据采集(20220801)
  3. 【模板】仙人掌的基本概念和判定
  4. 18.5.4 分布式恢复
  5. LaTeX插入GIF的标准方法
  6. Navicat Premium 注册码
  7. python和C++代码实现模拟动态指针时钟
  8. 阿里云服务器可以解析到国外的域名吗
  9. 【高数+复变函数】Laplace变换的性质
  10. 什么是Arduino?Arduino的起源与架构简述