ros-话题节点消息控制rviz中机械臂Publish Joint_State with Python to RVIZ-ros回炉再强学习(6)

ros-话题节点消息Publish Joint_State with Python to RVIZ-ros回炉再强学习(6)

笔者工作环境:
ubuntu16.04
ros-kinect

代码下载地址:https://gitee.com/qiuzhixiaoniao/arm_3.0.git

不使用moveit 的情况下,单纯时控制gazebo中机械臂运动,并且在rviz中订阅机械臂模型,跟随gazebo中机械臂完成同步运动已经实现了,然而并没有关注重点是机器人如何运行的,对通信机制没有仔细研究。
1.首先urdf模型在rviz中显示出来的节点消息通信。
在这里插入图片描述
joint_state_publisher_gui节点通过话题/joint_states向节点/robot_state_publihser发布消息,然后rviz通过订阅了tf这个话题,可以显示出来机械臂的模型。
这也就是我们看到的rviz中滑动每个关节的滑条可以控制机械臂每个关节运动。
通过代码控制rviz中的机械臂。
Publish Joint_State with Python to RVIZ
编写代码
rviz_move.py

#!/usr/bin/env python

import rospy
from sensor_msgs.msg import JointState
from std_msgs.msg import Header

def talker():
    pub = rospy.Publisher('joint_states', JointState, queue_size=10)
    rospy.init_node('joint_state_publisher')
    rate = rospy.Rate(10) # 10hz
    hello_str = JointState()
    hello_str.header = Header()
    hello_str.header.stamp = rospy.Time.now()
    hello_str.name = ['joint1', 'joint2', 'joint3', 'joint4','left_joint','right_joint']
    hello_str.position = [3, 0.5418, -1.7297, -3.1017,0.1,0.1]
    hello_str.velocity = []
    hello_str.effort = []
    pub.publish(hello_str)
    rate.sleep()

if __name__ == '__main__':
    try:
        talker()
    except rospy.ROSInterruptException:
        pass

首先将机械臂显示在rviz中,并且要杀死/joint_state_publisher_gui节点,如果不杀死这个节点,他将持续为机械臂发布节点话题消息。我们无法通过代码使得rviz中机器人运动。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

求知小菜鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值