完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
ros_control控制真实电机的方法
需要的硬件 用于下载程序的安装,此处使用arduino uno 电机驱动板,这里经常使用的L298N 光电带传感器器/霍尔元件 软件部分 和硬件交互的robot_hardware_interface.h,作用:声明接口类,构造器添加发布器用于关节发布角度,客户端用于接收返回角度。需要继承hardware_interface::RobotHW。 如下代码: 2.类的实现:robot_hardware_interface_node.cpp,在这里向ros注册控制器名称,通过服务的方式实现read方法:在cpp文件中声明客户端向服务器发起请求获得角度返回值。write方法:发布joint_effort_command_(目标值)到/joints_to_arduino话题。此处是定义功能,实际角度发布是在terminal使用rostopic pub发布的,当然也可以直接用脚本发布。注意joint_effort_command_表示目标的effor: 3.电机的驱动代码部署在arduino上:arduino_code.ino,通过订阅/joints_to_arduino话题获取关节角度命令,执行之后将关节状态(编码器读取)在/joint_states_from_arduino话题发布。 4.python节点订阅/joint_states_from_arduino 最新电机获取当前电机状态,启动/read_joint_state服务端,返回值就是状态包括pos和vel即角度和角速度。代码实现: 5.控制器配置文件controllers.yaml:定义控制器类型和pid参数。 6.通过launch文件加载控制器,spawner的参数args和yaml文件要对应。 7.启动launch文件,在终端中发布/single_joint_actuator/joint1_position_controller/command 角度值可以看到浏览器rviz中电机模型也更新状态。 8.可以使用rqt_gui 连续角度并观察/single_joint_actuator/joint1_position_controller/state/set_point和/single_joint_actuator/joint1_position_controller/state/process_value变化,使用动态pid调节pid参数。 以上是学习玫瑰的一些心得,及时记录下来。 |
|
|
|
只有小组成员才能发言,加入小组>>
2371 浏览 0 评论
8683 浏览 4 评论
36409 浏览 18 评论
4967 浏览 0 评论
24179 浏览 34 评论
1337浏览 2评论
1586浏览 1评论
1954浏览 1评论
1400浏览 0评论
1835浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-10 16:59 , Processed in 1.031665 second(s), Total 44, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号