car_demo|无人车仿真环境全教程
car_demo|无人车仿真环境全教程
最近需要在Ackerman(阿克曼)式的地面移动机器人验证算法。但是,实际平台一时半会无法搭建完成,所以考虑采用仿真环境。经过对比,最终选定了car_demo。本篇主要介绍car_demo的使用,从安装到实际应用。
系统:Ubuntu 14.04 indigo
1.安装
官方安装没问题-官方安装没问题-官方安装没问题
不要找其他的民间教程,按装官方的安装命令,一点问题都没有。
下面给出各自安装的官方教程地址。
1.1安装docker
1.2安装nvidia-docker
1.2安装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
,会出现一大堆消息列表。如下所示:
此时,我们可以与仿真环境进行数据交互,例如:接收仿真环境的感知数据,然后根据感知数据发布控制指令对无人车进行控制。
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
发现车动起来了,哈哈!!!
最小转弯半径与最大曲率
轴距L:2.86 m
最大转向(角度)
θ
\theta
θ: -30度~30度
前轮距2b:
2
×
0.76
2\times 0.76
2×0.76 m
此处,最小转弯半径计算式为:
r
m
a
x
=
L
s
i
n
(
θ
)
+
b
c
o
s
(
θ
)
r_{max}=\frac{L}{sin(\theta)}+\frac{b}{cos(\theta)}
rmax=sin(θ)L+cos(θ)b
最后可得最小转弯半径为:6.6 m
最大曲率为:0.15
未完待续…
相关文章
- 树莓派系列教程:1.环境与系统,无显示器无键盘无网线联网并使用PuTTy与VNC图形界面远程登录
- CleanMyMac磁盘空间内存瘦身清理软件使用教程
- mac卸载软件怎么卸载干净?详细方法教程分享
- 基于Centos搭建Python Web 环境搭建教程
- Hadoop HBase 单机环境简单配置教程
- WPF MVVM模式开发简明实现教程 5 使用MultiValueConverter进行多参数事件绑定
- Office 2013办公软件应用标准教程
- Koa框架教程,Koa框架开发指南,Koa框架中文使用手册,Koa框架中文文档
- Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境搭建教程
- windows环境下elasticsearch安装教程(超详细)
- 阿里云注册域名,购买云服务器,备案,域名解析教程
- 全网最全的Gitlab CI/CD自动化部署的介绍和教程,使用GitLab CI/CD自动化热部署SpringBoot或maven项目,GitLab CI/CD的Kubernetes集群的集成
- 【Elasticsearch教程18】Mapping字段类型之text 以及term、match和analyzer
- [php]Windows环境下Composer的安装教程
- Python学习 1 一 Python2.75的安装及环境配置教程
- Ogre嵌入MFC傻瓜全然教程(三)
- 软件测试技能,JMeter压力测试教程,签名sign(BeanShell 预处理程序)(二十)
- Cocos2d-x数据模块教程03:XML数据操作
- cocos2d-x-3.0 window+eclipse Android Project 环境与开发新手教程
- VM安装CentOS虚拟机详细教程
- ROS保姆级0基础入门教程⭐ |第一章 ROS的概述与环境搭建(4万字教程,建议收藏)
- 【转载】Hadoop 2.7.3 和Hbase 1.2.4安装教程
- 讲得最明白的Elasticsearch源码调试环境搭建教程