base_control监听

 首先如果没有base_control这个包的话,到github下载:

cd /home/username/catkin_ws/src/
git clone https://github.com/LFZ1994/base_control.git
cd /home/username/catkin_ws
catkin_make

 然后在小车运行:

roslaunch base_control base_control.launch

这个包是用来监听/cmd_vel以及向串口写指令控制小车运动的,具体可以看代码理解。

键盘控制

 基于teleop_twist_keyboard.py实现了对小车运动的记录和控制,源代码在github,地址是https://github.com/Kyrie11/Suchow-AGV/blob/main/test_control.py

对代码大概解释一下,首先添加函数 OdomCallback,主要是用来监听话题/Odom,监控小车位置的变化,源码如下:

def OdomCallback(data):global pre_pose, cur_pose, acc_pose, pub_thread, tracecur_pose  = [data.pose.pose.position.x, data.pose.pose.position.y]if pre_pose != cur_pose:acc_pose[0] += cur_pose[0] - pre_pose[0]acc_pose[1] += cur_pose[1] - pre_pose[1]pre_pose = cur_poseelse:if acc_pose != [0.0, 0.0]:#print(acc_pose)context = str(data.header.stamp) + ' %s %s %s %s\n' % (acc_pose[0], acc_pose[1], pub_thread.speed, pub_thread.turn)trace.write(context)print(context)acc_pose = [0.0, 0.0]

 这个函数是订阅Odom话题时的回调函数,当位移数据过来的时候就会被调用,变量pre_pose,cur_pose,acc_pose都定义在了主函数中,分别表示前一时刻小车的位置,当前时刻小车的位置,以及累计移动的距离(包括前进位移和角度),trace是用来记录数据的文件。

cur_pose  = [data.pose.pose.position.x, data.pose.pose.position.y]

这一行用来取出当前时刻的x,y数据

 后面的if判断用来判断小车是不是在移动,如果在动的话就累计移动距离, acc_pose[0] 表示x轴移动距离(也就是前进方向的距离), acc_pose[1] 表示y轴累计移动距离(也就是转过的角度)。

 else后面的情况是指,当前一时刻和这一时刻小车的位置相同时,也就是小车没有运动时,如果累积移动的距离不为0,那么就把小车移动的距离记录下来,同时小车累计的运动清零,为下一次记录做准备。



我这里把文件保存在/home/nanorobot/trace.txt\textbf{/home/nanorobot/trace.txt}/home/nanorobot/trace.txt ,记录格式是 时间、x轴移动距离、y轴移动距离、线速度、角速度

运行

 最后只要在小车或者虚拟机运行

python test_control.py

或者自己编写launch文件就可以了,就可以实现通过键盘控制小车运动并且记录数据

