ROS下的自主导航机器人软硬件设计
目录
- 前言
- 环境篇
- 硬件篇
- 软件篇
- 通讯篇
- 软硬件配合篇
- gazebo仿真篇
前言
作者这段时间参与了ROS下的机器人软硬件设计,虽然有许多不足的地方,但还是想写下这篇文章作为记录,供有需要的同好参考,如有错误的地方请批评指正。
环境篇
主要环境准备如下:
- 工控机:ubuntu16.04
- ROS: kinetic
- Nvidia TX2:JetPack3.3
- Nvidia TX2:CUDA9
硬件篇
主要硬件选型如下:
- 工控机:研华UNO-2484G-6731AE/i7-6600U
- 控制站计算机:Thinkpad T560
- 激光雷达: Velodyne16线激光雷达 VLP-16
- 摄像头:ZED2、ZED
- 数传设备:Rocket-M2
- 机械臂:Kinova
- 电机:MAXON电机
- 电机驱动器:Elmo
- GNSS接收机:Novatel OEM719、Novatel OEM718d
- 惯导元件:SBG Ellipse E
- 图像处理器:Nvidia TX2
- 遥控手柄:Xbox游戏手柄
机器人主要拥有两个模式,分别为遥控和自主模式,两个模式下依赖的硬件以及硬件连接简图如下:
软件篇
主要介绍自主导航模式的实现,ROS下的自主导航一般依赖navigation功能包,不过这个包代码比较冗余,虽然可以通过插件的形式进行特定功能的修改,但是还是略略的感觉有点不方便,所以还是自己写了个框架,框架中的思想借鉴了navigation包,下图是ROS下该框架的功能节点图:
…………
…………
具体软件代码和实现思路等有时间另外写一篇介绍吧。0.0
通讯篇
由于涉及到ROS下的分布式多机通讯,原理与实践方式很简单,但是作者还是在这块遇到过一些小坑,所以独立写一篇进行介绍。
1、获取设备的IP地址和主机名
在终端中输入
ifconfig
可查看ip地址
若是通过网线连接,则在eth这一栏里找ip地址;
若是是通过wifi连接,在wlan这一栏找ip地址。
在终端中输入
hostname
可查看主机名
2、绑定设备的ip和主机名(可略)
在/etc/hosts可绑定ip与主机名,但需要通过gedit或vim进行修改(该文件是只读文件,无法直接修改)
若采用vim修改:
sudo chmod a+w /etc/hosts
vim /etc/hosts
按i进如修改模式,在开头加入绑定
id hostname
完成后,按下ESC键,输入 : wq 进行保存并退出
3、检测连接是否有误
若进行了第2步步骤,尝试直接ping对方主机名以测试连接
ping hostname
若没进行第2步,则ping ip地址,之后的操作中用ip地址代替主机名
ping ip
4、ROS_MASTER设置
设置可在终端中用以下命令设置
export ROS_MASTER_URI=http://主机的hostname:11311
export ROS_IP=http://本机hostname:11311
不过还是建议在.bashrc中进行修改
主从机都需修改.bashrc文件
在home目录中使用 Ctrl+h 显示隐藏文件,打开.bashrc文件
主机中加入
ROS_MASTER_URI=http://主机的hostname:11311
ROS_IP=http://主机的hostname:11311
从机中加入
ROS_MASTER_URI=http://主机的hostname:11311
ROS_IP=http://从机的hostname:11311
如果没有采用第2步绑定主机名和ip名,则以上hostname都用ip地址替代
以上内容部分参考ROS教程之network
5、其他
激光雷达和工控机之间也采用网口连接,也需进行通讯的配置,主要需要注意的是,雷达和工控机之间的通讯网段建议不与工控机和控制站计算机的通讯网段一样,另外有时会出现MAC地址和IP地址的映射表出错的情况,解决方法如下:
首先采用
arp -a
查看有无准确的地址映射,若没有,则
sudo arp -i enp3s0(具体以太网卡名) -s 192.168.1.201(ip地址) 60:76:88:10:59:3d(MAC地址名)
软硬件配合篇
1、ZED摄像头的使用
…………
…………
…………
2、TX2的使用
…………
…………
3、激光雷达的使用
…………
…………
gazebo仿真篇
…………
要去吃饭了,就先写到这里,等以后慢慢更新!
ROS下的自主导航机器人软硬件设计相关推荐
- ROS探索总结(十六)(十七)(十八)(十九)——HRMRP机器人的设计 构建完整的机器人应用系统 重读tf 如何配置机器人的导航功能
ROS探索总结(十六)--HRMRP机器人的设计 1. HRMRP简介 HRMRP(Hybrid Real-time Mobile Robot Platform,混合实时移动机器人平台 ...
- ROS中阶笔记(八):机器人SLAM与自主导航—机器人自主导航
ROS中阶笔记(八):机器人SLAM与自主导航-机器人自主导航 文章目录 1 ROS中的导航框架 1.1 move_base 1.1.1 基于move_base的导航框架 1.1.2 安装 1.2.3 ...
- 机器人(ROS)理实融合课程设计与开展
机器人(ROS)理实融合课程设计与开展 参赛信息表 姓名 *** 性别 男 教龄 5年 电话 *************** 邮箱 ***************** 单位 常熟理工学院 院系/部门 ...
- ADS16488驱动的软硬件设计以及ROS的驱动
ADS16488软硬件设计以及ROS的驱动 这篇博客的介绍ADIS16488的采集设备,主要包括stm32f103c8t6的电路板设计,stm32f103驱动程序介绍以及ROS驱动程序.所有的硬件资料 ...
- ROS下使用dobot越疆科技的M1-B1机器人进行定点抓取代码
ROS下使用越疆科技的M1-B1机器人进行定点抓取代码 #include <ros/ros.h> #include "ros/console.h" #include & ...
- Nvidia TX2+rplidar+autolabor pro1实现自主导航机器人
简介 程序实现了室内自主导航机器人.基本功能有激光SLAM建图.AMCL定位.机器人运动规划.车辆监控和任务规划. 底盘采用Autolabor公司的autolabor pro1,激光雷达选用rplid ...
- 一顿火锅钱+一台旧手机 = 自主导航机器人?
视学算法报道 参与:魔王.蛋酱.陈萍 转载自公众号:机器之心 50 美元 + 一台旧手机 = 自主导航机器人?Intel:Yes! 打造一台能够执行人体跟踪.自主导航等高阶任务的轮式机器人,需要多少钱 ...
- 深入理解ROS技术 【2】ROS下的模块详解(66-128)
概述: 本篇以字典方式,列出所有的Ros下模块,给出初步解释.并针对其重要程度,用星级标出重要性.这些概念解释中,还列出其它文章的链接. 模块表述: 65 interactive_marker_tut ...
- 基于气动人工肌肉的双足机器人关节设计
介绍了一种由气动人工肌肉构建的双足机器人关节,该关节利用气动人工肌肉的柔性特性,可以有效控制双足机器人快速行走或跑步时的落地脚冲击问题. 详细给出了气动人工肌肉的工作原理以及由其构成的关节系统的硬件架 ...
最新文章
- C++派生类构造函数调用规则
- zcmu-1646 盒子游戏
- java设计模式之UML①
- 2018年不能错过的 14 个 Java 库
- Java Swing模型视图适配器介体
- leetcode 190. 颠倒二进制位
- 广东省计算机应用专业综合理论知识,(计算机应用技术专业综合理论考试说明.doc...
- java pdf绘图_Java 在PDF文档中绘制图形
- 什么是3C和用户故事 (User Stories)
- mysql调用耗时_记一次服务器执行MySQL耗时问题
- Java中通过某一年的两个时间计算天数
- 传统零售商与B2C电子商务
- bucket list 函数解析
- 远程桌面连接时打不开计算机等,远程桌面打不开。怎么办?
- 电视android 操作系统,智能电视哪个系统好?四大操作系统对比分析
- TP FP TN FN
- Adobe Flash Player 9.0.45.0 简体中文官方下载(本地播放Flash Player播放器, 非插件)...
- python不等于语法
- vue展示dicom文件,医疗系统。
- 股指期货贴水收益研究的回测代码