• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

car_demo|无人车仿真环境全教程

人工智能 windSeS 1319次浏览 0个评论

car_demo|无人车仿真环境全教程

最近需要在Ackerman(阿克曼)式的地面移动机器人验证算法。但是,实际平台一时半会无法搭建完成,所以考虑采用仿真环境。经过对比,最终选定了car_demo。本篇主要介绍car_demo的使用,从安装到实际应用。

系统:Ubuntu 14.04 indigo

1.安装

官方安装没问题-官方安装没问题-官方安装没问题

不要找其他的民间教程,按装官方的安装命令,一点问题都没有。
下面给出各自安装的官方教程地址。

1.1安装docker

Get Docker CE for Ubuntu

1.2安装nvidia-docker

NVIDIA/nvidia-docker

1.2安装car_demo

osrf/car_demo

2.测试运行

cd car_demo
./run_demo.bash

rviz显示

在这里插入图片描述

gazebo显示
在这里插入图片描述

3.获取仿真环境的topic

由于仿真环境运行在docker 容器中,它作为一个独立的个体,类似于独立本机之外的个体。所以,直接获取topic的作法是行不通的。不信可以运行rostopic list,看看有没有订阅到topic。

采用ros的多机通信机制,实现本机ros与docker 环境中的ros通信。配置文件作以下更改:

在这里插入图片描述

其中,172.17.0.2为docker 环境的IP地址,如果获取不到,可以猜,前面几位基本固字,最后一位从1往上试。
192.168.10.128为本机的IP地址。(注意,本机的.bashrc文件也要做相应修改,具体参照ROS多机通信来配置就可以了)

完成以上配置,并且docker环境的IP(猜)对了的话,在本机运行

roscore

再运行:

cd car_demo       
./run_demo.bash

则会成功出现RVIZ和GAZEBO界面,并显示无人车与仿真环境。如果不成功,可以继续猜docker 环境的IP地址。一般不是2就是3

这时,再运行rostopic list,会出现一大堆消息列表。如下所示:
car_demo|无人车仿真环境全教程

此时,我们可以与仿真环境进行数据交互,例如:接收仿真环境的感知数据,然后根据感知数据发布控制指令对无人车进行控制。

4.控制无人车

注意:car_demo依赖他自己的消息格式prius_msgs,本机与docker 里的car_demo成功通信,必须在本机也编译prius_msgs。car_demo的根目录下就有prius_msgs node文件夹,将其放入本机的工作空间,并编译,保证工作空间加入了source list中。

执行以下代码

import rospy
from prius_msgs.msg import Control

def control_test():
    pub = rospy.Publisher("/prius", Control, queue_size=1)
    rospy.init_node('sim_control', anonymous=True)
    rate = rospy.Rate(10) # 10hz
    command = Control()
    command.header.stamp = rospy.Time.now()
    command.throttle = 1.0
    command.brake = 0.0
    command.shift_gears = Control.FORWARD
    
    while not rospy.is_shutdown():
        pub.publish(command)
        rate.sleep()

if __name__ == '__main__':
    try:
        control_test()
    except rospy.ROSInterruptException:
        pass 

发现车动起来了,哈哈!!!

car_demo|无人车仿真环境全教程

最小转弯半径与最大曲率

轴距L:2.86 m
最大转向(角度)θ \thetaθ: -30度~30度
前轮距2b:2 × 0.76 2\times 0.762×0.76 m

此处,最小转弯半径计算式为:

car_demo|无人车仿真环境全教程

最后可得最小转弯半径为:6.6 m
最大曲率为:0.15

未完待续…


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明car_demo|无人车仿真环境全教程
喜欢 (1)

您必须 登录 才能发表评论!

加载中……