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
         找了半天估计是跟错教程了,果断换






Published At
comments powered by Disqus