carzum / termviz Goto Github PK
View Code? Open in Web Editor NEWROS visualisation on the terminal
License: MIT License
ROS visualisation on the terminal
License: MIT License
It would help me a lot to localize a robot if I laser scanner data would move along with the ghost robot when localizing the robot. This makes it easy to figure out if the pose estimate is good or not before issuing it.
Extracting the Application from the main loop will allow a cleaner implementation of new windows (e.g. an help popup)
Currently everything is hard-coded to read the param /footprint
. We should consider the possibility of the parameter not being published (and not crash). The parameter name could also be either customizable in the config or even better we could remove the concept of footprint altogether and support geometry_msgs::PolygonStamped
(as it's done in rviz)
E.g., press 'm', a list is visualized, choose with arrows or with numbers as shortcut
Originally posted by @Eman7C7 in #33 (comment)
On very slow connections the app sometimes take several seconds to process keyboard input.
This is is especially a problem when many cells are updated during drawing, IE when showing an rgb stream of a moving robot.
Can be reproduced conveniently with trickle:
trickle -d 400 -u 400 -s -t 0.1 ssh user@host
Show the coordinate frame and name of frames.
Right now, the app waits for the robot TF to be available before doing anything.
Additionally, it seems like there is no timeout on that TF. If it doesn't get published anymore during runtime, it shows an old pose.
One idea would be to handle a missing robot frame better in the code and show an error in the UI if this frame is missing.
I found https://github.com/rust-lang/log
all in for using it?
Proposal:
Enter teleoperation mode and display it, e.g. press t from normal mode
Staying normal mode but enable sending command val:
Start sending while a button is pressed (e.g. x)
Send 0 on all directions while x i s pressed
accelerate by pressing wsqe (forward backwards left right) and ad (rotate) each press increments the speed
if x is released, send 0
build instructions + key bindings
re
current MarkerArray implementation is broken
Using Lidar and Rada Data i.e., sensor/imu data subscriber in ROS.
(a)Sensor Fusion-On these Lidar and Radar Data(senor/imu) will be calculated EKF-RMSE values.
(b) here to how display and visualise Lidar vs Radar vs output Data(Delta x and Y of Ladar like vechile movment and Radar & RMSE values- ROS environment like
["estimate_x"] = estimate(0); /* may be Delta X Lidar and Radar
["estimate_y"] = estimate(1); /* may be Delta Y-Lidar and Radar
["rmse_x"] = RMSE(0);
["rmse_y"] = RMSE(1);
["rmse_vx"] = RMSE(2);
["rmse_vy"] = RMSE(3);
For Reference here the example:
Input:
R 11.3365 -0.175531 0.442173 1477010508654756 11.3 -2 0.909855 2.72956
L 11.3424 -1.85113 1477010508709711 11.35 -1.85 0.909847 2.72953
radar ro:11.3365radar phi:-0.175531ro_dot:0.442173timestamp1477010508654756
estimation.size:1223
ground_truth.size:1223
rmse_x:465527 rmse_y:454346 rmse_vx812756 rmse_vy723024
estimate(0):8292.03estimate(1)26058.1
Laser x:11.3424 Laser y:-1.85113 timestamp 1477010508709711
estimation.size:1224
ground_truth.size:1224
rmse_x:465337 rmse_y:454161 rmse_vx812478 rmse_vy724231
estimate(0):9914.02estimate(1)26312.6
It would be really useful to press a button in SendPose mode that allows to input manually x, y, theta values. If a robot is completely delocalized and way outside the map, this would help a lot
This includes:
I am trying to build this on Ubuntu 20-04, when after running the commands:
git clone [email protected]:carzum/termviz.git
cargo build --release
The error error: package `clap v4.1.4` cannot be built because it requires rustc 1.64.0 or newer, while the currently active rustc version is 1.61.0
is produced. However, I seem to be not able to update rustc
:
Reading package lists... Done
Building dependency tree
Reading state information... Done
rustc is already the newest version (1.61.0+dfsg1~llvm-1~exp1ubuntu0.20.04.1).
0 upgraded, 0 newly installed, 0 to remove and 63 not upgraded.
Do you have any idea how to get around this?
It seems that the help page sometimes struggles figuring out the correct size of the widgets. Probably a problem of tui::layout::Layout. We should check it this improved in a more recent version or figure out a workaround
We need to run
cargo fmt
and fail if there is any diff
This would allow the app mode to communicate with other modes.
Example:
reload config / all other modes if config changes
To avoid messing up the pose it would be helpful to revert changes done by sending initial poses. Either by keeping track of the poses or saving the current pose.
This is causing bugged rendering when the footprint parameter cannot be found :maxi:
The TF lookup is currently handled in a pretty ugly way. We should investigate how to improve it, see comments here: #14 (comment)_
I'd like to be able to run termviz such that the default mode is e.g. image - that is, without having to press the associated key (i
).
This is in order to be able to use termviz unattended.
Is this possible to do from the config file?
That would be awesome !
get rid of hardcoded config
Are we all ok if it is created after pressing 'h' and closed on any key?
https://github.com/fdehau/tui-rs suggests switching to https://github.com/ratatui-org/ratatui
thread 'main' panicked at 'called Result::unwrap()
on an Err
value: BadTomlData(Error { inner: ErrorInner { kind: Custom, line: Some(0), col: 0, at: Some(0), message: "missing field axis_length
", key: [] } })', src/main.rs:67:37
note: run with RUST_BACKTRACE=1
environment variable to display a backtrace
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.