最近尝试过使用多turtlebot3仿真之后,想测试一下多Ackermann结构车的仿真效果,在一番寻找下将目光锁定到了MIT-racecar。但是在使用过程中遇到了许多问题,在此记录一下。

运行环境:

Ubuntu18.04(虚拟机),ROS-melodic, gazebo-9

模型使用:

使用古月居课程中的racecar。一定要注意按照版本安装,并要提前安装好相应的依赖项,这样会省去许多问题。

问题描述及解决办法:

  1. 启动gazebo时卡在[ INFO] [1651062506.606549904, 5.961000000]: gazebo_ros_control plugin is waiting for model URDF in parameter [/robot_description] on the ROS param server.
    解决:将<param name="robot_descrtption">这个标签放在group外面,相当于一个全局变量,防止ros识别不出来。

参考解决方案

  1. 启动gazebo后提示[ERROR] [1651062508.042371016, 6.000000000]: Tried to advertise a service that is already advertised in this node [/racecar/controller_manager/list_controllers] [ERROR] [1651062508.042555811, 6.000000000]: Tried to advertise a service that is already advertised in this node [/racecar/controller_manager/list_controller_types] [ERROR] [1651062508.042636937, 6.000000000]: Tried to advertise a service that is already advertised in this node [/racecar/controller_manager/load_controller] [ERROR] [1651062508.042732991, 6.000000000]: Tried to advertise a service that is already advertised in this node [/racecar/controller_manager/unload_controller] [ERROR] [1651062508.042784810, 6.000000000]: Tried to advertise a service that is already advertised in this node [/racecar/controller_manager/switch_controller] [ERROR] [1651062508.042832091, 6.000000000]: Tried to advertise a service that is already advertised in this node [/racecar/controller_manager/reload_controller_libraries]
    原因是这部分controller_manager被设置了共同的命名空间,因此只要有一个机器人订阅了这个controller_manager,其他机器人就订阅不到了。
    解决办法:
    将上图所示部分注释掉,不使用公共命名空间,使用自己的命名空间。
    然后在launch中添加如下标签:
<rosparam file="$(find racecar_description)/config/ctrl.yaml" command="load"/>
<node name="controller_spawner_$(arg first_racecar)" pkg="controller_manager" type="spawner"args="--namespace=/$(arg first_racecar) joint_state_controllerleft_rear_wheel_velocity_controllerright_rear_wheel_velocity_controllerleft_front_wheel_velocity_controllerright_front_wheel_velocity_controllerleft_steering_hinge_position_controllerright_steering_hinge_position_controller"/>

并将ctrl.yaml中的第一行代码racecar:删除

参考解决方案

  1. 启动rviz后看不到机器人模型,使用rosrun rqt_tf_tree rqt_tf_tree查看tf树发现没有从mapbase_footprint的tf转换,并且机器人也没有发布odom信息,所以amcl没法完成map到机器人对应的odom的转换。
    解决方法:自己写一个从odombase_footprint的tf转换。以这个gazebo_odometry.py为原型,修改其发布信息使之与每个机器人的命名空间相对应。具体方法为将当前命名空间作为参数传入,并在发布的话题前面加上这个命名空间作为前缀。
    在此贴出launch文件中相应的调用语句,具体怎么改请各位自己去实现一下吧
<node name="gazebo_odometry_$(arg first_racecar)" pkg="racecar_description" type="gazebo_odometry.py" args="--namespace=/$(arg first_racecar)"/>

运行成功之后就可以看到小车在rviz里面出现了。

