自主导航机器人制作十日谈学习心得(5)(6)

6.机器人操作系统的使用与配置

熟悉环境

  • Linux基础命令

    • 创建文件夹,查看文件夹
      • mkdir创建文件夹
      • ls显示文件夹
    • 进入文件夹
      • cd
    • 用“某某某”打开“某某某”
  • 贴士:忘了输啥用TAB(如果没有用可以用rospack profile修复一下) 忘了用法-help

  • ROS基础命令

    • 核心指令

      • roscore 运行ros
      • rosrun(运行) 哪里(功能包名) 的 APP(节点)
      • rostopic(话题工具箱) 工具 被修理的东西
    • 话题工具箱

      • rostopic

        -list (清单)

        -echo (接收消息)

        -pub (发送信息)

    • 配置功能包

      • 创建工作空间
      • 在这里插入图片描述
    • 安装ROS Arduino Bridge功能包

      • 功能包放在工作空间的src目录

      • 获取功能包

        -git的方式

        -复制黏贴的方式

    • 配置参数文件(my_arduino_param.yamll)

      • 在这里插入图片描述

      • 在这里插入图片描述

    • 调试功能包

      • 通过roslaunch启动功能包
      • 通过rostopic查看相关话题
      • 通过rostopic发布cmd_vel消息控制底盘运动
  • 一劳永逸:Linux/ROS——获取串口权限

  • Ctrl + Shift + T 以标签页打开终端

  • Ctrl + Alt + T 打开终端 但不是标签页

  • 虚拟机中写文件后退出:https://jingyan.baidu.com/article/5553fa8284fc7865a239341a.html

    • 要先按ESC再输入命令
      在这里插入图片描述

7.功能包与移动控制

1.常见的功能包

每次加入新的功能包都要catkin_make

  • usb_cam功能包
    • 调用摄像头并返回一个实时画面
  • teleop_twist_keyboard功能包
  • find_object_2d功能包
使用功能包的方法
  • 思考自己要实现什么样的功能
  • 查找有没有对应的功能包
  • 在查找结果中挑一两个进行了解

注意:所有系统文件夹opt路径下的文件夹,要编辑并保存,在打开时前面要加上sudo

/opt/ros/melodic/share/usb_cam/launch$ sudo gedit usb_cam-test.launch

要下载github上的代码可以用代码:(下载时要在路径下打开终端)

git clone http...(网址)

2.控制机器人进行移动

用teleop_twist_keyboard功能包来控制小乌龟
  1. 修改代码,将代码中/cmd_vel改成/turtle1/cmd_vel

  2. 通过转换命令:(在不改代码的情况下用别人的代码来实现自己的功能)

    rosrun topic_tools relay /cmd_vel /turtle1/cmd_vel
    
  3. ros Control应用的使用

    1. 前提条件:
      • 与手机/电脑在同一网络
    2. 打开App,新建机器人
    3. 配置ROS_MASTER_URL
      • 在ros终端输入ifconfig 得到IP地址
    4. 配置速度控制的话题
      • 从joy/cmd_vel
      • 到/cmd_vel

在这里插入图片描述
在这里插入图片描述

3.拓展与延伸

在这里插入图片描述

8.激光雷达与可视化工具

1.激光雷达传感器

1.1简介
  • 360距离传感器
1.2驱动(不管什么传感器都需要经历下边的流程)
  • 下载(wiki下载)
  • 编译
  • 运行
    • 固定结构(将功能包存放在src文件夹下)
    • 特定流程(source和编译)
1.3查看数据
  • rostopic echo /scan(比较反人类的数据呈现形式,要用可视化工具来看比较好)

在这里插入图片描述

  • view_rplidar.launch(友好型的数据呈现形式)

    roslaunch rplidar_ros view_rplidar.launch(会出现RVIZ可视化工具以及激光雷达数据)
    这个launch文件包含了另一个launch文件的启动程序
    

在这里插入图片描述

1.4激光雷达正方向

在这里插入图片描述

