Simulasi memainkan peranan penting dalam penyelidikan dan pembangunan pemanduan autonomi Ia boleh meningkatkan kecekapan penyelidikan dan pembangunan serta memberikan jaminan untuk kebolehpercayaan algoritma. Sebagai platform sumber terbuka yang sangat baik, sistem Baidu Apollo sangat sesuai untuk penyelidikan oleh rakan-rakan yang berminat untuk mempelajari pemanduan autonomi. Selain itu, Carsim/Trucksim ialah alat simulasi dinamik kenderaan klasik yang sangat dihormati.
Artikel ini memperkenalkan kaedah merealisasikan simulasi masa nyata tempatan melalui gabungan Apollo dan Trucksim. Ia sesuai untuk pemula untuk membina platform simulasi dan mengkaji sistem Apollo.
Kod teras projek Apollo dilaksanakan dalam C++. Antara muka biasa untuk Trucksim termasuk simulink, Python dan bahasa C. Artikel ini mula-mula akan memperkenalkan seni bina Apollo, simulink dan simulasi bersama Trucksim, dan membincangkan masalah yang wujud dalam sistem simulasi ini. Seterusnya, kami akan memberi tumpuan kepada simulasi bersama Apollo dan Trucksim.
Simulink dan Apollo boleh berkomunikasi melalui ROS. Memandangkan format data mesej Apollo ialah protobuf, dan alat ROS Simulink hanya menyokong mesej ROS standard (mesej ROS), satu nod penukaran format boleh ditambahkan pada Apollo untuk mencapai keserasian. Mengenai penyelesaian Simulink memanggil Trucksim, terdapat banyak sumber di Internet untuk rujukan, jadi saya tidak akan menjelaskan secara terperinci.
rajah penyelesaian simulink
Wujudkan komunikasi websoket antara projek QT dan projek Apollo. Dalam projek Apollo, penukaran bersama antara mesej ros (atau mesej siber) dan soket web direalisasikan dengan menambah modul rosbridge (atau cyber_bridge). Projek QT dilaksanakan dalam C++ sebagai pelanggan websocket dan memanggil perpustakaan dinamik Trucksim untuk merealisasikan fungsi menjalankan Trucksim dalam masa nyata. Rajah penyelesaian rosbridge alamat ditunjukkan dalam Rajah 2. Nama hos/Alamat IP dan Port ialah alamat dan nombor port ROS_MASTER_URI masing-masing, yang dijelaskan dalam mekanisme komunikasi di atas.
Konfigurasikan alamat rangkaian ROS
Untuk memudahkan penyahpepijatan dan pengesahan, sekarang mulakan ROS di sebelah MATLAB. Proses konfigurasi adalah seperti berikut:
Arahan tetapan MATLAB:>> setenv('ROS_MASTER_URI','http://192.168.103.122:11311')>> setenv('ROS_IP','192.168.103.198')>> rosinit('192.168.103.122')
3.1.2 Konfigurasi TruckSim
Antara muka konfigurasiTrucksim ialah pengaturcaraan trak berasaskan wizard, konfigurasi SSS pilih antara muka , lihat parameter khusus Rajah 3. Antara muka kawalan: Pilih simulink untuk Model. antara muka konfigurasi parameter input
pemasangan rosbridge dalam talian Terdapat banyak tutorial, jadi saya tidak akan menjelaskan secara terperinci dalam artikel ini.
Penggunaan adalah seperti berikut:
cd ros_pkgs_ws
catkin_makeMulakan rosbridge
sumber /apollo/ros_pkgs_ws/devel/setup.bash=rcoPAT
rosla unch rosbridge_server rosbridge_websocket .launch3.2.1 Arahan konfigurasi projek Qt
3.2.1.1 Maklumat versi Qt dan CMake
3.2.1.3 takrifan projek dan Antaramuka Qt
Apollo /apollo/trucksim /pose
{"op":"publish","topic":"/apollo/tucksim/pose","msg": {"header": {"timestamp_sec":1572253610.76292, "sequence_num":77}, "trucksimpose": {"XCG_TM":30.9964522249, // 单位:m "YCG_TM":0.657853758823, // 单位:m "ZCG_TM":1.00644079555, // 单位:m "YAW":-0.015505948987, // 单位:rad "VX":7.81497285565, // 单位:m/s "STEER_SW":2.84450684087, // 单位:rad "AV_Y":0.133153549217, // 单位:rad/s "GEARSTAT":5.0, // 无单位 "XCG_TM2":22.5890979801, // 单位:m "YCG_TM2":-0.471483304991, // 单位:m "ZCG_TM2":2.08466406388, // 单位:m "YAW_2":-0.0253130178796, // 单位:rad "VY":0.326368169782, // 单位:m/s "DISTANCE":31.0034324244, // 单位:m "DELTA_YAW":-0.015505948987, // 单位:rad "DISTANCE_2":22.5940178822, // 单位:m "DELTA_YAW_2":-0.0253130178796 // 单位:rad/s } }}
注释:
1)真车是一个高阶非线性连续系统,TruckSim通过固定时间步长离散系统来模拟真车,当模型步长选择较大时(如之前设置的0.01s),模型较不准;TruckSim模型是由悬架系统-动力系统-转向系统-制动系统-轮胎模型-空气动力学等系统构成的复杂系统,当其中一个或多个系统因为时间步长太大而很不准时,就会出现车抖动比较明显的现象。
2)模型更新频率设为1000hz是TruckSim官网推荐的,经验证,这个频率能解决车抖动问题。
注释:
受3中积分方法决定,当选择每个步长更新两次的积分方法,VS_EXT_EQ_IN和VS_EXT_EQ_OUT更新频率是加载频率的2倍,为2000hz。
原文链接:https://mp.weixin.qq.com/s/8QNp5iQebE3lPJzEgq_bOA
Atas ialah kandungan terperinci Apollo bekerjasama dengan Carsim/TruckSim untuk simulasi bersama. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!