ros---键盘控制机器人

一、前言

         无非是解决这几个问题问题:

                1、teleop.py的键盘控制文档的书写

                2、机器人模型文件xacro和控制xacro的launch文件的书写

二、问题解决思路

        1、首先是teleop.py键盘控制代码的书写。你有没有这样的问题?为什么teleop.py可以控制机器人的运动,teleop.py是怎样和机器人模型联系到一起的呢?最主要的是teleop.py文件发送了一个名字叫做“/cmd_vel”的话题,这样arbotix就可以接受到这个话题,然后用teleop.py控制的twist中的参数,来控制机器人运动。,,只需要理解为arbotix接收的是/cmd_vel”的话题,然后你就发送/cmd_vel”的话题就行了。

        【重点:怎样复用teleop.py中的代码?只需要修改teleop.py中话题参数为“/cmd_vel”就行】对于teleop.py文件的来源,我直接使用的是古大神的代码或者是下面一个小哥写的代码,链接在最下面。

        另外,为什么用python写键盘控制代码呢?因为不用编译,不用写恶心的cmakelist,所以我选择,直接能【rosrun+包+py】命令的python文件。

        在这里提一下twist消息,他是一个头文件twist.h,然后里面有几个变量,咱们就是修改这几个变量,其中twist中的消息代表着线速度和角速度。linear.x(x方向上的速度)指向机器人前方,linear.y指向左方,linear.z垂直向上满足右手系,平面移动机器人常常linear.y和linear.z均为0。angular.z(代表着围绕着z轴的角速度)代表平面机器人的角速度,因为此时z轴为旋转轴

        2、机器人模型文件xacro和控制xacro的launch文件的书写

                重点是:launch文件的书写。

<!--
	文件所实现的功能:打开rosmaster、打开机器人模型、开启arbotix控制(目的:可与键盘控制相结合)
	复用所需的改动:	1、改动机器人模型地址
					2、改动arbotix的配置文件(YAML文件)
					3、修改rviz的args参数(也就是配置以下xxx.rivz的地址) 

 -->
<launch>
	<!-- 这行代码就是输入你的机器人模型 -->
	<arg name="model" default="$(find xacro)/xacro --inorder '$(find mbot_description)/urdf/xacro/mbot_with_camera.xacro'" />
	<!-- 当default=“false”的时候,不显示gui关节的控制窗口 -->
	<arg name="gui" default="false" />

	<param name="robot_description" command="$(arg model)" />

    <!-- 设置GUI参数,显示关节控制插件 -->
	<param name="use_gui" value="$(arg gui)"/>

	<!-- 下面的node为arbotix的控制界面,arbotix_driver为arbotix_python包的东西,你要想用arbotix仿真,你就需要用这个arbotix这个包,可以下载或者复制 -->
	<node name="arbotix" pkg="arbotix_python" type="arbotix_driver" output="screen">
		<!-- 添加arbotix所需的配置文件,该文件是控制器配置 -->
        <rosparam file="$(find mbot_description)/config/fake_mbot_arbotix.yaml" command="load" />
        <!-- 在仿真环境下,需要配置sim为true -->
        <param name="sim" value="true"/>
    </node>

    <!-- 运行joint_state_publisher节点,发布机器人的关节状态  -->
	<node name="joint_state_publisher" pkg="joint_state_publisher" type="joint_state_publisher" />

	<!-- 运行robot_state_publisher节点,发布tf  -->
	<node name="robot_state_publisher" pkg="robot_state_publisher" type="robot_state_publisher" />

    <!-- 运行rviz可视化界面 -->
	<node name="rviz" pkg="rviz" type="rviz" args="-d $(find mbot_description)/config/mbot_arbotix.rviz" required="true" />

</launch>

、参考连接

ROS小白学习历程-使用arbotix控制器详解 - 灰信网(软件开发博客聚合)https://www.freesion.com/article/5427559408/        ROS入门教程-理论与实践(6.5.1 Arbotix使用流程) - 知乎

          用键盘控制机器人 (mrobot_teleop.py解读)_小将布冯的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Song ZiJian

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

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

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

打赏作者

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

抵扣说明:

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

余额充值