草莓采摘机器人——ROS导航(一) ROS Kinetic + Handsfree系统安装以及环境配置
草莓采摘机器人项目——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系统安装以及环境配置相关推荐
- 草莓采摘机器人——ROS导航(三)ROS自适应蒙特卡罗定位算法(ACML)理解
草莓采摘机器人--ROS导航(三) ROS自适应蒙特卡罗定位算法(AMCL)理解 在详细解释ROS工作原理与步骤之前, 我想先Mark一下自适应蒙特卡罗定位算法的原理与思想. 毕竟算法才是王道. AM ...
- 黄瓜采摘 matlab,黄瓜采摘机器人关键技术研究
成果名称:黄瓜采摘机器人关键技术研究 申请单位:中国农业大学 成果编号:鉴字[教TP2011]第002号 鉴定日期:2011年3月7日 学 科:农业工程 成果内容摘要: 黄瓜采摘机器人是利用机器人的多 ...
- ROS机器人导航仿真(kinetic版本)
准备工作: ubuntu 16.04系统;ROS kinetic版本;ROS包turtlebot,导航包rbx1,模拟器arbotix,可视化rviz 1.安装ubuntu 16.04系统与安装ROS ...
- Gazebo搭建虚拟环境完成ROS机器人定位导航仿真及YOLO检测识别标记物体
文章目录 前言 一.前期准备 (一)创建工作空间 (二)功能包racecar 二.Gazebo搭建自己的虚拟环境 (一)相关设置 (二)运行小车模型 (三)手动搭建环境 (四)运行创建环境 三.进行g ...
- 学习机器人SLAM导航核心技术(二)之ROS
第1章:ROS入门必备知识 ROS全称Robot Operating System,是一个用于机器人应用开发的开源框架.ROS提供了一系列工具和库,使得机器人开发者可以更轻松地编写软件,从而实现机器人 ...
- SLAM导航机器人零基础实战系列:(二)ROS入门——2.ROS系统整体架构
SLAM导航机器人零基础实战系列:(二)ROS入门--2.ROS系统整体架构 摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机 ...
- ROS导航仿真和多点导航3——实现机器人巡检功能
ROS导航仿真和多点导航3--实现机器人巡检功能 0.代码分享 1.主要结构梳理 2.任务初始化类class TaskInit 3.创建TaskTransfer对象,实现机器人从一个路径点到另一个路径 ...
- ROS机器人定位导航仿真(包括智能车、无人机飞行的仿真)
ROS智能车定位导航 一.准备阶段 1.下载智能车源码包 进入ROS工作区 cd ~/ROS/src/ 在终端中使用Git命令下载源码包 git clone https://github.com/xm ...
- SLAM+语音机器人DIY系列:(二)ROS入门——2.ROS系统整体架构
摘要 ROS机器人操作系统在机器人应用领域很流行,依托代码开源和模块间协作等特性,给机器人开发者带来了很大的方便.我们的机器人"miiboo"中的大部分程序也采用ROS进行开发,所 ...
最新文章
- 重磅 | 机器学习大神Bengio最新论文发布,专注RNN优化难题,将在NIPS提出新概念fraternal dropout
- (69)番外 —— 编写一个简易的反调试引擎
- 使用docker commit 来扩展一个image
- python两个装饰器执行顺序_python中多个装饰器的执行顺序详解
- P6154 游走 概率dp
- zk ui_高级ZK:异步UI更新和后台处理–第2部分
- 导轨式网管型工业交换机优势具体在哪里呢?
- C语言中变量的储存类别
- 为什么要使用Base64?
- HTML5动画软件工具编辑器 HTML5动画分类 工具推荐
- ActiveMQ消息重发
- 油猴安装使用[自留]
- 正则表达式学习笔记系列----1
- 随机抽样一致性算法(RANSAC)示例及源代码
- 126邮箱国外服务器,OUTLOOK连126邮箱能不能向国外新闻组投递邮件?哪些邮箱服务器可以?...
- imx6q的启动方式
- windows10 查看.theme文件
- matlab画基因表达热图,科学网—使用pheatmap软件绘制基因表达热图 - 陈振玺的博文...
- 关于视觉工业相机的50个问题
- 第六天 01-hydra工具windows远程桌面的密码爆破