• slam从入门到精通(稍复杂一点的运动控制)


    【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

            ros本身只是提供了一个框架,上面对应客户需求,下面对应各个传感器,中间就是各个算法和决策措施。但是robot本身要真正动起来的话,还是需要底盘开发板来配合实施的。本身ros的底层输出只能到cmd_vel这一个层次。再深入的开发,比如说用pid来实现cmd_vel的效果,这个就需要在底盘开发板上用rtos+pid之类的控制算法来实现了。

            所以,在还没有自己的实体robot之前,完全可以用turtlesim来仿真测试一下,看下真实的效果是什么样的。

    1、测试方法

            测试方法其实很简单。主要过程有三个步骤,第一个步骤打开roscore;第二个步骤把小乌龟仿真界面打开,即rosrun turtlesim turtlesim_node;第三个步骤就是编写小乌龟的控制代码了。控制方法就是前面一章讲过的python编写方法。编写完了,用rosrun beginner_tutorials vel_cmd.py来执行即可。

    2、小乌龟前进的方法

    vel_msg.linear.x = 0.4

    3、小乌龟后退的方法

    vel_msg.linear.x = -0.4

    4、小乌龟上下侧移的方法

    1. vel_msg.linear.y = 0.4 或者是
    2. vel_msg.linear.y = -0.4

    5、小乌龟原地顺时针或者逆时针运动的方法

    1. vel_msg.angular.z = 0.4 或者
    2. vel_msg.angular.z = -0.4

    6、小乌龟画圈的办法

    1. vel_msg.linear.x = 0.4
    2. vel_msg.angular.z = 0.4

            画圈还是比较有意思的,效果是这样的,

    7、小乌龟画正方形的办法

            要想让让小乌龟画出正方向,主要是有两点需要考虑。第一,在掉头之前,需要保持小乌龟的前进速度;第二,就是计数到了之后,需要立马设置angular.z,并且设置完了之后,迅速恢复为0。为了便于大家学习,这里给出完整的python代码,

    1. #!/usr/bin/env python3
    2. import rospy
    3. from geometry_msgs.msg import Twist
    4. if __name__ == "__main__":
    5. rospy.init_node("vel_node")
    6. vel_pub = rospy.Publisher("/turtle1/cmd_vel", Twist, queue_size=10)
    7. vel_msg=Twist()
    8. vel_msg.linear.x = 0.4
    9. #vel_msg.angular.z = 0.4
    10. n = 0
    11. rate = rospy.Rate(2)
    12. while not rospy.is_shutdown():
    13. n +=1
    14. vel_msg.angular.z = 0;
    15. if n==20:
    16. n = 0
    17. vel_msg.angular.z = 1.57*2
    18. print(n)
    19. vel_pub.publish(vel_msg)
    20. rate.sleep()

            实际运行的时候,效果是这样的,

  • 相关阅读:
    Vuex详解(五种状态)
    8.2 简单排序算法 (1) 插入排序 (2) 选择排序 (3) 冒泡排序 8.3 线性时间排序(1) 桶排序 (2) 计数排序 (3) 基数排序*(附代码)
    高清LED显示屏设计制作指南
    MySQL存储引擎:选择合适的引擎优化数据库性能
    【vscode新建文件设置默认代码以C语言为例】
    第11章Linux实操篇-Linux磁盘分区、挂载
    ZNYQ初体验,持续记录中...
    java-net-php-python-jsp学生社团信息演示录像2019计算机毕业设计程序
    uView tab切换组件 吸顶
    力扣每日一题每天自动邮件提醒
  • 原文地址:https://blog.csdn.net/feixiaoxing/article/details/133635796