zoukankan      html  css  js  c++  java
  • 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
             找了半天估计是跟错教程了,果断换






  • 相关阅读:
    Thinking in Java Reading Note(9.接口)
    Thinking in java Reading Note(8.多态)
    Thinking in Java Reading Note(7.复用类)
    SQL必知必会
    Thinking in Java Reading Note(5.初始化与清理)
    Thinking in Java Reading Note(2.一切都是对象)
    鸟哥的Linux私房菜笔记(1.基础)
    Thinking in Java Reading Note(1.对象导论)
    CoreJava2 Reading Note(2:I/O)
    CoreJava2 Reading Note(1:Stream)
  • 原文地址:https://www.cnblogs.com/sonictl/p/6735530.html
Copyright © 2011-2022 走看看