基于ROS的AGV运动控制与状态记录(维嵌科技)相关推荐

  1. 基于ros的机器人运动控制相关学习(一)

    基础知识 机器人控制分层 底层包括三个级别:(1)发动机.编码器:(2)发动机控制器和驱动器:(3)驱动程序和pid控制器整合到一起的基控制器. 中间层:movebase级别,路径规划 高层:slam ...

  2. 【无人驾驶系列】基于ROS的无人驾驶系统

    本文是无人驾驶技术系列的第二篇.在上篇解析光学雷达(LiDAR)技术之后,本文着重介绍基于机器人操作系统ROS的无人驾驶系统.文中将介绍ROS以及它在无人驾驶场景中的优缺点,并讨论如何在ROS的基础上 ...

  3. 基于ROS节点多机协同(无人机/无人车)分析

    1.背景 无论是民用领域,还是军用领域.无人机/机器人的小型集群化,都是一个趋势.目前应用比较多的物流机器人,也是很多机器人协同配合完成任务. 随着技术的发展,进入机器人时代,机器与机器之间的通信协同 ...

  4. 基于ROS的Most Stars开源代码汇总(自动驾驶汽车+RGBDSLAMv2+ROS2+人识别与跟踪等)

    Star 200+ https://github.com/CPFL/Autoware 用于城市自主驾驶的开源软件. http://www.tier4.jp/ Autoware 用于城市自主驾驶的集成开 ...

  5. Ubuntu18.04基于ROS和PX4的仿真平台配置

    1.前言 作者只是一名双非本科院校飞控专业的大二学生,想以此记录一下自学飞控的经历,也希望能给刚刚入门的同学一些微薄的帮助. 这个环境的安装可以说是西天取经一般,但安装完后发现如果有领路的人,其实花费 ...

  6. 02论文分享与分析——基于ROS的移动机械臂底层规划及运动仿真

    [1]钱伟. 基于ROS的移动操作机械臂底层规划及运动仿真[D].哈尔滨工业大学,2015. 0.摘要 钱伟学长的论文在我学习轨迹规划初期就开始阅读,在学习过程中,也对于很多疑惑的问题,找寻到了答案, ...

  7. MPC轨迹跟踪——基于ROS系统和全向车实验平台

    前言 之前写过一次MPC,但代码框架非常杂乱,所以做出了更新.内存大一点吧,我的虚拟机内存8G,跑过一次仿真,后面重启就打不开了.建议备份一个新的虚拟机来跑仿真. 思路 思路就是/path_palnn ...

  8. 卡尔曼滤波五个公式_基于ROS的卡尔曼滤波姿态解算

    前段时间由于项目关系需要实现基于卡尔曼滤波的姿态解算,也就是说融合加速度计.陀螺仪及磁罗盘进行AHRS姿态解算,得到机器人的姿态角. 本文的学习需要有一定的卡尔曼滤波器基础,可以参考白巧克力亦唯心的卡 ...

  9. 基于ROS的蛇形机器人基本仿生运动与自主爬台阶控制

    摘要: 设计了一种带正交关节和主动轮组合的蛇形机器人.该机器人不仅能够实现基本的蜿蜒运动.纵向行波运动.横向翻滚运动和横向行波运动,且针对台阶式障碍物提出了一种自主爬越台阶的控制策略.机器人通过激光测 ...

  10. 基于ROS平台的STM32小车--汇总

    一切为了实现利用ros通过串口控制小车简单运动 基于ROS平台的STM32小车-4-上位机控制器 https://blog.csdn.net/weixin_39752599/article/detai ...

最新文章

  1. 网络安全导论课程-windows开启远程
  2. 虚拟机备份oracle异常,客户端连接虚拟机Oracle服务器异常
  3. AI公开课:19.05.16漆远-蚂蚁金服集团CF《金融智能的深度与温度》课堂笔记以及个人感悟—191017再次更新
  4. 【大话数据结构算法】直接插入排序
  5. 计算机科学课程体系核心内容,计算机科学教育的课程体系之研究
  6. 5G 兴起,物联网安全危机四伏
  7. 【数据库系统工程师】数据库系统工程师考情分析
  8. 【软件工程】课程设计库存管理系统
  9. EastFax USB SERVER推动天润集团U盾管理提效升级
  10. C++图书ISBN码校验
  11. aix oracle 10.2.0.1 升级 10.2.0.4,【江枫 】AIX平台升级到Oracle10.2.0.4的几个问题
  12. 5G 产业链重要细分投资领域
  13. 项目实训(十六)FPS游戏之PUN角色位移同步,动画状态同步
  14. 老子哲学与太极拳技击
  15. sap增加税码注意事项,进项税调整SAP相应调整
  16. 在线教育的鲶鱼“肥瘦不均”
  17. CouchDB安装与使用
  18. 【githubshare】基于 C 语言编写的一款 2D 太空射击游戏,已在 Windows 10 和 Ubuntu Linux 16.04 系统上跑通测试
  19. JVM 垃圾回收(GC)
  20. 在web-actix框架上实现上传文件

热门文章

  1. elasticsearch搜索IK分词器实现单个字搜索
  2. JavaScript验证手机号码、电子邮箱格式
  3. springboot写发送邮件报错Field javaMailSender in com.gzh.service.impl.IMailServiceImpl
  4. ps抠图怎么放大图片_ps中在使用抠图工具时如何用快捷键移动放大的原始图片?...
  5. 真正的英雄(罗纳德·里根在“挑战者号”航天飞机失事后的演讲词)
  6. 【常用快捷键大总结】教你背通所有键盘操作
  7. AI人工智能+区块链+物联网+大数据可视化平台建设综合解决方案
  8. Android判断世界各国手机号码合法性
  9. 畅玩树莓派4B(一)树莓派系统安装和SSH连接
  10. walking机器人仿真教程-激光导航-TEB算法导航