ROS探索总结(四)——简单的机器人仿真

  • 内容
  • 评论
  • 相关

前边我们已经介绍了ROS的基本情况,以及新手入门ROS的初级教程,现在就要真正的使用ROS进入机器人世界了。接下来我们涉及到的很多例程都是《ROS by Example》这本书的内容,我是和群里的几个人一起从国外的亚马逊上买到的,还是很有参考价值的,不过前提是你已经熟悉之前的新手教程了。

一、ROS by Example


        这本书是关于国外关于ROS出版的第一本书,主要针对Electric和Fuerte版本,使用机器人主要是TurtleBot。书中详细讲解了关于机器人的基本仿真、导航、路径规划、图像处理、语音识别等等,而且在google的svn上发布了所有代码,可以通过以下命令下载、编译:

  1. svn checkout http://ros-by-example.googlecode.com/svn/trunk/rbx_vol_1  
  2. rosmake rbx_vol_1  
  3. rospack profile          //加入ROS package路径

二、rviz简单机器人模拟

       1、安装机器人模拟器                      

       rviz是一个显示机器人实体的工具,本身不具有模拟的功能,需要安装一个模拟器arbotix。

  1. svn checkout http://vanadium-ros-pkg.googlecode.com/svn/trunk/arbotix  
  2. rosmake arbotix

    

       2、TurtleBot机器人的模拟

       在书中的rbx_vol_1包里已经为我们写好了模拟的代码,我们先进行实验,完成后再仔细研究代码。
       机器人模拟运行:
  1. roscore  
  2. roslaunch rbx1_bringup fake_pi_robot.launch
 
       然后在终端中可以看到,机器人已经开始运行了,打开rviz界面,才能看到机器人实体。
  1. rosrun rviz rviz -d `rospack find rbx1_nav`/sim_fuerte.vcg
 
       后面的参数是加载了rviz的配置文件sim_fuerte.vcg。效果如下:
  

       此时的机器人是静止的,需要发布一个消息才能让它动起来。

  1. rostopic pub -r 10 /cmd_vel geometry_msgs/Twist '{linear: {x: 0.2, y: 0, z: 0}, angular: {x: 0, y: 0, z: 0.5}}'


      
       如果要让机器人停下来,需要在中断中按下“Ctrl+c”,然后输入:

  1. rostopic pub -1 /cmd_vel geometry_msgs/Twist '{}'

       也可以改变发送的topic信息,使机器人走出不同的轨迹。

三、实现分析

       按照上面的仿真过程,我们详细分析每一步的代码实现。  

       1、TurtleBot机器人运行

       机器人运行使用的是launch文件,首先打开fake_turtlebot.launch文件。
  1. <launch>  
  2.   <param name="/use_sim_time" value="false" />  
  3.  
  4.   <!-- Load the URDF/Xacro model of our robot -->  
  5.   <arg name="urdf_file" default="$(find xacro)/xacro.py '$(find turtlebot_description)/urdf/turtlebot.urdf.xacro'" />  
  6.  
  7.   <param name="robot_description" command="$(arg urdf_file)" />  
  8.  
  9.   <node name="arbotix" pkg="arbotix_python" type="driver.py" output="screen">  
  10.       <rosparam file="$(find rbx1_bringup)/config/fake_turtlebot_arbotix.yaml" command="load" />  
  11.       <param name="sim" value="true"/>  
  12.   </node>  
  13.  
  14.   <node name="robot_state_publisher" pkg="robot_state_publisher" type="state_publisher">  
  15.       <param name="publish_frequency" type="double" value="20.0" />  
  16.   </node>  
  17.  
  18.   <!-- We need a static transforms for the wheels -->  
  19.   <node pkg="tf" type="static_transform_publisher" name="odom_left_wheel_broadcaster" args="0 0 0 0 0 0 /base_link /left_wheel_link 100" />  
  20.   <node pkg="tf" type="static_transform_publisher" name="odom_right_wheel_broadcaster" args="0 0 0 0 0 0 /base_link /right_wheel_link 100" />  
  21.  
  22. </launch>

        文件可以大概分为四个部分:
        (1) 从指定的包中加载urdf文件
        (2) 启动arbotix模拟器
        (3) 启动状态发布节点
        (4) tf坐标系配置

2、rviz配置文件

       在打开rviz的时候需要加载一个.vcg的配置文件,主要对rviz中的插件选项进行默认的配置。这里打开的是sim_fuerte.vcg文件,由于文件比较长,这里只列举重点的部分。

  1. Background\ ColorB=0.12549  
  2. Background\ ColorG=0.12549  
  3. Background\ ColorR=0.12549  
  4. Camera\ Config=158.108 0.814789 0.619682 -1.57034  
  5. Camera\ Type=rviz::FixedOrientationOrthoViewController  
  6. Fixed\ Frame=/odom  
  7. Grid.Alpha=0.5  
  8. Grid.Cell\ Size=0.5  
  9. Grid.ColorB=0.941176  
  10. Grid.ColorG=0.941176  
  11. Grid.ColorR=0.941176  
  12. Grid.Enabled=1  
  13. Grid.Line\ Style=0  
  14. Grid.Line\ Width=0.03  
  15. Grid.Normal\ Cell\ Count=0  
  16. Grid.OffsetX=0  
  17. Grid.OffsetY=0  
  18. Grid.OffsetZ=0  
  19. Grid.Plane=0

        上面的代码是配置背景颜色和网格属性的,对应rviz中的选项如下图所示。

       

        其中比较重要的一个选项是Camera的type,这个选项是控制开发者的观察角度的,书中用的是FixedOrientationOrthoViewController的方式,就是上面图中的俯视角度,无法看到机器人的三维全景,所以可以改为OrbitViewController方式,如下图所示:


