Rviz中控制机器人模型运动(arbotix)_rviz 窗口视角如何根据模型运动-程序员宅基地

技术标签: ros笔记  

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

简介:
Arbotix:Arbotix 是一款控制电机、舵机的控制板,并提供相应的 ros 功能包,这个功能包的功能不仅可以驱动真实的 Arbotix 控制板,它还提供一个差速控制器,通过接受速度控制指令更新机器人的 joint 状态,从而帮助我们实现机器人在 rviz 中的运动。
这个差速控制器在 arbotix_python 程序包中,完整的 arbotix 程序包还包括多种控制器,分别对应 dynamixel 电机、多关节机械臂以及不同形状的夹持器。

Arbotix使用流程:
接下来,通过一个案例演示 arbotix 的使用。
需求描述:
控制机器人模型在 rviz 中做圆周运动
结果演示:
在这里插入图片描述
实现流程:
1.安装 Arbotix
方式1:命令行调用

sudo apt-get install ros-<版本>-arbotix

方式2:源码安装

先从 github 下载源码,然后调用 catkin_make 编译

git clone https://github.com/vanadiumlabs/arbotix_ros.git

2.创建新功能包,准备机器人 urdf、xacro 文件
urdf 和 xacro 调用上一讲实现即可

3.添加 Arbotix 配置文件

# 该文件是控制器配置,一个机器人模型可能有多个控制器,比如: 底盘、机械臂、夹持器(机械手)....
# 因此,根 name 是 controller
controllers: {
   # 单控制器设置
   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 
    }
}

4.编写 launch 文件配置 Arbotix

<node name="arbotix" pkg="arbotix_python" type="arbotix_driver" output="screen">
     <rosparam file="$(find my_urdf05_rviz)/config/hello.yaml" command="load" />
     <param name="sim" value="true" />
</node>

代码解释:

<node> 调用了 arbotix_python 功能包下的 arbotix_driver 节点

<rosparam> arbotix 驱动机器人运行时,需要获取机器人信息,可以通过 file 加载配置文件

<param> 在仿真环境下,需要配置 sim 为 true

5.启动 launch 文件并控制机器人模型运动

启动launch:roslaunch xxxx …launch

6.配置 rviz:
在这里插入图片描述
控制小车运动:

此时调用 rostopic list 会发现一个熟悉的话题: /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}}'

现在,小车就可以运动起来了。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_54989626/article/details/119282082

智能推荐

(node-red)pm2的日志管理及使用pm2-logrotate进行日志分割_pm2 日志-程序员宅基地

文章浏览阅读1.8k次,点赞20次,收藏22次。通过pm2的日志管理插件(pm2-logrotate)实现node-red的日志分割管理_pm2 日志

运动耳机哪个品牌好?2022年值得入手的运动耳机推荐-程序员宅基地

文章浏览阅读150次。音质的表现还是很不错的,声音很清晰,听感有很大改善。越来越多人加入了运动中,运动不仅可以释放压力,还能加快新陈代谢,身体更加健康,当然,随着耳机越来越各样化,越来越难挑选,大家都不知道怎么找了,一款好的耳机其实并不难找,一般挑选耳机首先需要看它的防水性能高不高,高防水的耳机可以延长耳机的寿命,并且佩戴起来要稳固,运动的时候不会轻易甩掉,最后是音质的表现,下面我给大家分享几款还不错的运动耳机,看看有没有您喜欢的那款。采用的蓝牙5.0芯片,确保连接可以稳定,它的防水性能支持IPX4级,日常汗水是可以抵御的。

一种图像增广(Image Augmentation)方式 Mix Up 算法 附有代码解析_mix up增光-程序员宅基地

文章浏览阅读9.3k次,点赞3次,收藏33次。这是对facebook研究团队的一篇文章 Mixup: Beyond Empirical Risk Minimization 的解读这篇文章相对于之前提到的Sample pariring来说就不那么神奇了,因为毕竟文章作者在里面有一些相关理论的推导。文章开头通篇讲的是ERM也就是经验风险最小化原则是整个机器学习遵循的原则,作者正是基于此思想才提出了MixUp的方法。在一般的机器学习任务中,比如..._mix up增光