2.RVIZ可视化工具

  • 简介
    • 一种可视化工具
    • 必须配备参考系,插件以及正确的话题
  • 参考系
    • The Fixed Frame(固定坐标系):必须取相对世界坐标系禁止的物体建立坐标
    • The Target Frame(目标坐标系):可取地图(视角为第三视角);机器人坐标(视角为机器人第一视角)

在这里插入图片描述

3.RGBD深度相机传感器

3.1.驱动

网站下载(ROS2GO自带了)

3.2查看数据
  • 使用RQT可视化工具查看【深度画面】

    根据灰度信息来判断距离

在这里插入图片描述

  • 使用RVIZ可视化工具查看【三维点云】

在这里插入图片描述

4.ROS ECHO语音交互传感器

  • 需要12V的电池
  • 需要通过USB与PC端相连
4.1驱动
  • 同之前下载功能包
4.2查看数据
#查看答复
rosrun rosecho answer_echo.py
#查看问题
rosrun rosecho asr_echo.py

在这里插入图片描述

4.3语音识别

【第九节的第二部分】

5.拓展与延伸

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

9.自主导航

1.仿真环境中的自主导航

1.1 2D仿真环境Stage
  • 功能包:turtlebot_stage

    sudo apt-get install-melodic-turtlrbot*
    
  • 这些是由ACIM产生的粒子群,用来确定小车位置的

在这里插入图片描述

  • 图中青色灰色部分是“膨胀层”,假设也是障碍物,有利于导航

  • 目标点包括位置的姿态(运动到哪里和运动后朝哪个方向)

1.2 3D仿真环境Gazebo
  • 带有物理引擎
  • 地图也可以用三维软件来制作
  • 使用ROSECHO语音交互来指定导航点https://www.jianshu.com/p/3074d2f3a48d
注意
  • 运用RVIZ来查看信息要注意三点:参考系,插件和正确的话题

2.自主导航实例演示

2.1 自主导航的功能包(介绍两个)
  • movebase(导航)
  • gmapping(建立地图)
2.2 任务
  • 我是谁
  • 我在哪
  • 我要去哪

在这里插入图片描述

2.3 安装SLAM

在这里插入图片描述

2.4 判断串口名称
  • 因为小车零件中有几个是通过串口连接到电脑的,此时就要判断不同名字对应哪个零件

    在知道零件对应的串口名称后,在对应文件夹中也要进行检查并修改

2.5 运行
  • 启动slam时要注意取消代码中注释的部分,告诉底盘激光雷达在底盘的什么位置,激光雷达中心跟底盘的距离关系

在这里插入图片描述

3.拓展与延伸

在这里插入图片描述
在这里插入图片描述

10.学习拓展

1.find_object_2d功能包

1.1定义

根据名字以及查阅的信息来看,这个功能包实现的功能是物体识别,在启动相应节点后,可以显示出haar角点,然后进行拍照保存

在这里插入图片描述

还可以确定物体的位置

https://blog.csdn.net/zbr794866300/article/details/100538794

1.2 个人思考

既然这是一个物体识别的功能包,那么可以加以训练,根据特征点数量来判断物体的名称

1.3 拓展 --ros关于物体识别

https://blog.csdn.net/wajsy/article/details/80304502?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

2.底盘连接

  • 树莓派作为一个控制器,只需要连接Arduino和激光雷达即可,电源可以连接充电宝
  • Arduino连接了电机,TB6612,上边连接四根线作为输入输出
    • 输入:接收带有编码器的电机发送给它的消息
    • 输出:将控制信号间接发送给电机(需要先发送给TB6612,TB6612的作用是放大Arduino给它的控制信号,驱动电机)

3.面包板

3.1介绍

https://baike.baidu.com/item/%E9%9D%A2%E5%8C%85%E6%9D%BF/4703361?fr=aladdin

在第四讲中有介绍到面包板是竖的在一起,横的在一起,如下图所示

在这里插入图片描述

3.2 实例

在这里插入图片描述

圈圈的是连接电机,右边箭头指向的跟左边的线在同一条通路上,实现电路连接

4.roslaunch的作用

https://zhuanlan.zhihu.com/p/98663550

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值