3、发布topic

        要让机器人动起来,还需要给他一些运动需要的信息,这些信息都是通过topic的方式发布的。
        这里的topic就是速度命令,针对这个topic,我们需要发布速度的信息,在ROS中已经为我们写好了一些可用的数据结构,这里用的是Twist信息的数据结构。在终端中可以看到Twist的结构如下:

             
        用下面的命令进行消息的发布,其中主要包括力的大小和方向。

  1. [plain] view plain copy Background\ ColorB=0.12549  
  2. Background\ ColorG=0.12549  
  3. Background\ ColorR=0.12549  
  4. Camera\ Config=158.108 0.814789 0.619682 -1.57034  
  5. Camera\ Type=rviz::FixedOrientationOrthoViewController  
  6. Fixed\ Frame=/odom  
  7. Grid.Alpha=0.5  
  8. Grid.Cell\ Size=0.5  
  9. Grid.ColorB=0.941176  
  10. Grid.ColorG=0.941176  
  11. Grid.ColorR=0.941176  
  12. Grid.Enabled=1  
  13. Grid.Line\ Style=0  
  14. Grid.Line\ Width=0.03  
  15. Grid.Normal\ Cell\ Count=0  
  16. Grid.OffsetX=0  
  17. Grid.OffsetY=0  
  18. Grid.OffsetZ=0  
  19. Grid.Plane=0

4、节点关系图


原创文章,转载请注明: 转载自古月居

本文链接地址: ROS探索总结(四)——简单的机器人仿真

微信 OR 支付宝 扫描二维码
为本文作者 打个赏
pay_weixinpay_weixin

评论

