版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
智能網(wǎng)聯(lián)創(chuàng)新實(shí)驗(yàn)室無人駕駛整體設(shè)計(jì)實(shí)現(xiàn)目錄1無人駕駛概述2無人駕駛結(jié)構(gòu)3無人駕駛選型4關(guān)鍵技術(shù)淺析目錄1無人駕駛概述2無人駕駛結(jié)構(gòu)3無人駕駛選型4關(guān)鍵技術(shù)淺析Page.
4無人駕駛概述Page.
5無人駕駛評價(jià)體系Page.
6無人駕駛分級Page.
7無人駕駛代表技術(shù)Page.
8智能駕駛輔助系統(tǒng)
ADAS目錄1無人駕駛概述2無人駕駛結(jié)構(gòu)3無人駕駛選型4ROS基本命令Page.
10Page.
11無人駕駛結(jié)構(gòu)Page.
12無人駕駛結(jié)構(gòu)目錄1無人駕駛概述2無人駕駛結(jié)構(gòu)3無人駕駛選型4ROS基本命令Page.
14無人駕駛結(jié)構(gòu)Page.
15無人駕駛部件圖Page.
16無人駕駛控制器輸入電壓10V-14V功率350W接口CAN×6千兆以太網(wǎng)×11CVBS/LVDS×4HDMI×1usb3.0×2usb-cSD讀卡器尺寸164mm
(
寬)
x
360mm
(
深)
x174mm(高)重量4.7kgCPUIntel
I5-6500T顯卡NVIDIAGTX1070
8G內(nèi)存16G
DDR4硬盤500G固態(tài)/1T固態(tài)(可選)系統(tǒng)Ubuntu16.06/Windows
10工作溫度0°C-80°C風(fēng)扇24G網(wǎng)絡(luò)全網(wǎng)通定位精度1.2/0.5/
0.01SPS/DGNSS/RTK
(m)數(shù)據(jù)更新率800HzPage.
17無人駕駛器件主要慣性測量單元全球定位系統(tǒng)車輛控制總線感知融合系統(tǒng)感知融合系統(tǒng)Page.
18控制器件鏈接目錄1無人駕駛概念2無人駕駛結(jié)構(gòu)3
無人駕駛選型 4關(guān)鍵技術(shù)淺析Page.
20無人駕駛關(guān)鍵技術(shù)場景認(rèn)知決策規(guī)劃地圖定位擬人控制Page.
21無人駕駛關(guān)鍵技術(shù)謝謝!智能網(wǎng)聯(lián)創(chuàng)新實(shí)驗(yàn)室無人駕駛系統(tǒng)目錄1ROS概述2ROS安裝3ROS框架4ROS基本命令目錄1ROS概述2ROS安裝3ROS框架4ROS基本命令Page
. 4Page
. 5無人駕駛結(jié)構(gòu)Page
. 6無人駕駛結(jié)構(gòu)Page
. 7ROS概述200020132014201520162017斯坦福大學(xué)機(jī)器人軟件系統(tǒng)框架2007 2010柳樹車庫Willow
Garage發(fā)起Page
. 8ROS概述200020132014201520162017斯坦福大學(xué)機(jī)器人軟件系統(tǒng)框架2007 2010柳樹車庫Willow
Garage發(fā)起LTSPage
. 9ROS
10年P(guān)age.
10ROS概述ROS(Robot
Operating
System)是一個(gè)適用于機(jī)器人的中間件/
類
操作系統(tǒng)。雖然ROS的名字為“機(jī)器人操作系統(tǒng)”,但不是真正的操作系統(tǒng),只是說它可以提供類似于操作系統(tǒng)的一些服務(wù),比如底層通訊,
分布式控制。對于機(jī)器人的相關(guān)功能,不使用ROS也能實(shí)現(xiàn).
但ROS使得機(jī)器人軟件搭建的工作更方便,效率更高。Page.
11ROS概述+++Page.
12ROS概述+++分布式進(jìn)程管理進(jìn)程間通信Node節(jié)點(diǎn)Page.
13ROS概述+++仿真數(shù)據(jù)可視化圖形界面數(shù)據(jù)記錄Page.
14ROS概述+++控制規(guī)劃視覺建圖Page.
15ROS概述+++軟件包管理文檔教程Page.
16ROS概述ROSRepositories(>50)
Map:Page.
17ROS特點(diǎn)目錄1ROS概述2ROS安裝3ROS框架4ROS基本命令Page.
19ROS安裝1,配置Ubuntu系統(tǒng)打開軟件中心,選擇Edit,SoftWareSources,在Ubuntu
SoftWare一欄中選中
restricteduniverse
multiverse。2,配置
sources.listsudosh-c'echo"deb/ros/ubuntu
$(lsb_release-sc)main">
/etc/apt/sources.list.d/ros-latest.list‘3,安裝keyssudoapt-keyadv--keyserverhkp://--recv-key0xB01FA116Page.
20ROS安裝1,配置Ubuntu系統(tǒng)打開軟件中心,選擇Edit,SoftWareSources,在Ubuntu
SoftWare一欄中選中
restricteduniverse
multiverse。2,配置
sources.listsudosh-c'echo"deb/ros/ubuntu
$(lsb_release-sc)main">
/etc/apt/sources.list.d/ros-latest.list‘3,安裝keyssudoapt-keyadv--keyserverhkp://--recv-key0xB01FA116Page.
21ROS安裝4,安裝ROS更新源$sudoapt-get
update安裝桌面完整版$sudoapt-getinstall
ros-kinetic-desktop-full桌面安裝$sudoapt-getinstall
ros-kinetic-desktop5,初始化rosdeprosdep
能夠輕松的安裝系統(tǒng)依賴項(xiàng)目$sudorosdep
init$rosdep
update6,配置環(huán)境$echo"source/opt/ros/kinetic/setup.bash">>
~/.bashrc7,安裝rosinstallrosinstall可以很容易的為ROS功能包下載source樹$sudoapt-getinstall
python-rosinstallPage.
22ROS安裝Page.
23ROS安裝目錄1ROS概述2ROS安裝3ROS框架4ROS基本命令Page.
25ROS框架Page.
26ROS框架Page.
27ROS框架在工作空間下用tree命令,顯示文件結(jié)構(gòu)Page.
28ROS框架Page.
29ROS框架Page.
30ROS框架Page.
31ROS框架Page.
32ROS框架文件系統(tǒng)級ROS文件系統(tǒng)級指的是可以在硬盤上查看的ROS源代碼,包括以下幾種形式:Message:消息的描述,定義ROS中發(fā)送的消息的數(shù)據(jù)結(jié)構(gòu),儲存在mypackage_name/msg/message_type.msg下Service:服務(wù)的描述,定義ROS中需求和響應(yīng)的數(shù)據(jù)結(jié)構(gòu),儲存在mypackage_name/srv/service_type.srv下注意:為了簡化代碼量且更好的支持兼容各發(fā)行版的功能包,功能包集的概念已經(jīng)在catkin中被移除。故文件系統(tǒng)級中的功能包集,StackManifest不再討論P(yáng)age.
33ROS框架計(jì)算圖是ROS處理數(shù)據(jù)的一種點(diǎn)對點(diǎn)的網(wǎng)絡(luò)形式,描述程序是如何運(yùn)行的。Page.
34ROS框架Page.
35ROS框架Page
. 36ROS欣賞目錄1ROS概念2ROS安裝3
ROS框架 4ROS基本命令Page.
38ROS基本命令我們將使用wiki上的包來講解,首先安裝tutorial軟件包sudoapt-getinstall
ros-indigo-ros-tutorialsrospack
獲取功能包的相關(guān)信息rospack<command>
[package_name]eg.
rospack
find
[package_name]
絕對路徑rospack
depends
[package_name]
輸出所有依賴項(xiàng)roscd
改變當(dāng)前目錄到指定的功能包
絕對路徑roscd[locationname[/sub
dir]]rosls列出功能包包含的所有文件(夾)rosls[locationname[/subdir]]Page.
39ROS基本命令catkin_create_pkg
創(chuàng)建ROS功能包c(diǎn)atkin_create_pkg[package_name][depend1][depend2]
[denpendn]catkin_make
編譯ROS功能包(rootdirectionof
catkin_ws)catkin_makecatkin_init_workspace
初始化工作空間
生成CMakeList.txt(directionofcatkin_ws/src)
catkin_init_workspaceTab
Completion
TAB補(bǔ)全Page.
40ROS基本命令節(jié)點(diǎn)都是各自獨(dú)立的可執(zhí)行文件,節(jié)點(diǎn)能夠通過主題,服務(wù)或參數(shù)服務(wù)器與其他節(jié)點(diǎn)通信,ROS通過節(jié)點(diǎn)將代碼和功能解耦,提高了系統(tǒng)的容錯(cuò)能力和可維護(hù)性。roscore
是你在運(yùn)行所有ROS程序前首先要運(yùn)行的命令,為了保證節(jié)點(diǎn)能通訊,至少要有一個(gè)roscore在運(yùn)行,roscore定義為master+parameter
server+rosoutrosnode:rosnodepingrosnodelistrosnodeinforosnodemachinerosnodekillrosnode
cleanuptestconnectivityto
nodelistactive
nodesprintinformationabout
nodelistnodesrunningonaparticularmachineorlistmachineskillarunning
nodepurgeregistrationinformationofunreachable
nodesrosrunrosrun[--prefixcmd][--debug]PACKAGEEXECUTABLE
[ARGS]Page.
41ROS基本命令rqt_graph能夠創(chuàng)建一個(gè)顯示當(dāng)前系統(tǒng)運(yùn)行情況的動態(tài)圖形,我們借助它來學(xué)習(xí)主題和節(jié)點(diǎn)之間的關(guān)系,執(zhí)行rosrunrqt_graph
rqt_graphrostopic:rostopicbwrostopicdelayrostopicechorostopicfindrostopichzrostopicinforostopiclistrostopicpubrostopic
typedisplaybandwidthusedby
topicdisplaydelayoftopicfromtimestampinheaderprintmessagesto
screenfindtopicsby
typedisplaypublishingrateoftopicprintinformationaboutactivetopiclistactive
topicspublishdatatotopicprinttopictype獲取幫助:rostopic
command
-hPage.
42ROS基本命令msg文件存放在package的msg目錄下,srv文件則存放在srv目錄下,實(shí)際上就是每行聲明一個(gè)數(shù)據(jù)類型和變量名??梢允褂玫臄?shù)據(jù)類型如下:int8,int16,int32,int64(plus
uint*)float32,
float64stringtime,
durationothermsg
files(header)variable-lengtharray[]andfixed-length
array[C]創(chuàng)建和使用msg
srvrossrv/rosmsg:rossrv/rosmsg show Showservice/messagedescriptionrossrv/rosmsg listListall
services/messagesrossrv/rosmsgmd5Displayservice/message
md5sumrossrv/rosmsgpackageListservices/messagesina
packagerossrv/rosmsgpackagesListpackagesthatcontain
services/messagesPage.
43ROS基本命令服務(wù)是節(jié)點(diǎn)之間通訊的另一種方式。服務(wù)允許節(jié)點(diǎn)發(fā)送請求(request)并獲得一個(gè)響應(yīng)(response)rosservice:rosserviceargsrosservicecallrosservicefindrosserviceinforosservicelistrosservicetyperosserviceuriprintservice
argumentscalltheservicewiththeprovidedargsfindservicesbyservice
typeprintinformationabout
servicelistactiveservicesprintservice
typeprintserviceROSRPC
uri獲取幫助:rosserverice
command
-h與rossrv區(qū)別:provides
information
related
to
ROS
service
definitionsPage.
44ROS基本命令參數(shù)服務(wù)器能夠存儲整型、浮點(diǎn)、布爾、字符串、字典和列表等數(shù)據(jù)類型。rosparam使用YAML標(biāo)記語言的rosparam:rosparamsetrosparamgetrosparamloadrosparamdumprosparamdeleterosparam
listset
parameterget
parameterloadparametersfromfiledumpparameterstofiledelete
parameterlistparameter
names獲取幫助:rosparam
command
-hPage.
45ROS基本命令launch在ROS應(yīng)用中,每個(gè)節(jié)點(diǎn)通常有許多參數(shù)需要設(shè)置,為了方便高效操作多個(gè)節(jié)點(diǎn),可以編寫launch文件,然后用roslaunch命令運(yùn)行roslaunch:roslaunch[options][package]<filename>[arg_name:=value...]roslaunch[options]<filename>[<filename>...]
[arg_name:=value...]launch文件的一般格式,參數(shù):<launch><node
.../><rosparam
/><param
.../><include
.../><env
.../><remap
.../><arg.../></launch>Page.
46ROS框架Page
. 47ROS欣賞謝謝!智能網(wǎng)聯(lián)創(chuàng)新實(shí)驗(yàn)室無人駕駛系統(tǒng)編成目錄1ROS編成2ROSCPP3ROSPY4ROSLISP目錄1ROS編成2ROSCPP3ROSPY4ROSLISPPage.
4ROS編成Page.
5ROS編程Page.
6ROS概述roscpp:ROS中的C++客戶端庫,執(zhí)行效率高,在ROS中使用最廣泛。rospy:ROS中的python客戶端庫,使得ROS可以享有面向?qū)ο蟮哪_本語言所帶來的便利。rospy注重開發(fā)效率而不是運(yùn)行效率,master,roslaunch和很多工具都是采用rospy開發(fā)的。roslisp:用于LISP的客戶端庫,它目前用于開發(fā)規(guī)劃庫。其他實(shí)驗(yàn)庫:rosjava,roslua目錄1ROS編成2ROSCPP3ROSPY4ROSLISPPage.
8ROSCPP簡單的主題發(fā)布者和主題訂閱者:編寫主題發(fā)布者節(jié)點(diǎn)需要:初始化ROS系統(tǒng)廣播消息:在foo主題上發(fā)布Foo_type_msg類型的消息已指定頻率發(fā)布消息到foo主題編寫主題訂閱者需要:初始化ROS從foo主題訂閱消息Spin,然后等待消息到達(dá)當(dāng)消息到達(dá)時(shí),Msg_Callback()函數(shù)被調(diào)用Page.
9ROSCPPPage.
10ROSCPP簡單的服務(wù)器端和客戶端:服務(wù)器端客戶端如何使用參數(shù)提取參數(shù)boolgetParam(conststd::string&key,parameter_type
&output_value)constparameter_typeparam(conststd::string&
param_name,parameter_type&
default_val)設(shè)置參數(shù)voidsetParam(conststd::string&key,parameter_type&v)
const刪除參數(shù)booldeleteParam(conststd::string&key)
const檢查存在性boolhasParam(conststd::string&key)
constPage.
11ROSCPPPage.
12ROSCPPPage.
13ROSCPPPage.
14ROSCPPHello
World程序節(jié)點(diǎn):
2個(gè)節(jié)點(diǎn)talker
(talker.cpp)
:
包含一個(gè)發(fā)布者節(jié)點(diǎn)listener
(listener.cpp)
:
包含一個(gè)接收者節(jié)點(diǎn)間的通訊:Topic(話題的名稱):“chatter”Message(傳遞的數(shù)據(jù)類型):std_msgs::StringString為
ROS自定義的數(shù)據(jù)類型String中包含唯一變量為
std::string
dataPage.
15ROSCPPHelloWorld程序Page.
16ROSCPPHello
World程序Page.
17ROSCPPHelloWorld程序目錄1ROS編成2ROSCPP3ROSPY4ROSLISPPage.
19ROSPYrospy是ROS的純Python客戶端庫。rospy客戶端API使Python程序員能夠快速與ROS
主題,服務(wù)和參數(shù)進(jìn)行交互。rospy的設(shè)計(jì)有利于運(yùn)行時(shí)性能的實(shí)現(xiàn)速度(即開發(fā)者時(shí)間),以便可以在ROS內(nèi)快速對原型和測試進(jìn)行算法測試。它也非常適合非關(guān)鍵路徑代碼,例如配置和初始化代碼。許多ROS工具都是用rospy編寫的,以利用類型內(nèi)省功能。許多ROS工具,例如rostopic
和rosservice,都建立在rospy之上。Page.
20ROSPY編寫發(fā)布節(jié)點(diǎn)“Node”(節(jié)點(diǎn))是ROS術(shù)語,表示被連接到ROS網(wǎng)絡(luò)的可執(zhí)行文件。在這里,我們將創(chuàng)建發(fā)布者("talker")節(jié)點(diǎn),這將持續(xù)的廣播一個(gè)消息。目錄更改為beginner_tutorials包,你在前面的教程中創(chuàng)建一個(gè)package(包):$roscd
beginner_tutorials我們創(chuàng)建一個(gè)“腳本”文件夾來存儲我們的Python腳本:$mkdir
scripts$cd
scripts那么示例腳本下載talker.py到新的腳本,目錄,使其可執(zhí)行:$wget/ros/ros_t...
_listener/talker.py$chmod+x
talker.py您可以查看和編輯文件
$
rosed
beginner_tutorials
talker.py
或者看下面。Page.
21ROSPY//
切換行號顯示#!/usr/bin/env
python#licenseremovedfor
brevityimport
rospy//每個(gè)Python
ROS
節(jié)點(diǎn)都會有這樣的聲明在頂部from
std_msgs.msg
import
String
//
std_msgs.msg導(dǎo)入,使我們可以重新使用std_msgs
/String消息類型發(fā)布。def
talker():pub
=
rospy.Publisher('chatter',
String,
queue_size=10)
//聲明節(jié)點(diǎn)發(fā)布到話題使用消息類型是String。String這里實(shí)際上是std_msgs.msg.String類。該queue_size參數(shù)是在新的ROS
hydro中,
若subscriber
(訂閱者)接收并不是足夠的快的情況下
,限制隊(duì)列消息的數(shù)量。rospy.init_node('talker',
anonymous=True)
//是非常重要的,因?yàn)樗鼤嬖Vrospy節(jié)點(diǎn)的名稱—直到rospy有這方面的信息,就不能開始與ROS
Master(ROS控制器)通信。在這種情況下,您的節(jié)點(diǎn)將命名為talker.
。rate=rospy.Rate(10)
#
10hz //該行創(chuàng)建了一個(gè)Rate的對象。其為了方便實(shí)現(xiàn)sleep()方法,它提供了一個(gè)便捷的途徑在所需的速度下循環(huán)。隨著它的參數(shù)10,我們應(yīng)該預(yù)料到每秒10次經(jīng)過一個(gè)循環(huán)while
not
rospy.is_shutdown():
//這個(gè)循環(huán)是一個(gè)很標(biāo)準(zhǔn)的rospy結(jié)構(gòu):檢查rospy.is_shutdown()標(biāo)志位,然后進(jìn)入while循環(huán)。你必須察看is_shutdown()來檢查你的程序應(yīng)該退出rospy.get_time() rospy.loginfo(hello_str)hello_str
=
"hello
world
s"pub.publish(hello_str)rate.sleep()if__name
=='__main
':try:talker() //除了標(biāo)準(zhǔn)的
Python
__main
check之外,還將獲得一個(gè)rospy.ROSInterruptException.except
rospy.ROSInterruptException:pass //當(dāng)按下Ctrl-C鍵被按下或當(dāng)節(jié)點(diǎn)關(guān)閉時(shí),可以通過rospy.sleep()和rospy.Rate.sleep()方法關(guān)閉節(jié)點(diǎn)。這引發(fā)異常的原因是為了在執(zhí)行代碼
sleep()
后繼續(xù)執(zhí)行。目錄1ROS編成2ROSCPP3
ROSPY 4ROSLISPPage.
23ROSLISPRoslisp是用于在慣用Common
Lisp中編寫ROS節(jié)點(diǎn)的客戶端庫。該庫的編寫是為了支持易用性,快速編寫節(jié)點(diǎn)腳本以及對正在運(yùn)行的ROS系統(tǒng)進(jìn)行交互式調(diào)試。Roslisp是穩(wěn)定的ROS核心發(fā)行版的一部分,并遵循ROS版本策略。Roslisp已經(jīng)在Ubuntu(Jaunty或更高版本)上進(jìn)行了相當(dāng)廣泛的測試,并在某種程度上在OS
X
10.5上進(jìn)行了測試。Roslisp基于Common
Lisp
的SBCL版本。它被定義為roslisp
ROS軟件包中的系統(tǒng)依賴項(xiàng)。謝謝!智能網(wǎng)聯(lián)創(chuàng)新實(shí)驗(yàn)室無人駕駛汽車的架構(gòu)建模與代碼生成第一部分原型建模方法概述第二部分原型建模方法優(yōu)勢第三部分原型建模開發(fā)過程第四部分原型建模開發(fā)案例第五部分原型建模開發(fā)實(shí)踐
目錄
CONTENTS第三章智能網(wǎng)聯(lián)汽車建模15.1原型建模方法概述5.1原型建模方法概述5.1原型建模方法概述基于模型設(shè)計(jì)5.1原型建模方法概述5.1原型建模方法概述5.2原型建模方法優(yōu)勢車載控制器軟件開發(fā)趨勢5.2原型建模方法優(yōu)勢軟件失效導(dǎo)致的車輛召回統(tǒng)計(jì)5.2原型建模方法優(yōu)勢實(shí)施ISO26262的目的5.2原型建模方法優(yōu)勢ISO26262對軟件開發(fā)的需求5.2原型建模方法優(yōu)勢ISO26262定義的軟件開發(fā)過程5.2原型建模方法優(yōu)勢ISO26262建模/編程語言的選擇和相關(guān)標(biāo)準(zhǔn)5.2原型建模方法優(yōu)勢傳統(tǒng)開發(fā)方式和MBD開發(fā)對比5.2原型建模方法優(yōu)勢傳統(tǒng)開發(fā)方式和MBD開發(fā)對比5.3原型建模開發(fā)過程ISO26262設(shè)計(jì)工具/驗(yàn)證工具的選擇5.3原型建模開發(fā)過程ISO26262等效性測試過程5.3原型建模開發(fā)過程ISO26262定義的軟件開發(fā)過程5.3原型建模開發(fā)過程ISO26262對軟件開發(fā)的過程5.3原型建模開發(fā)過程ISO26262對軟件開發(fā)的過程5.3原型建模開發(fā)過程ISO26262對軟件開發(fā)的過程5.4原型建模開發(fā)案例ISO26262對軟件開發(fā)的案例5.4原型建模開發(fā)案例ISO26262對軟件開發(fā)的案例5.4原型建模開發(fā)案例ISO26262對軟件開發(fā)的案例5.4原型建模開發(fā)案例ISO26262對軟件開發(fā)的案例5.4原型建模開發(fā)案例ISO26262對軟件開發(fā)的案例5.4原型建模開發(fā)案例概念及架構(gòu)階段仿真5.4原型建模開發(fā)案例輔助架構(gòu)設(shè)計(jì)5.4原型建模開發(fā)案例代碼生成后的等效測試5.4原型建模開發(fā)案例代碼生成后單體驗(yàn)證5.4原型建模開發(fā)案例ISO26262對軟件開發(fā)的案例5.4原型建模開發(fā)案例ISO26262對軟件開發(fā)的案例5.4原型建模開發(fā)案例ISO26262對軟件開發(fā)的案例5.4原型建模開發(fā)案例ISO26262對軟件開發(fā)的案例5.4原型建模開發(fā)案例MBD開發(fā)流程5.4原型建模開發(fā)案例ISO26262對開發(fā)回顧5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊輸入和輸出5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊輸入和輸出5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊輸入和輸出Simulink處理三類數(shù)據(jù):信號-在仿真期間計(jì)算的模塊輸入和輸出狀態(tài)-在仿真期間中計(jì)算的代表模塊動態(tài)的內(nèi)部值參數(shù)-影響模塊行為的值,由用戶控制5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Car系統(tǒng)5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Car系統(tǒng)啟動MATLAB?。在MATLAB工具條上,點(diǎn)擊Simulink按鈕。5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Car系統(tǒng)點(diǎn)擊BlankModel模板。SimulinkEditor打開。從File菜單中,選擇Saveas。在Filename文本框中,輸入您的模型的名稱,例如simple_model。點(diǎn)擊Save。模型使用文件擴(kuò)展名.slx進(jìn)行保存。5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Car系統(tǒng)下面是大多數(shù)工作流常用的一些模塊庫:Continuous-
連續(xù)狀態(tài)的系統(tǒng)的模塊Discrete-
離散狀態(tài)的系統(tǒng)的模塊MathOperations-實(shí)現(xiàn)代數(shù)和邏輯方程的模塊Sinks-
存儲并顯示所連接信號的模塊Sources-
生成模型的驅(qū)動信號值的模塊5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Car系統(tǒng)點(diǎn)擊并拖動每個(gè)模塊。要調(diào)整模塊大小,請點(diǎn)擊并拖動一個(gè)角。5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Car系統(tǒng)在輸出端口和輸入端口之間創(chuàng)建線條來連接模塊。5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Car系統(tǒng)在模型窗口上,通過更改工具欄上的值來設(shè)置仿真停止時(shí)間。運(yùn)動模型對接近傳感器建模。在這種情況下,數(shù)字傳感器用于測量汽車與10米(30英尺)外的障礙物之間的距離。模型基于下列條件來輸出傳感器的測量值和汽車的位置值:汽車在到達(dá)障礙物時(shí)會緊急剎車。在現(xiàn)實(shí)世界中,傳感器對距離的測量不夠精確,從而導(dǎo)致隨機(jī)數(shù)值誤差。數(shù)字傳感器以固定時(shí)間間隔運(yùn)行。5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Car系統(tǒng)添加新模塊和連接:添加一個(gè)用來測量與障礙物之間距離的傳感器。修改模型。根據(jù)需要擴(kuò)展模型窗口,以容納新模塊。求實(shí)際距離。要想求出障礙物位置和車輛位置之間的距離,需要添加Subtract模塊。還要添加Constant模塊來為障礙物的位置設(shè)置常量值10。建模真實(shí)傳感器常見的不完美測量。使用Sourceslibrary中的Band-LimitedWhiteNoise模塊產(chǎn)生噪聲。將Noisepower參數(shù)設(shè)置為0.001。通過使用MathOperations庫中的Add模塊將噪聲添加到測量中。對每0.1秒觸發(fā)一次的數(shù)字傳感器進(jìn)行建模。在Simulink中,以給定時(shí)間間隔對信號進(jìn)行采樣需要一個(gè)樣本和保持器,由零階保持器實(shí)現(xiàn)。從Discrete庫中添加Zero-OrderHold模塊。將該模塊添加到模型后,將SampleTime參數(shù)更改為0.1。添加另一個(gè)Outport,用來連接傳感器輸出。保留Portnumber參數(shù)的默認(rèn)值。5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Car系統(tǒng)連接新模塊。Integrator,Second-Order模塊的輸出已連接到另一個(gè)端口。要在該信號中創(chuàng)建分支,請左鍵點(diǎn)擊該信號以突出顯示可供連接的端口,然后點(diǎn)擊適當(dāng)?shù)亩丝凇?.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Car系統(tǒng)在模型窗口上,通過更改工具欄上的值來設(shè)置仿真停止時(shí)間。運(yùn)行模型。查看器顯示兩個(gè)信號:actualdistance(黃色)和measureddistance(藍(lán)色)5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Smart_braking系統(tǒng)此模型包含以下組件和數(shù)據(jù)流:當(dāng)踩下油門踏板時(shí),汽車移動。接近傳感器測量它與障礙物之間的距離。警報(bào)系統(tǒng)基于該接近度生成警報(bào)。警報(bào)系統(tǒng)自動控制剎車以免撞到障礙物。5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊搭建一個(gè)簡單的Smart_braking系統(tǒng)要查看完整的樹,請點(diǎn)擊模型窗口左下角的Hide/ShowModelBrowser按鈕5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊基于模型的設(shè)計(jì)優(yōu)點(diǎn):讓各個(gè)工程團(tuán)隊(duì)使用同一個(gè)設(shè)計(jì)環(huán)境將設(shè)計(jì)與要求直接掛鉤將測試與設(shè)計(jì)相結(jié)合,不斷發(fā)現(xiàn)并更正錯(cuò)誤通過多域仿真對算法進(jìn)行優(yōu)化自動生成嵌入式軟件代碼和文檔開發(fā)和重用測試套件5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊基于模型的設(shè)計(jì)優(yōu)點(diǎn):讓各個(gè)工程團(tuán)隊(duì)使用同一個(gè)設(shè)計(jì)環(huán)境將設(shè)計(jì)與要求直接掛鉤將測試與設(shè)計(jì)相結(jié)合,不斷發(fā)現(xiàn)并更正錯(cuò)誤通過多域仿真對算法進(jìn)行優(yōu)化自動生成嵌入式軟件代碼和文檔開發(fā)和重用測試套件5.5原型建模開發(fā)實(shí)踐149simulink基本功能模塊Simulink中基于模型的設(shè)計(jì)工作流示例5.5原型建模開發(fā)實(shí)踐150simulink基本功能模塊5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊雙輪驅(qū)動確定建模目的在設(shè)計(jì)模型之前,請明確目的和需求。目的決定模型的結(jié)構(gòu)和詳細(xì)程度。如果目的只是弄清楚機(jī)器人可以走多快,那么只對線性運(yùn)動進(jìn)行建模就足夠了。如果目的是為設(shè)備設(shè)計(jì)一組輸入,使它按照給定的路徑移動,那就會涉及到旋轉(zhuǎn)組件。如果目的是避障,那么系統(tǒng)就需要一個(gè)傳感器。要實(shí)現(xiàn)此目的,模型必須能夠:確定電機(jī)停止后機(jī)器人多長時(shí)間能停止下來;提供一系列線性運(yùn)動和旋轉(zhuǎn)運(yùn)動的命令,使機(jī)器人能夠在一個(gè)二維空間內(nèi)移動;第一個(gè)建模目的是讓您能夠分析運(yùn)動,以便設(shè)計(jì)傳感器。第二個(gè)目的是讓您能夠?qū)υO(shè)計(jì)進(jìn)行測試。5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊雙輪驅(qū)動作業(yè)設(shè)計(jì):兩個(gè)電動輪子在兩個(gè)維度上移動。其中包括:線性運(yùn)動特性旋轉(zhuǎn)運(yùn)動特性用于確定系統(tǒng)在兩個(gè)維度上的位置的變換用于測量機(jī)器人與障礙物之間的距離的傳感器5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊雙輪驅(qū)動提示系統(tǒng)的模型包括:施加在輪子上的輸入作用力、兩個(gè)相同的輪子、旋轉(zhuǎn)動態(tài)特性、坐標(biāo)變換、一個(gè)傳感器。5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊雙輪驅(qū)動提示:如下所示放置并重命名這五個(gè)Subsystem模塊。雙擊模塊名稱并鍵入新名稱。5.5原型建模開發(fā)實(shí)踐simulink基本功能模塊雙輪驅(qū)動
提示:確定子系統(tǒng)之間的輸入和輸出連接(例如,信號線)。輸入和輸出值在仿真過程中動態(tài)變化。模塊之間的連接線代表數(shù)據(jù)傳輸。謝謝!《自動駕駛學(xué)習(xí)任務(wù)1:消息場景設(shè)計(jì)》發(fā)布與訂閱智能網(wǎng)聯(lián)創(chuàng)新實(shí)驗(yàn)室學(xué)習(xí)任務(wù)1:
消息發(fā)布與訂閱1.代碼講解2.實(shí)際操作3.視頻演示《上機(jī)實(shí)踐部分——自動駕駛場景編程》1代碼講解?python版本的節(jié)點(diǎn)發(fā)布與訂閱由pub1.py和sub1.py實(shí)現(xiàn)。?在pub1.py中首先新建一個(gè)名為pub1的節(jié)點(diǎn)。if
name
==
'
main
':rospy.in
it
node("pub1")test1()rospy.spin()pass學(xué)習(xí)任務(wù)1:
消息發(fā)布與訂閱《上機(jī)實(shí)踐部分——自動駕駛場景編程》?在函數(shù)test1中創(chuàng)建/test1主題,
發(fā)布的是Twist類型的消息
。
隨后新建一個(gè)Twist消息并
設(shè)置好內(nèi)容后發(fā)布。def
test1():whileTrue:pub=rospy.Publisher("/test1",Twist,
queue
size=10)twist
=Twist()twist.linear.x=
1.0twist.angular.z=
1.0pub.publish(twist)學(xué)習(xí)任務(wù)1:
消息發(fā)布與訂閱《上機(jī)實(shí)踐部分——自動駕駛場景編程》?
在sub1.py中首先新建一個(gè)名為sub1的節(jié)點(diǎn)并訂閱/test1主題。if
name
==
'
main
':rospy.in
it
node("sub1")rospy.Subscriber("/test1",Twist,test1)rospy.spin()pass?隨后在回調(diào)函數(shù)test1中打印消息。def
test1(msg):print(msg)pass學(xué)習(xí)任務(wù)1:
消息發(fā)布與訂閱《上機(jī)實(shí)踐部分——自動駕駛場景編程》?C++版本的節(jié)點(diǎn)發(fā)布與訂閱由pub2.cpp和sub2.cpp實(shí)現(xiàn)。?在pub2.cpp中首先新建一個(gè)名為pub2的節(jié)點(diǎn)
。
創(chuàng)建/test2主題,
發(fā)布的是Twist類型的消息
。
隨后新建一個(gè)Twist消
息并設(shè)置好內(nèi)容后發(fā)布。#include
"ros/ros.h"#include
"geometry_msgs/Twist.h"int
main(int
argc,
char**
argv){ros::in
it(argc,
argv,
"pub2");ros::NodeHandle
node;geometry_msgs::Twist
msg;ros::Publisher
pub=node.advertise<geometry_msgs::Twist>("/test2",10);while
(ros::ok()){ros::spinOnce();msg.linear.x=
1.0;msg.angular.z=
1.0;pub.publish(msg);}return
0;};學(xué)習(xí)任務(wù)1:
消息發(fā)布與訂閱《上機(jī)實(shí)踐部分——自動駕駛場景編程》在sub2.cpp中首先新建一個(gè)名為sub2的節(jié)點(diǎn)并訂閱/test2主題
。在回調(diào)函數(shù)test2中打印消息。intmain(intargc,
char
**argv){ros::in
it(argc,argv,
"sub2");ros::NodeHandlenode;ros::Subscribersub=node.subscribe("/test2",
1,
test2);while
(ros::ok()){ros::spinOnce();}return
0;}voidtest2(constgeometry_msgs::Twist::ConstPtr&msg){ROS_INFO("speed:%.2f,steer:%.2f",msg->linear.x,msg->angular.z);}學(xué)習(xí)任務(wù)1:
消息發(fā)布與訂閱《上機(jī)實(shí)踐部分——自動駕駛場景編程》2實(shí)際操作?
新建終端,
輸出roscore啟動Master。學(xué)習(xí)任務(wù)1:
消息發(fā)布與訂閱《上機(jī)實(shí)踐部分——自動駕駛場景編程》cdaliyun_demosourcedevel/setup.bashrosrunraceworldpub1.py?打開終端,
輸入如下命令開啟sub1
。
終端中可以看
到輸出。cdaliyun_demosourcedevel/setup.bashrosrunraceworldsub1.py學(xué)習(xí)任務(wù)1:
消息發(fā)布與訂閱?打開終端,
輸入如下命令開啟pub1?!渡蠙C(jī)實(shí)踐部分——自動駕駛場景編程》?打開終端,
輸入如下命令開啟sub2
。
終端中可以看
到輸出。cdaliyun_demosourcedevel/setup.bashrosrunraceworldsub2?打開終端,
輸入如下命令開啟pub2。cdaliyun_demosourcedevel/setup.bashrosrunraceworldpub2學(xué)習(xí)任務(wù)1:
消息發(fā)布與訂閱《上機(jī)實(shí)踐部分——自動駕駛場景編程》?
打開終端,
輸入rostopic
list命令查看當(dāng)前所有rostopic
。
可以找到我們代碼中新建的/test1和/test2主題。?
分別輸入rostopic
info/test1和rostopic
info/test2可以查看每個(gè)主題的發(fā)布者與訂閱者。學(xué)習(xí)任務(wù)1:
消息發(fā)布與訂閱《上機(jī)實(shí)踐部分——自動駕駛場景編程》
END
《學(xué)習(xí)任務(wù)2:鍵盤自動駕駛場景設(shè)計(jì)》控制無人車智能網(wǎng)聯(lián)創(chuàng)新實(shí)驗(yàn)室學(xué)習(xí)任務(wù)2:
鍵盤控制1.代碼講解2.實(shí)際操作3.視頻演示《上機(jī)實(shí)踐部分——自動駕駛場景編程》1代碼講解?鍵盤控制程序使用的是raceworld1場景,
由raceworld1.launch文件啟動
。
找到/root/aliyun_demo/src/raceworld/launch文件夾中的raceworld1.launch文件并打開。?在launch文件內(nèi)加載了多個(gè)控制器,
其中l(wèi)eft_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接收ROS消息,
分別控制了左右后輪速度,
左右前輪速度和轉(zhuǎn)向
角度。<node
name="controller_manager"p
kg="controller_manager"type="spawner"respawn="false"output="screen"args="left_rear_wheel_velocity_controllerlerleft_front_wheel_velocity_controllerllerleft_steering_hinge_position_controllerright_rear_wheel_velocity_controlright_front_wheel_velocity_controright_steering_hinge_position_controllerjoint_state_controller"/>學(xué)習(xí)任務(wù)2:
鍵盤控制《上機(jī)實(shí)踐部分——自動駕駛場景編程》?在加載控制器代碼的下面,
調(diào)用了一個(gè)名為servo_comannds1.py的代碼文件。<node
p
kg="raceworld"type="servo_commands1.py"name="servo_commands"output="screen">?打開/root/aliyun_demo/src/raceworld/scripts文件夾中的servo_comannds1.py文件我們可以看到,
代碼中新建了一
個(gè)名為servo_comannds
的節(jié)點(diǎn),
訂閱并接收/deepracer1/ackermann_cmd_mux/output消息。def
servo_commands():globalflag_moverospy.in
it_node(
'servo_commands
',anonymous=True)rospy.Subscriber("/deepracer1/ackermann_cmd_mux/output",AckermannDriveStamped,set_throttle_steer)rospy.spin()學(xué)習(xí)任務(wù)2:
鍵盤控制《上機(jī)實(shí)踐部分——自動駕駛場景編程》?在接收到AckermannDriveStamped類型消息后經(jīng)過適當(dāng)?shù)霓D(zhuǎn)換,
將速度和轉(zhuǎn)向信息發(fā)布給之前所述六個(gè)控制器。def
set_throttle_steer(data):globalflag_movepub_vel_left_rear_wheel=rospy.Publisher("/deepracer1/left_rear_wheel_velocity_controller/command",Float64,queue_size=1)pub_vel_right_rear_wheel=rospy.Publisher("/deepracer1/right_rear_wheel_velocity_controller/command",Float64,queue_size=1)pub_vel_left_front_wheel=rospy.Publisher("/deepracer1/left_front_wheel_velocity_controller/command",Float64,queue_size=1)pub_vel_right_front_wheel=rospy.Publisher("/deepracer1/right_front_wheel_velocity_controller/command",Float64,queue_size=1)pub_pos_left_steering_hinge=rospy.Publisher("/deepracer1/left_steering_hinge_position_controller/command",Float64,queue_size=1)pub_pos_right_steering_hinge=rospy.Publisher("/deepracer1/right_steering_hinge_position_controller/command",Float64,queue_size=1)throttle=data.drive.speed*28print("Throttle:",throttle)steer=data.drive.steering_angleprint("Steer:",steer)pub_vel_left_rear_wheel.publish(throttle)pub_vel_right_rear_wheel.publish(throttle)pub_vel_left_front_wheel.publish(throttle)pub_vel_right_fron
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 托育美食烘培課程設(shè)計(jì)
- 2024-2030年全球及中國玻璃纖維管道覆蓋層行業(yè)發(fā)展動態(tài)及投資規(guī)劃分析報(bào)告
- 2024-2030年全球及中國活性膠原蛋白保健品行業(yè)銷售規(guī)模及營銷策略研究報(bào)告
- 2024-2030年全球及中國標(biāo)準(zhǔn)海運(yùn)干貨集裝箱行業(yè)現(xiàn)狀規(guī)模及發(fā)展前景預(yù)測報(bào)告
- 2024-2030年全球及中國投幣機(jī)行業(yè)盈利模式及需求前景預(yù)測報(bào)告
- 2024-2030年全球及中國家電用薄膜電容器行業(yè)盈利動態(tài)及投資效益預(yù)測報(bào)告
- 2024-2030年全球與中國蒸汽壓力測試儀市場銷售策略及競爭趨勢預(yù)測報(bào)告
- 2024-2030年全球SCADA行業(yè)發(fā)展動態(tài)及投資前景預(yù)測報(bào)告
- 2024-2030年中國鳥嘌呤行業(yè)競爭格局及投資戰(zhàn)略分析報(bào)告
- 2024-2030年中國高端女裝行業(yè)營銷模式及投資競爭力分析報(bào)告
- 中國傳統(tǒng)文化中的領(lǐng)導(dǎo)力——曾國藩管理方略ppt課件
- 政府的權(quán)力——依法行使
- 最新《西游記》41至60回練習(xí)題(有答案)(版權(quán)所有,侵權(quán)必究)
- 施工組織學(xué)課程設(shè)計(jì)
- EPE氣泡墊檢驗(yàn)通用標(biāo)準(zhǔn)
- 數(shù)獨(dú)比賽“六宮”練習(xí)題(96道)練習(xí)
- 課程設(shè)計(jì)整體式肋梁樓蓋設(shè)計(jì)
- 機(jī)械行業(yè)特殊工種目錄
- 足球興趣小組活動記錄617
- 昆明市不動產(chǎn)登記中心最新抵押表全三套(共4頁)
- 施工組織架構(gòu)圖
評論
0/150
提交評論