Comments (7)
Treba smisliti kako obraditi to. Ako se robot krece napred a senzori nazad okinu, onda ne treba da stane, dok pri rotaciji mislim da treba da stane ako bilo koji okine (ali ako se rotira blizu ivice terena mozda detektuje osobe van terena). Mozemo citati trenutnu brzinu robota iz /big/odom pa na osnovu toga zakljuciti mozda.
Ovo je predlog za ovu godinu, tu svakako mislim da moramo reorganizovati stvari za narednu.
from mep3.
@angstrem98 To je dobra ideja, samo sto bih ja prije citao Twist
, manje suma ima i manje kasni od Odometry
.
Treba nam BT uslov koji provjerava da li postoji prepreka:
- BT bi slusao
LaserScan
,Range
,Twist
iTFMessage
teme.- Svaki od
LaserScan
iRange
ima zaglavlje u kome se nalaziframe_id
, pa se pozicija svakog senzora moze odrediti u odnosu namap
frejm uz pomoc TFa.
- Svaki od
- Sve prepreke van terena treba da se ignorisu (baciti pogled na #106).
- Ukoliko se robot okrece (
abs(twist.angular.z) > 0
) i bilo koji odLaserScan
iRange
prepozna prepreku onda BT treba da vratitrue
. - Zavisno da li se robot krece naprijed ili nazad (
twist.linear.x
) i bilo koji odLaserScan
iRange
prepozna prepreku na odgovarajucoj strani onda BT treba da vratitrue
.
Zatim, treba napraviti BT podstablo (recimo skill_safe_precise_navigate_to
) koje bi koristilo BT uslov:
- Mislim da
PipelineSequence
BT cvor moze da iniciraPreciseNavigateToAction
, a onda u pozadini provjerava neki uslov:
- Ukoliko se prepreka ne ukloni za vise od x sekundi podstablo treba pukne.
from mep3.
@VladimirVincan Predlog je da se vecina koda ne piše unutar BT. Napisati zaseban cvor koji obradjuje senzore, za lidar slusati temu /big/scan_inflated
jer su tu vec uklonjene tacke van terena i neprijateljski roboti su uvecani (ovde postoji neki mali bag da taj cvor puca, ali resicu ubrzo).
U tom cvoru predlazem da se TF transformacije obradjuju u posebnom thread-u, imas ovde primer:
mep3/mep3_navigation/src/distance_angle/distance_angle_regulator.cpp
Lines 177 to 184 in 4586e95
Dakle tacke lidara van terena su resene (trenutno sve sto se nalazi na 10 cm ili blize ivici terena se uklanja, zbog tornja npr.), kad se tacka dobijena sa range senzora transformise u map frame onda je izbaciti na slican nacin.
Moj predlog za jednostavnu detekciju prepreka lidarom jeste da gledas tacke ispred i iza robota i prebrojis koliko tacaka je na distanci manjoj od neke konstante safe_distance
. Ako imamo ispred robota vise od min_number
tacaka na distanci manjoj od safe_distance
znaci imamo prepreku ispred.
Na osnovu citanja Twist
, sto mozes dobiti sa teme /big/cmd_vel
dobijas da li ce doci do kolizije. Ovaj podatak objavljujes na neku temu, moze neka bool ili int poruka. Unutar BT je dovoljno samo prijaviti se na temu i videti da li treba stati ili je bezbedno nastaviti.
from mep3.
Skroz sam zaboravio da /big/scan_inflated ne sadrzi tacke van terena. Ovo pojednostavljuje implementaciju, ne moras da racuns pozicije preko TFa, samo provjeris udaljenosti
from mep3.
Skroz sam zaboravio da /big/scan_inflated ne sadrzi tacke van terena. Ovo pojednostavljuje implementaciju, ne moras da racuns pozicije preko TFa, samo provjeris udaljenosti
Za lidar nece morati, ali za range swnzore hoce :(
from mep3.
@angstrem98 Mozes li ubaciti u ROS cvor za filtriranje lidara i filtriranje IR senzora? S obzirom na poziciju IR senzora msm da nam nece trebati inflacija, samo izbacivanje statickih prepreka
from mep3.
Implementirano u #168.
Doduse fale IR senzori. Treba iskoristit IR Webots drajvere iz #145 ako se odlucimo za koriscenje IR senzora
from mep3.
Related Issues (20)
- Vratiti Viewpoint
- Zakunacana vrijednost unutar mep3_bringup/launch/robot_launch.py fajla HOT 1
- Nije moguce eksportovati subtree u poseban fajl
- tf2 listener neće da učita statičke transformacije HOT 2
- Staviti u launch file opciju da se isključe kamera i protivnički roboti HOT 1
- LCD Driver HOT 1
- Fotoelektrični senzori HOT 1
- Raspberry HOT 1
- Preciznost RPP kontrolera
- Prečice za terminal HOT 3
- Lynxmotion HT1 firmware+software HOT 1
- Osnovna BT strategija failuje u main brenču HOT 3
- Promeniti svuda naziv `galactic_ws` u `ros2_ws` HOT 1
- Wroot HOT 1
- Improve startup time
- Merge distance-angle controller features into RPP and `behavior_server`
- Code is doubled, does not compile, just delete lines 198... 206 in /home/filip/galactic_ws/src/mep3/mep3_behavior_tree/include/mep3_behavior_tree/team_color_strategy_mirror.hpp HOT 1
- Refactor
- Hardversko upravljanje parametrima ROS-a
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mep3.