当前位置: 首页 > news >正文

ROS学习第三十三节——Arbotix使用

https://download.csdn.net/download/qq_45685327/87718484

1.介绍

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

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

这个差速控制器在 arbotix_python 程序包中,完整的 arbotix 程序包还包括多种控制器,分别对应 dynamixel 电机、多关节机械臂以及不同形状的夹持器。

2.安装 Arbotix

方式1:命令行调用

sudo apt-get install ros-melodic-arbotix

将 <<VsersionName()>> 替换成当前 ROS 版本名称,如果提示功能包无法定位,请采用方式2。

方式2:源码安装

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

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

3.添加 arbotix 所需的配置文件

添加 arbotix 所需配置文件

control.yaml

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

launch 示例代码

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

代码解释:

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

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

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

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

roslaunch urdf01_rviz demo07_control.launch

选择odom坐标系

 打开一个终端,查看话题列表,并往/cmd_vel发布速度消息

/cmd_vel 是arbotix发布的一个订阅速度的节点

rostopilist
rostopic pub -r 10 /cmd_vel geometry_msgs/Twist "linear:x: 1.0y: 0.0z: 0.0
angular:x: 0.0y: 0.0z: 5.0" 

 

 

添加Odometry

http://www.lryc.cn/news/62234.html

相关文章:

  • ElasticSearch第十九讲 ES-best fields,most fields策略
  • Netty详解,5分钟了解,面试不用慌
  • Logstash学习
  • 【流畅的Python学习笔记】2023.4.22
  • 使用django_celery_beat在admin后台配置计划任务
  • ARP协议详解
  • 不同数量的预测框和Ground Truth框计算IoU
  • 偏好强化学习概述
  • 苹果笔到底有没有必要买?苹果平板电容笔排行榜
  • learn_C_deep_6 (布尔类型、布尔与“零值“、浮点型与“零值“、指针与“零值“的比较)
  • JavaScript日期库之date-fn.js
  • 五一假期出游攻略【诗与远方】
  • 怎样正确做web应用的压力测试?
  • Hibernate的持久化类
  • 【c语言】enum枚举类型的定义格式 | 基本用法
  • Python数据挖掘与机器学习
  • Java有用的书籍2
  • CTA进网测试《5G消息 终端测试方法》标准依据:YDT 3958-2021
  • [LeetCode复盘] LCCUP‘23春季赛 20230422
  • 传统燃油车的智控App远控响应速度优化方向几点思考
  • 回炉重造九---DNS服务器
  • UE4/5多人游戏详解(七、自定义委托,实现寻找会话和加入会话的函数,通过Steam进行两台电脑的联机)
  • 【数据库多表操作】sql语句基础及进阶
  • DPDK和RDMA的区别
  • 体验 Google Bard
  • MITA触摸屏维修WP4053米塔工控机控制屏维修
  • Nacos简介 安装 配置
  • 五、MyBatis各种查询功能
  • uni-app——picker组件的用法、时间、日期、地区选择器等
  • 什么情况需要考虑 mysql 分表