记实现多racecar仿真过程中遇到的问题(一)相关推荐

  1. Proteus仿真过程中External model DLL “***.DLL” not found

    一.问题 在Proteus仿真过程中出现External model DLL "***.DLL" not found的错误,这种情况一般是元件的模型找不到 方法一 Proteus中 ...

  2. 状态机控制移位寄存器multisim仿真过程中出现的状态变量和状态转移条件不匹配的问题

    问题如下: 当我们在进行到0000001时,状态变量应该取值为s1s0=10 但在实际仿真过程中出现了s1s0依旧在0000001时保持01不变,在0000001结束到1000000复位时才发生01到 ...

  3. [转]NS2仿真过程中解决动画仿真节点未定义问题

    原文地址:http://blog.myspace.cn/e/400266384.htm 其实,这个问题已经出现很长时间了,但是直到昨天问题才得到解决. 问题描述 用NS2运行无线仿真,然后运行动画程序 ...

  4. NS2仿真过程中需要的语言及基本组件

    本文介绍使用NS2进行网络仿真通常需要使用的语言以及工具(工具都是linux平台下的). (一)Tcl语言 Tcl(最早称为"工具命令语言""Tool CommandLa ...

  5. 喷管烧蚀仿真过程中的常见问题

    1.计算过程中报错,浮点数溢出 一般来说,浮点数溢出和边界条件的设定关系较大,可以查看boundary conditions 2.稳态计算的结果与物理实际不符 边界上没有问题,但是总体不符合物理常识, ...

  6. matlab中怎么仿真出bumps信号,显示仿真过程中生成的信号

    配置属性 Configuration Properties 对话框控制有关示波器画面的各种属性.从示波器菜单中,选择 View > Configuration Properties.Main O ...

  7. Carsim和simulink联合仿真过程中输入与输出不匹配的问题解决

    问题是:在我添加UKF模块前,可以正常地联合仿真:添加UKF模块之后,总会报错,意思大概是carsim的S-function 的输出部分的变量个数总是与预设的不相符. 实际上我在Carsim里面的输出 ...

  8. adams软件Linux,ADAMS仿真过程中如何提高计算效率,缩短计算时间,相应其他软件也可以类似操作。(原创)...

    大家再用软件做仿真计算时,总是感觉很费时间,有时候一算几十个小时还没有正确结果.个人总结了一下ADAMS中设置仿真计算节约时间的一些小规律,请采纳,其他的软件类似也是如此. 1.ADAMS中 end ...

  9. Adams调用cffsub求解动力学仿真过程中的摩擦力

    在Adams中通过用户编写子程序提取两接触物体之间的库伦摩擦力: 库伦摩擦模型: 实现Adams调用cffsub的代码如下: 其中XDOT(1)为啮合点的相对滑动速度,可通过调用c_sysary的返回 ...

  10. ansys在求解过程中死机关机的解决办法

    ansys是一款功能强大的仿真软件.它用于分析工程领域的结构分析和流体动力学.在使用ansys软件时,必须面对许多复杂的问题,并且计算机会崩溃关机.这导致工作人员的时间浪费以及效率低下. ansys关 ...

最新文章

  1. 线程的状态、调度、同步
  2. 20年的人工智能设计总结:向产品中注入人工智能的指南
  3. 2021年春季学期-信号与系统-第十三次作业参考答案-第十一小题
  4. c# GDI+简单绘图(二)
  5. (转)各种纹理贴图技术
  6. 07-爬虫验证码破解实战
  7. 002---tcp/ip五层详解
  8. 记录C++ Builder 6.0开发过程中的一个linker error
  9. linux定时备份文件到指定文件夹,Linux定时备份数据库到指定邮箱的方法
  10. 16进制String和int互转
  11. MySQL 亿级数据分页的优化
  12. 塑胶产品内滑块设计要点,以及注意哪些事项?
  13. 浏览器被hao123劫持首页处理
  14. html字体文件过大导致加载缓慢如何解决?
  15. 文本分类Keras RNN实践——应用腾讯和百度中文词向量
  16. oracle怎么条件强制走索引,如何让oracle的select强制走索引
  17. buildroot使用详解
  18. 腾讯云轻量应用服务器搭建跨境电商的方法步骤(非常详细)
  19. mkdoc安装与使用说明
  20. 课程7 :PLC常见指令详解:比较指令(工控PLC工程师入门必读,5天可上手调试)

热门文章

  1. java拼音查询_Java汉字获取拼音、笔划、偏旁部首
  2. 电脑键盘部分按键失灵_笔记本电脑部分按键失灵,可能的原因有哪些?
  3. Android根据包名获取APP名称
  4. 甲骨文裁员后会打算将云计算作为主战场吗?
  5. eclipse配色方案
  6. 国际及港澳台电话国家代码表
  7. pandas 按列 tolist
  8. sql查询表名、列名、列属性
  9. [BZOJ1488][HNOI2009]图的同构(dfs+置换群+数论+组合数学)
  10. 计算机网络ppt背景,教大家使用ppt设计出高逼格的背景图