问题标签 [gazebo-simu]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 凉亭回调未触发
我正在尝试编写一个小库来将 Gazebo 与 Python 接口(我尝试使用 pygazebo 库但没有成功)。我正在尝试从相机获取输出并找到 April Tags 并将位置数据存储在使用 SWIG 包装的 C++ 代码的类变量中,以便在 Python 中使用。我有一个独立的 C++ 应用程序打印这些数据,但我无法让它在一个类中工作。从我的测试来看,这条线sub = node->Subscribe(IMAGE_TOPIC, &april::callback, this);
可能是问题所在。代码包含在下面。
凉亭April.cpp
凉亭April.hpp
凉亭April.i
qgroundcontrol - 如何使 QGControl 连接到同一局域网中另一台主机的凉亭模拟实例?
我通过这个脚本在另一个主机:192.168.10.11 上运行了凉亭 simu:
!/bin/bash px4_dir=$(pwd)
源 $px4_dir/Tools/setup_gazebo.bash $px4_dir $px4_dir/build/posix_sitl_default
source devel/setup.bash export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$px4_dir export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:$px4_dir/Tools/sitl_gazebo
roslaunch px4 posix_sitl.launch
和这样的控制台输出:
在 QGroundControl->settings->Comm Links 中,我尝试通过不同的端口创建到此主机(192.168.10.11)的 TCP 链接:
43745 11311 4560
但都失败了,所以问题是:
如何使用 gqcontrol 连接到同一局域网中另一台主机中的凉亭模拟实例?
ros - Gazebo shows more robots than robot launched number
Every-time I launch Gazebo, there is a default turtlebot that always appears in the simulation although I don't launch him.
There is a black robot (called mobile_base), it appeared although I didn't launch it).
To simplify the problem, even when I am loading just gazebo empty world without my robots, this default robot (mobile_base) appears in the simulation.
Do you have an idea how can I remove this default robot from Gazebo simulation? Thank you!
EDIT: solved by launching different world, that doesn't contain a default turtlebot.
ros - GazeboRosControlPlugin 缺失
这里有一个类似的问题没有得到解答:ROS 中的错误:控制器生成器找不到预期的控制器管理器 ROS 接口
我有一个带有启动文件的 ROS 工作区,上次运行它时运行良好。它启动 Gazebo 模拟器、一些 ROS 节点、一个机器人和 RVIZ。但现在它失败了。它只是锁定并死亡。我没有做任何改变。自从我上次启动它以来已经过去了几个月......
这是错误消息,但我不确定这是否是问题:
[错误] [1559523160.995762178]:使用 DefaultRobotHWSim 时缺少 GazeboRosControlPlugin,默认为 true。此设置假定您有一个旧包,其中包含 DefaultRobotHWSim 的旧实现,其中机器人名称空间被忽略,而是使用绝对路径。如果您不想在旧包中解决此问题,只需设置为 true。
它说它默认为 true,但建议将 legacyModeNS 设置为 true。我试过了。我将 legacyModeNS 元素添加到元素中。它似乎没有任何效果。
这是运行启动文件的输出。我不确定如何更具体。
python - 使用 OpenManipulator 和 MoveIt 生成和控制第二个手臂
我目前正在开展一个项目,在该项目中,我在同一场景中独立地为机器人生成和控制 2 个手臂。我要离开 OpenManipulator 文档/教程,并使用 MoveIt 来控制他们的默认手臂,来自这个链接:
http://emanual.robotis.com/docs/en/pl ...
和
http://emanual.robotis.com/docs/en/pl ...
所以我的想法是,在几个不同的终端中,我正在运行以下命令来生成绑定在一起的凉亭和 rviz 实例,并且我能够使用提供的 GUI 来操作单个手臂或使用代码。
$ roslaunch open_manipulator_gazebo open_manipulator_gazebo.launch(生成带有基本主题/节点的凉亭和机械臂)
$ roslaunch open_manipulator_controller open_manipulator_controller.launch use_platform:=false (使用相同的手臂生成 rvis,并为手臂创建 moveit 控制器。我还修改了这个启动文件以将 moveit 设置为 true)
$ roslaunch open_manipulator_control_gui open_manipulator_control_gui.launch(生成提供的 gui)
我想以某种方式操纵启动文件以生成第二个手臂,我可以像控制第一个手臂一样独立操纵它。到目前为止,我还没有找到运气,我仍在研究凉亭。不知道我将如何处理产生 rviz 的控制器。
我按如下方式操作了凉亭启动文件,并且能够显示 2 个手臂,但没有让主题或服务单独分组或拥有自己的唯一名称,甚至生成。
open_manipulator_gazebo.launch
open_manipulator_controller.launch (open_manipulator_gazebo 包中的那个,不是 open_manipulator_controller 包。这个是上面的launch文件调用的)
这是原始源代码的来源,因此您可以将其与原始启动文件进行比较:https ://github.com/ROBOTIS-GIT/open_m ...
任何帮助,将不胜感激。我对 ROS 很陌生,如果我忽略了一些简单的事情,请原谅我。如果我遗漏了任何重要信息,请告诉我,我很乐意提供。
感谢您的时间
真挚地,
阿尔弗雷德·沙克尔
ros - Turtlebot 在 Gazebo ROS Kinetic 中无意中自行移动
当我开始在 Gazebo 中模拟 Turtlebot 时,它会自行缓慢移动(线性和有角度)。如果我检查 Gazebo 发布的 'odom' 消息,总会有一个小转折(线性 x 和角度 z)。几分钟后,您可以在 Gazebo GUI 中清楚地看到更改后的姿势。这也发生在 Gazebo 中生成的其他一些简单对象(如圆柱体)上。我已经在机器人和世界 URDF 中测试了其他摩擦值,但没有成功。
要重现该问题,您可以简单地从 turtlebot_gazebo 包运行 turtlebot_world.launch 并查看“odom”消息:
200 秒后,我看到它有轻微的旋转(几度),但几乎处于相同的位置。如果您查看地面上的接触点,您会发现车轮之间存在连续振荡,这会导致小的数值积分误差累积。
示例奥多姆:
系统:Ubuntu 16.04(内核 4.15),ROS Kinetic(最新版本的所有相关软件包,Gazebo 7)。
ubuntu - Gazebo sim 未运行,因为未找到安装的 netifaces 模块
我正在尝试运行这个 Gazebo 模拟:https ://github.com/disaster-robotics-proalertas/usv_sim_lsa
我一直跟着并在我的 Ubuntu 16.04 上安装了 ROS 动力学。但是我一直收到找不到 netifaces 模块的错误,即使我已经反复安装它并且import netifaces
当我在终端中启动 python 时可以。
我试过安装 python-netifaces 并使用
rosdep install --from-paths src --ignore-src --rosdistro groovy -y
它显示所有必需的 rosdeps 都已安装。
只是试图运行这一行:
roslaunch usv_sim airboat_scenario1.launch parse:=true
这是我不断收到的错误:
rameezs:~/catkin_ws$ roslaunch usv_sim airboat_scenario1.launch parse:=true ... 登录到 /home/rameezs/.ros/log/5cbbdbb0-c28f-11e9-bea5-88b111c4685a/roslaunch-thinkram-16846.log 检查日志目录用于磁盘使用。可能还要等一下。按 Ctrl-C 中断完成检查日志文件磁盘使用情况。使用量 <1GB。
Traceback(最近一次调用最后):文件“ /opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/init.py”,第 306 行,在主 p.start() 文件“/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/parent.py”,第 268 行,在 start self._start_infrastructure()文件“/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/parent.py”,第 217 行,在 _start_infrastructure self._load_config() 文件“/opt/ros/kinetic/lib/python2.7 /dist-packages/roslaunch/parent.py”,第 132 行,在 _load_config roslaunch_strs=self.roslaunch_strs,verbose=self.verbose) 文件“/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/ config.py”,第 471 行,在 load_config_default config.assign_machines() 文件“/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/config.py”,第 222 行,在 assign_machines if [m for m in machine_unify_dict.values() 如果不是 is_machine_local(m)]:文件“/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/config.py”,第 222 行,在 if [m for m in machine_unify_dict.values() if not is_machine_local(m)] 中:文件“/opt/ros/kinetic/lib/python2.7/dist-packages/roslaunch/core.py”,第 97 行,在 is_machine_local local_addresses = ['localhost'] + rosgraph.network.get_local_addresses() 文件“/opt/ ros/kinetic/lib/python2.7/dist-packages/rosgraph/network.py”,第 217 行,在 get_local_addresses 中导入 netifaces ModuleNotFoundError:没有名为“netifaces”的模块在 is_machine_local local_addresses = ['localhost'] + rosgraph.network.get_local_addresses() 文件“/opt/ros/kinetic/lib/python2.7/dist-packages/rosgraph/network.py”,第 217 行,在 get_local_addresses 中导入 netifaces ModuleNotFoundError:没有名为“netifaces”的模块在 is_machine_local local_addresses = ['localhost'] + rosgraph.network.get_local_addresses() 文件“/opt/ros/kinetic/lib/python2.7/dist-packages/rosgraph/network.py”,第 217 行,在 get_local_addresses 中导入 netifaces ModuleNotFoundError:没有名为“netifaces”的模块
ros - 使用 RoboMaker 进行开发是否将我与 AWS 紧密联系在一起?
我正在为一个项目学习 ROS 和 Gazebo,并看到亚马逊的 Robomaker 似乎是一个很好的环境,可以快速启动和工作。我担心的是,如果我在 Robomaker 中设计和开发我的项目,那么如果时机成熟,将很难转移到我自己的服务器上。
有没有人有这方面的经验?转移到另一个解决方案/基础设施是否非常简单,或者一旦你进入兔子洞,你就嫁给了 AWS?
python - 从 python Opencv Videocapture 接收 Gazebo gstreamer UDP 视频
我正在尝试实现对象检测 Gazebo 模拟环境。为此,我使用https://dev.px4.io/v1.9.0/en/simulation/gazebo.html这个站点。我正在接收来自 QGroundControl 的视频。此外,我通过 Python 从 USB 网络摄像头接收视频和检测对象。现在,我想从 python Opencv videocapture 函数接收 gstreamer UDP 视频。但它给出了错误:
首先,我尝试编写 gstreamer 发送者和接收者一些视频:
gstreamer_sender.py:
gstreamer_receiver.py:
它运行良好,我意识到我可以通过仅更改端口来接收来自 Gazebo 的视频。Gazebo 默认端口是5600。但它没有用。
我只想通过使用上面的代码在这里实现:
它在这一行给出错误:
python - 在 spyder ipython 控制台中运行终端命令
我有一个 python 脚本,当我在 ubuntu 终端中运行它时,它使我的机器人在凉亭模拟器中前进。我也有一些我用 spyder 编写的代码。我想从我的 spyder ipython 控制台运行那个凉亭命令,但是当我编写在标准终端中成功运行的代码时,spyder 给了我无效的语法错误。实际上我想知道如何在我的 spyder 控制台中运行凉亭 python 代码。
file:///home/niloofar/Desktop/Screenshot%20from%202019-11-03%2021-07-43.png
这是我可以在其中运行代码的终端图片:
文件:///home/niloofar/Desktop/Screenshot%20from%202019-11-03%2021-06-31.png