155条评论
  1. Gravatar 头像

    随芯 回复

    古月老师,你好!我是学习ROS的新手,最近在跟着《ROS机器人程序设计》这本书学习ROS导航功能包,但是遇到一个问题始终解决不了。页面报警说“Timed out waiting for transform from base_footprint to map to become available before running costmap, tf error: canTransform: target_frame map does not exist.. canTransform returned after 0.1 timeout was 0.1.”RVIZ也报错说“Fixed Frame [map] does not exist"。我把fixed frame改成odom或base_link,依然无法解决问题。请问有什么解决办法吗?困扰了很久

  2. Gravatar 头像

    why 回复

    你好,打扰了,正在学习您的ROS机器人开发实践书籍,第6章的launch文件中,加载robot_state_publisher时,功能包pkg的名字都是robot_state_publisher,但是type中有的是state_publisher,还有robot_state_publisher,在/opt/ros/indigo/lib/路径下找到了这两个robot_state_publisher节点和state_publisher节点,麻烦问一下有什么区别?谢谢!

  3. Gravatar 头像

    张桥 回复

    胡老师好,感谢分享,最近在调试ur真实机器人,按照https://blog.csdn.net/fcc_bd_stars/article/details/78150729,但是最后机器人打开并不是实际机器人的位置,相当于没连接上,在rviz界面可以plan,但是按执行,机器人也动不了,而且运行的终端中,第一个终端出现([FATAL] [1544023726.940290490]: Error connecting to get firmware version terminate called after throwing an instance of 'std::system_error' what(): Invalid argument [ur_driver-3] process has died [pid 2712, exit code -6, cmd /home/zq/catkin_ws/devel/lib/ur_modern_driver/ur_driver __name:=ur_driver __log:=/home/zq/.ros/log/247860fa-f8a2-11e8-b86d-08107a325fbe/ur_driver-3.log]. log file: /home/zq/.ros/log/247860fa-f8a2-11e8-b86d-08107a325fbe/ur_driver-3*.log ) 第二个终端出现([ERROR] [1544023951.122617530]: Unable to identify any set of controllers that can actuate the specified joints: [ elbow_joint shoulder_lift_joint shoulder_pan_joint wrist_1_joint wrist_2_joint wrist_3_joint ] [ERROR] [1544023951.122656111]: Known controllers and their joints: ) 请问您知道这个问题如何解决吗?谢谢

    • Gravatar 头像

      徐xx 回复

      @张桥 你好 请问解决了吗?我遇到了一样的问题。

      • Gravatar 头像

        于广大 回复

        @徐xx 老师您好,我在rviz中的motion planning中已经做好了plan,但是在execute到gazebo时,一直失败,出现如下错误,
        [ERROR] [1544671003.842130253, 79.572000000]: Unable to identify any set of controllers that can actuate the specified joints: [ joint1 joint2 joint3 joint4 joint5 joint6 ]
        [ERROR] [1544671003.842152896, 79.572000000]: Known controllers and their joints:
        请问老师应该怎么解决,谢谢。

  4. Gravatar 头像

    小罗 回复

    老师,http://ros-by-example.googlecode.com/svn/trunk/rbx_vol_1这个链接已经无法访问了,有没有新的链接呀?

  5. Gravatar 头像

    zlabc 回复

    老师您好,我在学习ros基础第三讲《机器人系统设计》时,执行sudo apt-get install ros-kinetic-usb-cam之后,然后执行roslaunch usb_cam uab_cam-test.launch出现以下的错误
    [uab_cam-test.launch] is neither a launch file in package [usb_cam] nor is [usb_cam] a launch file name
    The traceback for the exception was written to the log file,这个是因为什么呢?

    • Gravatar 头像

      zlabc 回复

      @zlabc 刚刚那个错误不对,应该是下面这个
      [ INFO] [1541148192.384718192]: Unable to open camera calibration file [/home/zlabc/.ros/camera_info/head_camera.yaml]
      [ WARN] [1541148192.384815717]: Camera calibration file /home/zlabc/.ros/camera_info/head_camera.yaml not found.
      [ INFO] [1541148192.384893260]: Starting 'head_camera' (/dev/video0) at 640x480 via mmap (yuyv) at 30 FPS
      [ERROR] [1541148192.385360021]: Cannot identify '/dev/video0': 2, No such file or directory
      [usb_cam-1] process has died [pid 2973, exit code 1, cmd /opt/ros/kinetic/lib/usb_cam/usb_cam_node __name:=usb_cam __log:=/home/zlabc/.ros/log/4e835706-de7b-11e8-8df5-000c29ca9966/usb_cam-1.log].
      log file: /home/zlabc/.ros/log/4e835706-de7b-11e8-8df5-000c29ca9966/usb_cam-1*.log
      [ INFO] [1541148192.804184030]: Using transport "raw"

      • 古月

        古月 回复

        @zlabc 系统没有摄像头设备'/dev/video0,用ubuntu自带的cheese试试有没有图像

  6. Gravatar 头像

    袁圣 回复

    老师您好,我在使用您的《ROS机器人开发实践》,书中主要使用的机器人是MRobot,我想知道怎么安装MRobot的包,我没有办法运行roslaunch mrobot_bringup mrobot.launch这一类的指令,谢谢您

    • 古月

      古月 回复

      @袁圣 书中涉及的代码都在配套的源码包中,mrobot_bringup是用来启动真机的,需要连接机器人,如果没有真机的话,可以按照书中的仿真步骤学习

  7. Gravatar 头像

    jack 回复

    老师您好。请问。系统文件中,有的文件属性是文件。文本打开是乱码。这个是什么文件,怎么打开。谢谢了。

  8. Gravatar 头像

    kcheng 回复

    老师你好,我最近才开始接触ROS,也买了你出的那本机器人开发实践看看,就是我现在有个问题想问一下你,我最近在用turtlebot3_burger,想在rviz上添加三个机器人进行导航仿真,修改了一些相关的配置文件,但是最后运行仿真的时候终端会出现如下警告:
    [ WARN] [1534476884.901859122, 1064.729000000]: Timed out waiting for transform from base_footprint to map to become available before running costmap, tf error: canTransform: target_frame map does not exist. canTransform: source_frame base_footprint does not exist.. canTransform returned after 0.1 timeout was 0.1.
    在rviz界面的显示项列表处,global status出现了以下错误:
    Fixed Frame
    Fixed Frame [map] does not exist
    robot model出现以下错误:
    URDF
    Parameter [robot_description] does not exist, and was not found by searchParam()

    我想请问一下,这个是哪方面的问题啊?为什么说robot description不存在啊,启动文件里面我明明已经添加了相关命令啊。

    • 古月

      古月 回复

      @kcheng 首先检查map坐标系,这个是rviz默认的,但是如果不是导航或slam,是没有这个坐标系的,改成odom或者base_link。
      然后再看下robot_description的问题,这个是在launch文件里用rosparam加载模型路径就行了

  9. Gravatar 头像

    刘鸿魁 回复

    您好,我是个新手,请帮忙指教下,出现这个错误是什么问题,怎么解决。
    通过远程软件nomachine远程打开RVIZ是出现的错误。
    yh@yh-Default-string:~$ rviz
    [ INFO] [1534383470.579175790]: rviz version 1.11.19
    [ INFO] [1534383470.579221232]: compiled against Qt version 4.8.6
    [ INFO] [1534383470.579234698]: compiled against OGRE version 1.8.1 (Byatis)
    段错误 (核心已转储)
    yh@yh-Default-string:~$

  10. Gravatar 头像

    时雨、 回复

    古月老师您好,我是一个ROS初学者,最近实验室新购了一台UR5机械臂(版本是3.4的)我用PC与机械臂通讯的时候,执行命令
    roslaunch ur_modern_driver ur5_bringup.launch robot_ip:=192.168.199.10,
    会出现
    [FATAL] [1533265350.229877228]: Error connecting to get firmware version
    以及
    [ur_driver-2] process has died [pid 4386, exit code -6, cmd /home/zxc/catkin_ws/devel/lib/ur_modern_driver/ur_driver __name:=ur_driver __log:=/home/zxc/.ros/log/a0347878-96c8-11e8-a6f4-00e0703128ea/ur_driver-2.log].
    log file: /home/zxc/.ros/log/a0347878-96c8-11e8-a6f4-00e0703128ea/ur_driver-2*.log
    这样的错误,在网上也没找到解决办法,请问是怎么回事,如何解决?
    非常感谢!

    • 古月

      古月 回复

      @时雨、 有可能是软件的版本问题或者是ur控制器的配置问题,关于UR的驱动不止ur_driver,也可以用ur_modern_driver,另外就是确认UR的控制器有没有配置好。

    • Gravatar 头像

      张桥 回复

      @时雨、 可以看看自己的电脑有没有设置静态IP等

  11. Gravatar 头像

    赖瑨 回复

    老师,我在编译空间时运行catkin_make命令,发现会出现以下错误,提示我std_mags找不到的错误,请问怎么解决啊,是直接在那个文件包里添加吗,以下为系统给出的错误:
    CMake Error at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake:83 (find_package):
    Could not find a package configuration file provided by "std_mags" with any
    of the following names:

    std_magsConfig.cmake
    std_mags-config.cmake

    Add the installation prefix of "std_mags" to CMAKE_PREFIX_PATH or set
    "std_mags_DIR" to a directory containing one of the above files. If
    "std_mags" provides a separate development package or SDK, be sure it has

  12. Gravatar 头像

    leslie 回复

    老师,我在用MOVEIT驱动自己配置的机械臂的时候出现以下报错:PluginlibFactory: The plugin for class 'moveit_rviz_plugin/MotionPlanning' failed to load. Error: Failed to load library /home/widowx/widowx_arm/devel/lib/libmoveit_motion_planning_rviz_plugin.so. Make sure that you are calling the PLUGINLIB_EXPORT_CLASS macro in the library code, and that names are consistent between this macro and your XML. Error string: Could not load library (Poco exception = libmoveit_planning_scene_interface.so.0.9.10: cannot open shared object file: No such file or directory)
    请问您有什么解决方法??谢谢了

  13. Gravatar 头像

    male 回复

    大神你好 ROS新手配置环境是ubuntu 14.04+indigo 使用moveit配置一个三指机械手后,用roslaunch demo.launch打开时出现了如下错误:Traceback (most recent call last):
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/__init__.py", line 307, in main
    p.start()
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/parent.py", line 268, in start
    self._start_infrastructure()
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/parent.py", line 217, in _start_infrastructure
    self._load_config()
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/parent.py", line 132, in _load_config
    roslaunch_strs=self.roslaunch_strs, verbose=self.verbose)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/config.py", line 451, in load_config_default
    loader.load(f, config, verbose=verbose)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 746, in load
    self._load_launch(launch, ros_config, is_core=core, filename=filename, argv=argv, verbose=verbose)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 718, in _load_launch
    self._recurse_load(ros_config, launch.childNodes, self.root_context, None, is_core, verbose)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 682, in _recurse_load
    val = self._include_tag(tag, context, ros_config, default_machine, is_core, verbose)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 95, in call
    return f(*args, **kwds)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 625, in _include_tag
    default_machine, is_core, verbose)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 652, in _recurse_load
    default_machine, is_core, verbose)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 678, in _recurse_load
    self._rosparam_tag(tag, context, ros_config, verbose=verbose)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 95, in call
    return f(*args, **kwds)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/xmlloader.py", line 238, in _rosparam_tag
    self.load_rosparam(context, ros_config, cmd, param, file, value, verbose=verbose)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/loader.py", line 428, in load_rosparam
    self.add_param(ros_config, full_param, data, verbose=verbose)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/loader.py", line 357, in add_param
    self.add_param(ros_config, ns_join(param_name, k), v, verbose=verbose)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/rosgraph/names.py", line 172, in ns_join
    if is_private(name) or is_global(name):
    File "/opt/ros/indigo/lib/python2.7/dist-packages/rosgraph/names.py", line 133, in is_private
    return name and name[0] == PRIV_NAME
    TypeError: 'int' object has no attribute '__getitem__'
    nan@nan-virtual-machine:~/catkin_ws$
    想请问一下这个错误如何解决?

    • 古月

      古月 回复

      @male 这个不太好看出来是什么问题,但是从报错的类型上看,像是模型解析的有问题,先检查一下模型吧

      • Gravatar 头像

        male 回复

        @古月 @古月 好像是模型的问题配置moveit文件时有warn
        [ WARN] [1523878486.155233627]: The STL file 'package://robotiq_hand_description/meshes/s-model_articulated/visual/link_0.STL' is malformed. It starts with the word 'solid', indicating that it's an ASCII STL file, but it does not contain the word 'endsolid' so it is either a malformed ASCII STL file or it is actually a binary STL file. Trying to interpret it as a binary STL file instead.
        [ WARN] [1523878486.156633431]: The STL file 'package://robotiq_hand_description/meshes/s-model_articulated/visual/link_1.STL' is malformed. It starts with the word 'solid', indicating that it's an ASCII STL file, but it does not contain the word 'endsolid' so it is either a malformed ASCII STL file or it is actually a binary STL file. Trying to interpret it as a binary STL file instead.
        [ WARN] [1523878486.158444577]: The STL file 'package://robotiq_hand_description/meshes/s-model_articulated/visual/link_2.STL' is malformed. It starts with the word 'solid', indicating that it's an ASCII STL file, but it does not contain the word 'endsolid' so it is either a malformed ASCII STL file or it is actually a binary STL file. Trying to interpret it as a binary STL file instead.
        [ WARN] [1523878486.160306424]: The STL file 'package://robotiq_hand_description/meshes/s-model_articulated/visual/link_3.STL' is malformed. It starts with the word 'solid', indicating that it's an ASCII STL file, but it does not contain the word 'endsolid' so it is either a malformed ASCII STL file or it is actually a binary STL file. Trying to interpret it as a binary STL file instead.
        [ WARN] [1523878486.164931371]: The STL file 'package://robotiq_hand_description/meshes/s-model_articulated/visual/palm.STL' is malformed. It starts with the word 'solid', indicating that it's an ASCII STL file, but it does not contain the word 'endsolid' so it is either a malformed ASCII STL file or it is actually a binary STL file. Trying to interpret it as a binary STL file instead.
        这种情况该如何处理呢?

        • Gravatar 头像

          阿斯蒂芬 回复

          @male 请问你后面怎么解决的呢?主要问题是出在哪里?

  14. Gravatar 头像

    - 回复

    运行ros rviz rviz出现:
    Qt:XKEYBOARD extension not present on the X server
    xlib:extension"RANDR" missing on display ":10.0"
    [INFO] [1523238844.054402278]:rviz version 1.112.11
    [INFO] [1523238844.056887945]:complied against Qt version 5.5.1
    [INFO] [1523238844.058760334]: conmplied against OGRE version 1.9.0(Ghadamon)段错误
    您让我重新下rviz这个包,但是下过之后运行还是会提示段错误

    • 古月

      古月 回复

      @- 这个就不清楚了,感觉是和qt或者显卡有关系的,或者是版本之间的问题,谷歌搜一下吧

  15. Gravatar 头像

    RING 回复

    你好,我是初学者,想请问sim_fuerte.vcg在新的包里面是没有的,只有sim.rviz,但是这个里面没有camera type,我该怎么编写,改变视角呢?

    • 古月

      古月 回复

      @RING 本文是旧版本的ROS,参考新版本的代码:http://download.csdn.net/detail/darkmoonkiller/9662483

  16. Gravatar 头像

    知者 回复

    我照着ros by example sudo apt-get install ros-indigo-arbotix-*显示未发现软件包

    • Gravatar 头像

      知者 回复

      @知者 用的是indigo版本

      • 古月

        古月 回复

        @知者 indigo版本是可以安装arbotix的,你用的是bash么?

        • Gravatar 头像

          知者 回复

          @古月 谢谢了,我是在树莓派上面源码装的indigo。。不能用apt-get装ros包,已经源码安装了。但最近运行roslaunch turtlebot_fake_laser_freenect.launch出错。
          Traceback (most recent call last):
          File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/__init__.py", line 307, in main
          p.start()
          File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/parent.py", line 268, in start
          self._start_infrastructure()
          File "/opt/ros/indigo/lib/python2.7/dist-packages/roslaunch/substitution_args.py", line 188, in _find_executable
          full_path = _get_executable_path(rp.get_path(args[0]), path)
          File "/usr/local/lib/python2.7/dist-packages/rospkg/rospack.py", line 203, in get_path
          raise ResourceNotFound(name, ros_paths=self._ros_paths)
          ResourceNotFound: rgbd_launch
          ROS path [0]=/opt/ros/indigo/share/ros
          ROS path [1]=/home/pi/workspace/src
          ROS path [2]=/opt/ros/indigo/share
          ROS path [3]=/opt/ros/indigo/stacks
          我已经找到rgbd,而且给了权限还是不行

          • 古月

            古月 回复

            @知者 树莓派可以用apt-get安装ROS的,源码编译的方式会少装很多依赖,后边问题会更多。你这里的错误提示是没有安装rgbd-launch功能包,使用apt-get安装的命令:apt-get install ros-indigo-rgbd-launch

            • Gravatar 头像

              知者 回复

              @古月 我装的是indigo版本,树莓派好像不支持这个版本。。没有ubuntu14.04.所以在raspbain上源码装的indigo,用apt-get install ros-*就报错,其他人说只能源码装。。。还是谢谢了。我试试装rgbd-launch

              • Gravatar 头像

                知者 回复

                @知者 安装完后运行,出现一堆红色错误,最后出现 INFO No devices connected。但我用lsusb查看,显示已经连接了

                  • Gravatar 头像

                    知者 回复

                    @古月 sudo:./install.sh:找不到命令

                    • 古月

                      古月

                      @知者 进入到解压缩的那个文件里执行。里边有install.sh

                  • Gravatar 头像

                    知者 回复

                    @古月 registering module 'libXnDeviceSensorV2KM.so' with OpenNI.../usr/bin/niReg: 1: /usr/bin/niReg: ELF: not found 还是以前的情况,找不到nireg,关键是有这个文件,我也给了权限

                    • 古月

                      古月

                      @知者 感觉还是各种依赖的问题,源码编译会遇到很多类似的问题,google一下吧。如果你用的是树莓派3的话,可以装ubuntu16.04+kinetic,用命令行装会自动安装依赖

  17. Gravatar 头像

    dazhuang 回复

    您好!~我在做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
    The traceback for the exception was written to the log file

  18. Gravatar 头像

    xyf 回复

    你好,请问我在运行模拟器: roslaunch rbx1_bringup fake_pi_robot.launch 时,
    提示错误如下:
    Traceback (most recent call last):
    File "/home/xyf/catkin_ws/src/arbotix_ros/arbotix_python/bin/arbotix_driver", line 33, in
    from arbotix_msgs.msg import *
    ImportError: No module named arbotix_msgs.msg
    [arbotix-1] process has died ……
    而且我确定已经有了arbotix_msgs这个包

          • Gravatar 头像

            xyf 回复

            @古月 我搞清楚怎么回事了,我偶然在工作空间运行了rosdep install命令,就是安装了包的依赖,结果再运行就可以了,说实话没想到您回复这么快,非常非常感谢!

            • 古月

              古月 回复

              @xyf 解决了就好,一般情况下,缺少依赖会在编译过程中就报错,你这个我确实没想到,学习了

              • Gravatar 头像

                lh 回复

                @古月 您好,请问一下我也是这个问题,版本kinetic,求解决方法,最近一直被这个问题困扰,谢谢,我不知道怎么增加依赖,我的arbotix安装在了catkinws的src里面

                • 古月

                  古月 回复

                  @lh 在工作空间里运行:rosdep install

            • Gravatar 头像

              lh 回复

              @xyf 您好,我和你状况一样,一直是这样报错,您能详细说一下怎么解决的么?版本也是kinetic,谢谢

            • Gravatar 头像

              吴迪华 回复

              @xyf 古月老师,我在运行roslaunch cob_people_detection people_detection.launch后出现了[face_recognizer-4] process has died [pid 17526, exit code -6, cmd /home/wudihua/catkin_ws/devel/lib/cob_people_detection/face_recognizer_node ~face_positions:=face_detector/face_positions __name:=face_recognizer __log:=/home/wudihua/.ros/log/9f6eeee0-4791-11e8-ab1c-9cd21e6d3cf1/face_recognizer-4.log].
              log file: /home/wudihua/.ros/log/9f6eeee0-4791-11e8-ab1c-9cd21e6d3cf1/face_recognizer-4*.log
              [face_capture-8] process has died [pid 17572, exit code -6, cmd /home/wudihua/catkin_ws/devel/lib/cob_people_detection/face_capture_node ~face_detections:=face_detector/face_positions ~color_image:=sensor_message_gateway/colorimage_out __name:=face_capture __log:=/home/wudihua/.ros/log/9f6eeee0-4791-11e8-ab1c-9cd21e6d3cf1/face_capture-8.log].
              log file: /home/wudihua/.ros/log/9f6eeee0-4791-11e8-ab1c-9cd21e6d3cf1/face_capture-8*.log
              这是什么问题呀

            • Gravatar 头像

              zss 回复

              @xyf 你好,我也遇到了你这样的问题,能详细说一下吗,谢谢了,

      • Gravatar 头像

        sundong 回复

        @古月 您好,我也遇到了一模一样的问题,麻烦说一下具体解决方法行吗,比如说下载包放在哪个文件夹,怎么用rosdep等?感谢

    • Gravatar 头像

      lnp 回复

      @xyf 请问rosdep install 后面接什么,在哪个目录执行此命令,我也遇到这个问题,感谢

      • Gravatar 头像

        lnp 回复

        @lnp 已解决,需要catkin_make arbotix_ros 下面所有的包

        • Gravatar 头像

          lzm 回复

          @lnp 您好 我把arbotix_ros放在工作空间的src下 然后catkin_make还是出现No module named arbotix_msgs.msg 请问你是如何解决的?

  19. Gravatar 头像

    JoeyChan 回复

    Arg xml is
    The traceback for the exception was written to the log file
    这样的。。

  20. Gravatar 头像

    JoeyChan 回复

    Arg xml is
    The traceback for the exception was written to the log file
    不好意思上条不完整!

  21. Gravatar 头像

    JoeyChan 回复

    大神您好,我是一个ROS新手,最近在运行一个demo时候遇到以下问题,键入:roslaunch robot_sim_demo robot_spawn.launch提示:
    ... logging to /home/joeychan/.ros/log/c2b8bfac-21b7-11e8-b3b9-080027cd9c90/roslaunch-joeychan-VirtualBox-2924.log
    Checking log directory for disk usage. This may take awhile.
    Press Ctrl-C to interrupt
    Done checking log file disk usage. Usage is <1GB.

    Invalid tag: robot_sim_demo
    ROS path [0]=/opt/ros/kinetic/share/ros
    ROS path [1]=/opt/ros/kinetic/share.

    Arg xml is
    The traceback for the exception was written to the log file
    网上遍寻无果,期待解答!谢谢!

    • 古月

      古月 回复

      @JoeyChan 你好,这个问题是因为ROS找不到robot_sim_demo 这个包,确认一下这个包的位置在哪,如果是在自己创建的工作空间中,需要设置环境变量

      • Gravatar 头像

        何勇 回复

        @古月 古老师,您好!我在launch节点是出现了下列问题:
        roslaunch robot_sim_demo robot_spawn.launch
        ... logging to /home/chen/.ros/log/6c4890c4-96f2-11e8-9277-1c1b0dc32b63/roslaunch-604-17234.log
        Checking log directory for disk usage. This may take awhile.
        Press Ctrl-C to interrupt
        Done checking log file disk usage. Usage is <1GB.

        Traceback (most recent call last):
        File "/opt/ros/kinetic/share/xacro/xacro.py", line 55, in
        import xacro
        File "/opt/ros/kinetic/lib/python2.7/dist-packages/xacro/__init__.py", line 35, in
        import glob
        File "/home/chen/anaconda3/lib/python3.6/glob.py", line 4, in
        import re
        ModuleNotFoundError: No module named 're'
        while processing /home/chen/catkin_ws/src/ROS-Academy-for-Beginners/robot_sim_demo/launch/include/xbot-u.launch.xml:
        Invalid tag: Cannot load command parameter [robot_description]: command [/opt/ros/kinetic/share/xacro/xacro.py /home/chen/catkin_ws/src/ROS-Academy-for-Beginners/robot_sim_demo/urdf/robot.xacro] returned with code [1].

        Param xml is
        The traceback for the exception was written to the log file
        感谢您的解答!

  22. Gravatar 头像

    雲水 回复

    古大神你好,我按照教程學習到rviz,安裝了arbotix_ros和rbx1兩個包,運行roslaunch rbx1_bringup fake_turtlebot.launch和rosrun rviz rviz -d `rospack find rbx1_nav`/nav_fuerte.rviz兩個命令都沒問題,但是運行roslaunch rbx1_nav fake_move_base_map_with_obstacles.launch命令打開地圖就出現
    ERROR: cannot launch node of type [move_base/move_base]: can't locate node [move_base] in package [move_base]
    ERROR: cannot launch node of type [map_server/map_server]: can't locate node [map_server] in package [map_server]
    process[odom_map_broadcaster-3]: started with pid [10836]
    的錯誤,困擾了很久,希望您看到後可以答復我

  23. Gravatar 头像

    zkw1996 回复

    大神,我是Ubuntu16.04+kinetiv,怎么才能改变控制开发者的观察角度??
    我试了评论里的那个,改动之后还是俯视的视角啊。。。。

  24. Gravatar 头像

    灰白 回复

    古月你好 我按照步骤下来 出现了一处错误
    ERROR: cannot launch node of type [arbotix_python/arbotix_driver]: arbotix_python
    ROS path [0]=/opt/ros/jade/share/ros
    ROS path [1]=/home/enzhi/airbox/src
    ROS path [2]=/home/enzhi/catkin/src
    ROS path [3]=/opt/ros/jade/share
    ROS path [4]=/opt/ros/jade/stacks
    不知道是什么原因导致的 说是没添加搜索路径 新手不知道具体怎么解决 希望大神帮忙解答一下

    • 古月

      古月 回复

      @灰白 没有安装arbotix_python功能包,使用apt-get命令安装一下

      • Gravatar 头像

        灰白 回复

        @古月 我用sudo apt-get install arbotix_python 代码安装 但他显示未发现软件包 有点晕 不知道具体安装代码是多少

        • 古月

          古月 回复

          @灰白 sudo apt-get install ros-indigo-arbotix-python,安装ROS包要加“ros-indigo-”前缀

  25. Gravatar 头像

    uka_saegusa 回复

    古大神,你好。我已经学过了官方教程,安装的是kinetic版本,在学习ros by example的时候,用git clone下载了 kinetic 版本的arbotix和rbx1源码包,再catkin_make安装并且source。然后启动 roslaunch rbx1_bringup fake_turtlebot.launch正常。最后执行rosrun rviz rviz -d `rospack find rbx1_nav`/sim.rviz,后提示:
    [rospack] Error: package 'rbx1_nav' not found
    [ INFO] [1512712743.440376461]: rviz version 1.12.13
    [ INFO] [1512712743.440430495]: compiled against Qt version 5.5.1
    [ INFO] [1512712743.440443140]: compiled against OGRE version 1.9.0 (Ghadamon)
    [ INFO] [1512712743.568780666]: Stereo is NOT SUPPORTED
    [ INFO] [1512712743.568928781]: OpenGl version: 3 (GLSL 1.3).
    在rviz界面没有看到机器人模型,界面中Global Status后显示红色的“Error”,请问是怎么回事。

    • 古月

      古月 回复

      @uka_saegusa rbx1_nav包没有找到,rviz的配置文件失败,检查一下路径和环境变量,也可以自己在rviz中添加机器人模型的显示项

    • Gravatar 头像

      ranpenghao 回复

      @uka_saegusa 你搞定这个问题了么,怎么搞定的呢,能否告诉我一下,谢谢

      • Gravatar 头像

        zkw1996 回复

        @ranpenghao 这个的话,好像source devel/setup.bash之后就好了

    • Gravatar 头像

      知者 回复

      @uka_saegusa 解决了没,我也出现了这个问题

  26. Gravatar 头像

    李鸿彬 回复

    古月大神您好,当我运行roslaunch rbx1_bringup fake_pi_robot.launch时,出现错误:
    ERROR: cannot launch node of type [robot_state_publisher/state_publisher]: can't locate node [state_publisher] in package [robot_state_publisher]
    请问是怎么回事?

    • Gravatar 头像

      helloworld 回复

      @李鸿彬 建议你在cd ~/catkin_ws下先source devel/setup.bash 后,再输入roslaunch rbx1_bringup fake_pi_robot.launch

      • Gravatar 头像

        李鸿彬 回复

        @helloworld 您好,我试了一下source devel/setup.bash,但依然还有上述错误,而且我在学习教程过程中遇到过好几次这个错误,请问还有什么解决办法吗?

          • Gravatar 头像

            李鸿彬 回复

            @古月 已经写了,还是不行

              • Gravatar 头像

                李鸿彬 回复

                @古月 安装了,而且重装了两次,不行

              • Gravatar 头像

                李鸿彬 回复

                @古月 您好,问题已经解决了,我在官网上下载了一个robot_state_publisher的ros包,放在src里就可以了,多谢啊

  27. Gravatar 头像

    dddff 回复

    你好,向你请教一个问题每次我运行rosrun rviz rviz 后打开了rviz 就会出现Global status:Erro Fixed Frame [map] does not exist,请问怎么办,百度了没有结果

    • 古月

      古月 回复

      @dddff 没关系,默认启动后的坐标系是map,但是系统中可能不存在,可以在Fixed Frame那里选择存在的坐标系,比如base_link等

      • Gravatar 头像

        dddff 回复

        @古月 已经解决了,在rosrun rviz rviz输入指令之前,忘记source一下路径了,总之谢谢大神!

        • Gravatar 头像

          pw 回复

          @dddff 哥们儿,咋source的。

  28. Gravatar 头像

    程大亮 回复

    古月大神你好,请问一下我的ROS 版本是kinetic 在安装rbx1功能包时出错了,出错代码是$ git checkout kinetic-devel
    error: pathspec 'kinetic-devel' did not match any file(s) known to git.请问怎么办?

  29. Gravatar 头像

    zlz 回复

    前辈,你好,请问我在运行模拟器: roslaunch rbx1_bringup fake_pi_robot.launch 时,
    提示错误如下:
    ImportError: No module named arbotix_msgs.msg
    [arbotix-1] process has died ……
    是什么原因造成的呢,请问怎样解决,谢谢!!!

    • Gravatar 头像

      xyf 回复

      @zlz 我也遇到同样问题,请问如何解决?

    • Gravatar 头像

      xyf 回复

      @zlz 你好,请问我在运行模拟器: roslaunch rbx1_bringup fake_pi_robot.launch 时,
      提示错误如下:
      Traceback (most recent call last):
      File "/home/xyf/catkin_ws/src/arbotix_ros/arbotix_python/bin/arbotix_driver", line 33, in
      from arbotix_msgs.msg import *
      ImportError: No module named arbotix_msgs.msg
      [arbotix-1] process has died ……
      而且我确定已经有了arbotix_msgs这个包

      • Gravatar 头像

        lzm 回复

        @xyf 你好 我现在也出现这样的问题 最后你是如何解决的呢

      • Gravatar 头像

        坠落北极星 回复

        @古月 请问,在运行完您给的命令git clone https://github.com/pirobot/rbx1之后还需要rosmake rbx_vol_1 吗,如果需要该怎么运行的,你运行了一遍,一直报错 rosmake ] Expanded args ['rbx_vol_1'] to:
        []
        [ rosmake ] WARNING: The following args could not be parsed as stacks or packages: ['rbx_vol_1']
        [ rosmake ] ERROR: No arguments could be parsed into valid package or stack names.

        • 古月

          古月 回复

          @坠落北极星 这篇博客用的是老版本的ROS,已经不适用新版本ROS了,建议按照《ros by example》这本书里的命令安装,需要使用catkin_make

  30. Gravatar 头像

    纳兰嫣然 回复

    大神,你好,我刚接触ROS ,在学初学者的例程。每次编译有关qrt的命令时都会出现这个错误:
    ImportError: No module named PyQt4.QtCore

    ImportError for 'pyside': No module named PySide.QtCore
    Traceback (most recent call last):
    File "/opt/ros/indigo/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 87, in _select_qt_binding
    QT_BINDING_VERSION = binding_loader(required_modules, optional_modules)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 181, in _load_pyside
    _named_import('PySide.%s' % module_name)
    File "/opt/ros/indigo/lib/python2.7/dist-packages/python_qt_binding/binding_helper.py", line 111, in _named_import
    module = builtins.__import__(name)
    ImportError: No module named PySide.QtCore
    麻烦,有时间的话,帮我解答一下,万分感谢!

  31. Gravatar 头像

    恶魔的眼泪 回复

    请问显示:Global status :Error是什么错误呢?没有显示机器人

    • Gravatar 头像

      Magenta 回复

      @恶魔的眼泪 我也遇到了同样的问题,全都是按照教程来的,就是没有机器人

      • Gravatar 头像

        MrLee 回复

        @Magenta 哥们你解决了么?是不是少装了什么呢?

        • 古月

          古月 回复

          @MrLee 试一下这个Indigo版本的代码:http://download.csdn.net/detail/darkmoonkiller/9662483

      • 古月

        古月 回复

        @Magenta 试一下这个Indigo版本的代码:http://download.csdn.net/detail/darkmoonkiller/9662483

    • 古月

      古月 回复

      @恶魔的眼泪 试一下这个Indigo版本的代码:http://download.csdn.net/detail/darkmoonkiller/9662483

    • Gravatar 头像

      eijuhc 回复

      @恶魔的眼泪 刚刚解决,rviz中的设置改成和书上的图一样。fixed frame的值改成odom, 再点add加其他几项。就好了。

  32. Gravatar 头像

    蓝瘦 回复

    我启动这个的饿时候,roslaunch rbx1_nav fake_move_base_blank_map.launch,出现
    [move_base-2] process has died [pid 105003, exit code -6, cmd /opt/ros/indigo/lib/move_base/move_base __name:=move_base __log:=/home/turtlebot/.ros/log/eea77f3a-611f-11e7-ab52-000c298ee314/move_base-2.log].
    log file: /home/turtlebot/.ros/log/eea77f3a-611f-11e7-ab52-000c298ee314/move_base-2*.log
    ,该如何是好?

  33. Gravatar 头像

    heisenberg 回复

    老哥 看来需要做一能连续看文章的功能按钮了,比如下一篇文章的链接什么的 :mrgreen: :mrgreen:

  34. Gravatar 头像

    heisenberg 回复

    老哥 看来需要做一能连续看文章的功能按钮了,比如下一篇文章的链接什么的

  35. Gravatar 头像

    落叶 回复

    请问安装时:svn checkout http://vanadium-ros-pkg.googlecode.com/svn/trunk/arbotix
    出现svn: E000110: Unable to connect to a repository at URL 'http://vanadium-ros-pkg.googlecode.com/svn/trunk/arbotix'
    svn: E000110: 执行上下文错误: 连接超时
    这是什么原因呢?

    • 古月

      古月 回复

      @落叶 现在可以不用svn安装了,直接apt-get安装相应ros版本的即可

      • Gravatar 头像

        落叶 回复

        @古月 我是新手,请问我具体输入什么命令呢?直接把svn改成apt_get么?

  36. Gravatar 头像

    寻寻觅觅归乡路 回复

    新版里观看视角修改:.rviz文件里的Views配置,一般在后面的位置,Orbit是自由视角,俯视TopDownOrtho

  37. Gravatar 头像

    上帝之手 回复

    请问执行roslaunch rbx1_bringup fake_turtlebot.launch出现一下错误,请问如何解决
    Cannot load command parameter [robot_description]: command [/opt/ros/indigo/share/xacro/xacro.py '/opt/ros/indigo/share/turtlebot_description/urdf/turtlebot.urdf.xacro'] returned with code [1].

  38. Gravatar 头像

    ke_wu 回复

    古月大大,麻烦问一下,我每次想用rviz现实turtlebot或者pi robot时候就会出现Detected jump back in time. Clearing TF buffer.
    段错误 (核心已转储)。
    但是我也不知道是哪溢出了啊。求解,困扰很久了

  39. Gravatar 头像

    思良月6 回复

    博主,您好!我是一个ROS初学者,我按照上面的命令下载代码的时候,出现这种情况。
    lang@ubuntu:~$ svn checkout http://ros-by-example.googlecode.com/svn/trunk/rbx_vol_1
    svn: E000110: Unable to connect to a repository at URL 'http://ros-by-example.googlecode.com/svn/trunk/rbx_vol_1'
    svn: E000110: Error running context: Connection timed out
    可以请教一下是这个网址失效了吗?

  40. Gravatar 头像

    ychx 回复

    忘记说了我是jade版本,这个有啥影响吗

  41. Gravatar 头像

    ychx 回复

    你好,我是一个ROS初学者,从官网wiki学完了初级阶段,在rosmake rbx_vol_1 和 rosmake arbotix都出现了
    [ rosmake ] rosmake starting...
    [ rosmake ] Packages requested are: ['rbx_vol_1']
    [ rosmake ] Logging to directory /home/ychx/.ros/rosmake/rosmake_output-20160407-192400
    [ rosmake ] Expanded args ['rbx_vol_1'] to:
    []
    [ rosmake ] WARNING: The following args could not be parsed as stacks or packages: ['rbx_vol_1']
    [ rosmake ] ERROR: No arguments could be parsed into valid package or stack names.
    这样的错误,搜索答案的时候说是环境配置出错,由于是新手所以具体不会操作,麻烦你能帮我解答下,对环境配置方面基本小白,能给我推荐一个学习的网页,谢谢啦~~~

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据