【ROS进阶篇】第九讲 基于Rviz和Arbotix控制的机器人模型运动

文章目录

  • 【ROS进阶篇】第九讲 基于Rviz和Arbotix控制的机器人模型运动
  • 前言
  • 一、Arbotix功能包介绍
    • 1. 基本简介:
    • 2. 安装教程:
  • 二、控制运动流程
    • 1. 准备工作
    • 2. 编写并启动launch文件
  • 总结

前言

在上一节博客中我们系统的学习了对于URDF文件的编程优化方法,即Xacro,一种XML的优化语言,通过对于基本概念、语法详解、代码实例的讲述了解了如何提升URDF文件的复用性、安全性和高效性,本节文章主要介绍在Rviz环境下如何使用Arbotix控制机器人模型运动。

一、Arbotix功能包介绍

  • 问题引入:

在先前的研究中,我们通过URDF文件实现了静态创建机器人模型,并可以通过可视化软件Rviz观察并实现基本操作,那么想要进一步的仿真操作,就一定需要完成对于机器人模型的运动控制,这里就引入一个对应的功能包来完成目标要求。

1. 基本简介:

Arbotix:Arbotix 是一款控制电机、舵机的控制板,并提供相应的 ros 功能包,这个功能包的功能不仅可以驱动真实的 Arbotix 控制板,它还提供一个差速控制器,通过接受速度控制指令更新机器人的 joint 状态,从而帮助我们实现机器人在 rviz 中的运动。

注:此差速控制器位于python程序包中,完整程序包还包括多种控制器,对应电机、机械臂和夹持器等;

2. 安装教程:

  1. 命令行直接调用:
  sudo apt-get install ros-noetic-arbotix
  1. git安装源码:
 git clone https://github.com/vanadiumlabs/arbotix_ros.git

\qquad在下载后调用catkin_make编译完成即可;

二、控制运动流程

1. 准备工作

  • 创建功能包,并编写URDF文件/通过Xacro进行优化

  • 添加Arbotix配置:配置文件control.yaml如下
# 该文件是控制器配置,一个机器人模型可能有多个控制器,比如: 底盘、机械臂、夹持器(机械手)....
# 因此,根 name 是 controllercontrollers: {# 单控制器设置base_controller: {#类型: 差速控制器type: diff_controller,#参考坐标base_frame_id: base_footprint, #两个轮子之间的间距base_width: 0.2,#控制频率ticks_meter: 2000, #PID控制参数,使机器人车轮快速达到预期速度Kp: 12, Kd: 12, Ki: 0, Ko: 50, #加速限制accel_limit: 1.0 }
}

2. 编写并启动launch文件

  • 编写launch文件:

\qquad基本要求:
\qquad1. 调用了arbotix_python 功能包下的 arbotix_driver 节点
\qquad2. 通过 file 加载配置文件获取机器人信息以便驱动运动实现
\qquad3. 配置 sim 为 true,完成仿真环境要求

<launch><!--1.在参数服务器中载入urdf--><!--<param name="robot_description" textfile="$(find urdf01_rviz)/urdf/xacro/demo05_car_base.urdf" />--><param name="robot_description" command="$(find xacro)/xacro  $(find urdf01_rviz)/urdf/xacro/car.urdf.xacro" /><!--2.启动rviz--><node pkg="rviz" name="rviz" type="rviz" args="-d $(find urdf01_rviz)/config/show_mycar.rviz"/><!--3.关节状态发布节点--><node pkg="joint_state_publisher" type="joint_state_publisher" name="joint_state_publisher"/><!--4.机器人状态发布节点--><node pkg="robot_state_publisher" type="robot_state_publisher" name="robot_state_publisher"/><!--集成 arbotix 运动控制节点,并且加载参数--><node pkg="arbotix_python" type="arbotix_driver" name="driver" output="screen"><rosparam command="load" file="$(find urdf01_rviz)/config/control.yaml" /><param name="sim" value="true" /></node>
</launch>
  • 启动launch文件:使用roslaunch命令即可
  • 配置Rviz:修改Fixed Frame以及TF、Odometry下的Topic设置为odom等

  • 控制运动:此时话题/cmd_vel出现,故我们可以通过发布话题消息或者输入命令完成运动控制,效果如下:
rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}'

注意:想要进一步操作可以修改Rviz的设置:

  1. 显示小车运动方向:将Odometry下status下的topic修改为/odom;
  2. 更改运动方向表示的箭头:将Odometry下shape的shaft radius进行修改;
  3. 显示机器人坐标系:开启TF箭头;

总结

  • 声明:本节博客部分参考了CSDN用户赵虚左的ROS教程,本文主要内容是使用Arbotix功能包在Rviz环境下完成对于机器人静态模型的运动控制,从基本简介、安装教程到最后的实际控制示例,从实践中深入浅出,体会如何实际控制机器人运动。下节将会介绍在Gazebo中的机器人模型仿真,敬请期待。

