• ROS进阶学习手记 7 -- RViz仿真实例1



    【任务2】:
        用simulator: RViz 工具,完成对小车的建模,名字drive RViz = dvrv, 用 dvrv_node 发布topic和数据格式,向它发送位置指令,使它能接受键盘输入,并完成前进,后退,转弯90°功能。

        Topic, 还是拟用/turtle1/cmd_vel

        Message Type: geometry_msgs/Twist

        -----------

        1. RViz介绍

             参考:RViz Package Link: http://wiki.ros.org/rviz
                       内含:RViz User Guide:    http://wiki.ros.org/rviz/UserGuide
                                  RViz Tutorials:        http://wiki.ros.org/rviz/Tutorials

             rviz是一个显示机器人实体的工具,本身不具有模拟的功能,需要安装一个模拟器arbotix。但官网有关arbotix的资料很缺,跟另一个“10分钟上手玩ROS仿真”http://blog.exbot.net/archives/899, 对比一个不work的教程:ros_by_example_1_hydro.pdf  (6.2 Testing the Simulator),有兴趣可以研究5. Installing the ros-by-example Code以后,再玩6.2, 估计就work了。本次就不深入那个。

        2. 用ExBot机器人实验室的包来仿真

             打开terminal,输入命令:

          roslaunch exbotxi_rviz view_model.launch
             将会打开rviz,并加载查看ExBot XI移动机器人平台模型的配置。

             ExBot XI移动机器人平台兼容turtlebot了,这里就用turtlebot包的键盘控制node来控制机器人移动。

    Ctrl + C 结束掉前面的程序,关闭terminal,然后再打开3个terminal,分别输入下面的3个命令:

             roslaunch exbotxi_bringup fake_exbotxi.launch
             roslaunch exbotxi_rviz view_mobile.launch
    
             roslaunch turtlebot_teleop keyboard_teleop.launch
             跟这个“10分钟上手玩ROS仿真” 走完整个流程就好。

    第1条命令用于启动ExBot XI仿真机器人,启动成功后显示信息如下:

    view robot

    第2条命令用于打开ROS可视化工具rviz,并加载移动机器人视图配置。
           第3条命令用于启动键盘控制node。
           

    现在将光标focus在第3条命令的terminal窗口,便可以通过键盘控制仿真机器人了:

    view control


        3. 拆解ExBot机器人实验室的包

            首先打开fake_exbotxi.launch文件。(  ~/catkin_ws/src/exbot_xi/exbotxi_bringup/launch  )

      文件可以大概分为四个部分:

              (1) 从指定的包中加载urdf文件

              (2) 启动arbotix模拟器

              (3) 启动状态发布节点

              (4) tf 坐标系配置--本次可能没有

    <launch>
      <arg name="urdf_file" default="$(find xacro)/xacro.py '$(find exbotxi_description)/urdf/exbotxi.urdf.xacro'" />
      <param name="robot_description" command="$(arg urdf_file)" />
      
      <node name="arbotix" pkg="arbotix_python" type="arbotix_driver" output="screen">
        <rosparam command="delete" param="/arbotix" />
        <rosparam file="$(find exbotxi_bringup)/config/fake_irobot_create_arbotix.yaml" command="load" />
        <param name="sim" value="true"/>
        <remap from="cmd_vel" to="mobile_base/commands/velocity"/>
      </node>
      
      <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher">
        <param name="publish_frequency" type="double" value="8.0" />
      </node>
      
      <node pkg="topic_tools" type="mux" name="exbotxi_mux1" args="mobile_base/commands/velocity cmd_vel_mux/input/teleop" />
      <node pkg="topic_tools" type="mux" name="exbotxi_mux2" args="mobile_base/commands/velocity cmd_vel" />
    </launch>


             接下来的几个教程都要follow这个古月居的博客了,古月居的专栏:http://blog.csdn.net/column/details/ros-explore.html

            

            

            

            



        附录:安装arbotix

             安装 arbotix :  (如果联网有问题,还原网络设定,hosts文件有关的设定,http://blog.csdn.net/sonictl/article/details/46986565)

             $ sudo apt-get install ros-hydro-arbotix
    

             然后加入ros package路径:

             $ rospack profile

             参考:http://blog.csdn.net/scliu12345/article/details/44521327
             测试仿真器:

             $ roslaunch rbx1_bringup fake_turtlebot.launch

             遇到错误,[fake_turtlebot.launch] is neither a launch file in package [rbx1_bringup] nor is [rbx1_bringup] a launch file name
             找了半天估计是跟错教程了,果断换






  • 相关阅读:
    小程序文档
    display: flex;
    时间戳格式化
    transition-分栏按钮动画
    animation与transition区别
    放大镜
    原生js实现瀑布流效果
    Javascript获取数组中最大和最小值
    scss基础
    C/C++ XMPP/Jabber 客户端类库对比/点评 (转)
  • 原文地址:https://www.cnblogs.com/sonictl/p/6735530.html
Copyright © 2020-2023  润新知