-
Notifications
You must be signed in to change notification settings - Fork 5
H ROS alapparadigmák
A következő wiki oldal pár ötletet ad, hogyan érdemes ROS-es programot fejleszteni.
Az ROS egyik jellemzője, hogy a topikok típusosak, vagyis a topikon továbbított üzenetek egy rögzített definíciónak felelnek meg. A típust egy üzenetleíró fájlban definiáljuk (*.msg fájlok). Például, a következő üzenetleírás egy jármű sebességét és kormányszögét adja vissza:
float64 linear_velocity
float64 wheel_angle
Kimondottan elosztott rendszerekben előnyös, ha ismerjük az üzenet keletkezésének az időpontját. Ezzel szűrhetők, szinkronizálhatók az egyes topikokon bejövő üzenetek. Gyakrolatban ez egy tetszőleges üzenet fejléccel (std_msgs/Header) való kiegészítését jelenti (bemutatva a fenti példán):
std_msgs/Header header
float64 linear_velocity
float64 wheel_angle
Az időbélyegre a generált üzenetben a header.stamp
mezővel hivatkozhatunk a programkódban. Az időbélyeg megválasztása esettől függően különböző módon alakulhat:
- Az időbélyeg a bejövő szenzoradathoz köthető időbélyeg (pl. a LIDAR által visszaadott üzenet időbélyege). Ezzel visszakövethető mikor keletkezett a feldolgozandó adat, de szenzorfúzió esetén meg kell választani a referencia forrást.
- Legkényelmesebb nyilván a feldolgozás időpontját megadni, de ez csökkenti a nyomonkövethetőségét a feldolgozásnak.
ROS programoknál visszatérő mintázat, hogy amikor ROS-el dolgozunk a folytonos feldolgozást a következőképpen oldjuk meg:
...
ros::Rate loop_rate(10);
while(!ros::ok())
{
...
// Elvégezni az adott munkát
...
ros::spinOnce();
loop_rate.sleep();
...
}
...
Tipikus alkalmazásokban sokkal elegánsabb az ROS timerek használata (http://wiki.ros.org/roscpp/Overview/Timers), ami az ROS órájához igazítva indukál eseményvezérelt végrehajtást. Előny ráadásul, hogy callback-ként osztálymetódus is használható, így az adott Timer tartozhat egy osztály hatáskörébe is.
English
- Wiki home
ROS2
migration- Version handling processes
- Xavier installation
- Startup Nissan Leaf
- Debug ROS
- Autoware universe
- Autoware msgs
- How to open rosbag files
ROS 2
humble jeston dockerROS 2
DDSROS 2
joystick WSL
Hungarian
- Topics
- Transforms, frames
- Cheatsheet 🔥
- SSH no password
- Boot, systemd
- Diagnostics
- NDT basics
- NDT comparison
- CUDA install
- Szimulátor indítása parkolási feladathoz
- WSL-el kapcsolatos hasznos infók
- GPS-based pointcloud map
- Rviz video
- LIDAR detekció topicjai
Further: