IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 记实现多racecar仿真过程中遇到的问题(一) -> 正文阅读

[人工智能]记实现多racecar仿真过程中遇到的问题(一)

最近尝试过使用多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,其他机器人就订阅不到了。
    解决办法:gazebo_ros_control
    将上图所示部分注释掉,不使用公共命名空间,使用自己的命名空间。
    然后在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_controller
                left_rear_wheel_velocity_controller
                right_rear_wheel_velocity_controller
                left_front_wheel_velocity_controller
                right_front_wheel_velocity_controller
                left_steering_hinge_position_controller
                right_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里面出现了。
在这里插入图片描述

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:42:53  更:2022-04-30 08:44:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 8:54:36-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码