【ROS进阶篇】第九讲 基于Rviz和Arbotix控制的机器人模型运动相关推荐

  1. 开发工具篇第九讲:菜鸟入坑指南

    摘要:本文是开发工具篇第九讲:菜鸟入坑指南.针对新人上手慢的问题,写了这篇入坑指南,方便自己回顾,总结.本文分为四个部分,分别为jenkins使用技巧:常用软件操作命令:开发手册:调试手册.主要材料来 ...

  2. Rviz中控制机器人模型运动(arbotix)

    前言: 通过 URDF 结合 rviz 可以创建并显示机器人模型,不过,当前实现的只是静态模型,如何控制模型的运动呢?在此,可以调用 Arbotix 实现此功能. 简介: Arbotix:Arboti ...

  3. 6.5 Rviz中控制机器人模型运动

    ROS入门 6.5 Rviz中控制机器人模型运动 <ROS入门-理论与实践>视频教程镇楼 通过 URDF 结合 rviz 可以创建并显示机器人模型,不过,当前实现的只是静态模型,如何控制模 ...

  4. 打开了ros中的rviz,显示不了机器人模型

    问题:可以打开gazebo,但是打开rviz后,显示不了机器人模型. 报错情况如下图所示: 解决:看看自己的launch文件是否加了以下的节点: <node pkg="joint_st ...

  5. MySQL进阶篇(01):基于多个维度,分析服务器性能

    本文源码:GitHub·点这里 || GitEE·点这里 一.服务器性能简介 1.性能定义 服务器性能优化是一项非常艰巨的任务,当然也是很难处理的问题,在写这篇文章的时候,特意请教下运维大佬,硬件工程 ...

  6. [Python公开课]零基础玩转Python进阶篇----第九节:Python的异常分析及解决

  7. Kotlin-简约之美-进阶篇(四):访问权限控制

    文章目录 默认的访问修饰符 限制修饰符 可见性修饰符 sealed密封类 学习交流 默认的访问修饰符 在Kotlin世界中,无任何修饰的class.方法,等等默认就是public的,所以是隐式的 pu ...

  8. 目标检测YOLO实战应用案例100讲-基于小样本的目标检测与跟踪模型研究

    目录 基于小样本目标检测方法的研究 (1)基于数据增强的方法 (2)基于度量学习的方法

  9. 【ROS】—— 机器人系统仿真 —Rviz中控制机器人模型运动与URDF集成Gazebo(十五)

    文章目录 前言 1. Arbotix使用流程 1.1 安装 Arbotix 1.2 创建新功能包,准备机器人 urdf.xacro 文件 1.3 添加 Arbotix 配置文件 1.4 编写 laun ...

  10. 《上古天真论》第九讲文字版

    上古天真论篇第九讲 主讲:徐文兵  主持:梁  冬 播出时间:2009-02-07  23:00-24:00 经文:四八筋骨隆盛,肌肉满壮.五八,肾气衰,发堕齿槁.六八阳气衰竭于上,面焦,发鬃颁白.七 ...

最新文章

  1. 一年后斩获腾讯T3,层层深入
  2. android的消息处理机制(图+源码分析)——Looper,Handler,Message
  3. 改工作空间_打拼六年换的新房,装修花了17万,飘窗改柜子很实用,谁见过?...
  4. mybatis应用(三)优化
  5. 每天一道LeetCode-----给定字符串s和字符数组words,在s中找到words出现的位置,words内部字符串顺序无要求
  6. eoiioe linux下解压命令大全
  7. GPS NMEA 0183 4.10协议/GPS Linux串口驱动
  8. 微软成Eclipse基金会战略伙伴
  9. 数据库:PostgreSQL:客户端安装
  10. java 文本编码_Java文件编码
  11. CKEditor配置及使用
  12. 【数据库系统】考虑题4所示的日志记录,假设开始时A、B、C的值都是0 (1) 如果系统故障发生在14之后,写出系统恢复后A、B、C的值
  13. odoo14调用akshare库报错:Fatal process out of memory: Failed to reserve memory for new V8 Isolate
  14. ubuntu 19.04 与win10双系统 搜狗输入法安装教程
  15. vue-chartjs
  16. android获取当前系统语言
  17. PX4源码分析2:飞控系统控制流程简述
  18. Synchro Arts团队获美国电影艺术与科学学院Academy奖
  19. 专题页面该怎么优化才对?
  20. 电路PCB制板原理图基本流程

热门文章

  1. docker安装文档(多种方式)
  2. 六一小学生计算机创新活动总结,2020小学生六一儿童节活动总结
  3. PTA---约分最简分式 (10 分)
  4. 返利平台php,MallWWI新模式返利商城系统 php版 v1.2.7
  5. 制作u盘winpe启动盘_u盘ghost,教你如何制作运行u盘ghost启动盘
  6. 个人网站怎么建设,个人网站建设流程
  7. 阿里云上创建 对象存储oss
  8. 非图形方式静默安装与配置 Oracle 11g RAC(7)——安装 grid 软件前的准备工作
  9. 微信文件夹的dat文件怎么打开_微信文件夹里的照片文件是DAT格式怎么才能打开?...
  10. Assembler - Debug