MATLAB 1-程序员宅基地

文章浏览阅读67次。short,long,shortE,longE,bank(两位),hex(十六进制),rat (分数)5.关键字:ans,i,j(虚数),inf(正无穷),eps,nan(未定式),pi。5.k=find(条件,n),返回满足条件的非零的前n个坐标。3.B=find(A==x),返回所有等于x的位置的编号。a(行,:)或a(:,列),冒号表示这一行或列的所有。2.[X,Y]=find(A),返回A非零的行和列。4.[X,Y]=find(A==x),返回行列。1.B=find(A),返回A中非零数的编号。

Week2实验C题 打牌_第一行输入两个整数,代表牌的数量n和牌面值之和的限制max-程序员宅基地

文章浏览阅读197次。题目:牌局由四个人构成,围成一圈。我们称四个方向为北 东 南 西。对应的英文是North,East,South,West。游戏一共由一副扑克,也就是52张构成。开始,我们指定一位发牌员(东南西北中的一个,用英文首字母标识)开始发牌,发牌顺序为顺时针,发牌员第一个不发自己,而是发他的下一个人(顺时针的下一个人)。这样,每个人都会拿到13张牌。现在我们定义牌的顺序,首先,花色是(梅花)<(方..._第一行输入两个整数,代表牌的数量n和牌面值之和的限制max

mtk 平台 TP 驱动框架对复位和中断的封装_mtk tp gpio-程序员宅基地

文章浏览阅读264次。介绍 mtk 平台 TP 驱动框架对触摸 IC 复位和中断的封装,并以 focaltech IC 为例介绍 TP 驱动对 TP 驱动框架的使用。_mtk tp gpio

随便推点

[译]Kinect for Windows SDK开发入门(五):景深数据处理 下-程序员宅基地

文章浏览阅读60次。1. 简单的景深影像处理 在上篇文章中,我们讨论了如何获取像素点的深度值以及如何根据深度值产生影像。在之前的例子中,我们过滤掉了阈值之外的点。这就是一种简单的图像处理,叫阈值处理。使用的阈值方法虽然有点粗糙,但是有用。更好的方法是利用机器学习来从每一帧影像数据中计算出阈值。Kinect深度值最大为4096mm,0值通常表示深度值不能确定,一般应该将0值过滤掉。微软建议在开发中使用1220...

JavaScript 总结【面试笔记 + 经典面试题 ,超全前端中高级面试复习大纲-程序员宅基地

文章浏览阅读823次,点赞19次,收藏18次。阿里十分注重你对源码的理解,对你所学,所用东西的理解,对项目的理解。CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】

python爬虫入门--odoo内应用_odoo爬虫-程序员宅基地

文章浏览阅读506次。此文章向大家介绍一个python入门级爬虫,本人也是初次尝试,如有缺陷,欢迎指正。_odoo爬虫

关于DevExpress2011.1.8版本和NetFramework4.5框架的不兼容问题解决方法-程序员宅基地

文章浏览阅读224次。问题:安装完Vs2012后,发现DevExpress WPF的GridControl控件就不能正常加载了。折腾了好久好久,找控件提供商都解决不了这个问题,报这个错误: ”对类型“DevExpress.Xpf.Grid.GridControl”的构造函数执行符合指定的绑定约束的调用时引发了异常。“解决办法: 经过google查找(不得不说这方面google还是更好!)安..._devexpress 11.1.8

高德地图设置可视区域边界_高德地图设置显示边界-程序员宅基地

文章浏览阅读2.3w次。1、方法介绍2、示例代码 2.1通过include来设置可视区域 2.2通过西南角坐标和东北角坐标来设置可视区域_高德地图设置显示边界

亚马逊云科技 Build On-这可能是我离Amazon最近的一次_亚马逊colab-程序员宅基地

文章浏览阅读4.1k次。在Amazon云服务活动中,你能收到到什么。_亚马逊colab

推荐文章

热门文章

相关标签