uf-mil / mil_common Goto Github PK
View Code? Open in Web Editor NEWCommon software packages for MIL repositories
Common software packages for MIL repositories
Refactors for the passive sonar system. Some of these will be pushed upstream to Sylphase's passive sonar system:
Call service to reset PCODAR (forget all objects / pointclouds)
As we're going to be using sub8's valve board on NaviGator, this driver should be moved to mil_common.
Additionally, as we will be using multiple of these physical boards, the driver should add support for multiple boards (similar to the sub8 videoray driver).
Move the c++ library in uf_common (now mil_msgs) and any scripts to mil_tools.
I'm working on this.
Please list all files you want migrated from sub8 or navigator to the software-common repo. List the full path of where the file is from, and where it should go in the new repo. If the file is going to be a merge of sub8 and navigator files, say so.
For now we are just worrying about getting the files in the repo. We will go through and refactor later, but feel free to leave notes on what needs to be done.
The Wiki is missing a write up on how to use the passive SONAR. Readme of passive SONAR has legacy command of: "rosrun mil_passive_sonar sonar.launch."
The multilateration in mil_passive_sonar is fairly naive. Explore methods other than least squares or a more guarded version of least squares.
New dependencies have been added in the install script, so the Docker image has to rebuilt to provide accurate build info
Add support for multiple boards in one node of mil_pnuematic_actuators, for NaviGator's plan to have multiple boards for all of its valves
Recommend forking http://wiki.ros.org/libuvc_camera, adding the extension units found at https://github.com/econsysqtcam/qtcam/blob/master/src/see3cam_cu20.cpp
IDEALLY, we contribute most to the ROS community by creating a generic system for interfacing with UVC extension units, not just the ones present in this camera, then PR to the ROS driver.
Metaticket for various improvements to mission gui:
Write tooling/library/messages for nodes detecting objects in the 2D frame of a camera, or 3D poses for systems using PnP / stereo.
This system will be similar to the vision proxies system on NaviGator.
Ideas:
Originally proposed by Tess:
On NaviGator, we have a pretty accurate transform from our GPS/INS to the LIDAR because it is rigidly mounted with simple geometry (the CAD model tells us). However, the camera transforms were measured and likely have significant error. It is mathematically possible to recover the pose of the camera in the LIDAR frame by identifying the same features in a LIDAR pointcloud and an image frame. This would improve our transforms.
SujuGator's network broadcaster is non-project specific and should be in mil_common.
details to come
Just some reminders for me:
Write a generic interface for thruster mapping in 3D (body wrench to individual thrust efforts). Some ideal features
To make the online bagger more useful on test days, it should integrate with the bag command we made in two ways:
bag_online
, so the bag utility configuration can specify which to bag ex: bag_online="$bag_frontcam $bag_gnc"
Had a weird issue at navigator test day where a task had a dictionary error, and the task server simply responded with aborted and the key as the error, confusing me. It should return a more descriptive error, ideally with a stacktrace
I think it would be more appropriate for the triggering of bag writes from online bagger to be through the ROS action API than the ROS service API.
Why?
So you can see a description / usage guide for a task. Either static (written to ROS param) or dynamic (call a service, may change based on status).
Add software into mil_common to interface with the sylphase passive sonar board and perform higher level signal processing to obtain a heading to a ping or position estimation.
Some notes:
We should create a list of things to add / migrate to software-common
Commit a new .mbs and .hex file (with higher version number) to our fork of robot_eq driver, which sets the PWM frequency optimally for pinger
A few things that need to be done post-great integration:
All of the common tools should use tf2_ros, not tf.
The mission and perception code should also be migrated to tf2_ros.
@uf-mil/developers any takers?
Play some sample data with known ground truth pinger position, make sure the script finds something within an error tolerance
The occupancy grid produced from known objects seems to be consistently off in position from the lidar points it should be filled from. This is likely an off-by-one error with filling the occupancy grid matrix.
If user Control-C's a runtask command, it should catch this and cancel the task
runtasklocal <task> <arguments>
-> start a task server, run task, and close
Spurious (non-existing) objects are added from waves on NaviGator. #129 will help, but try new filtering methods too.
Here are some ideas:
Missions is a more appropriate name, more consistent with previous MIL work. This change will reduce confusion.
We had to temporarily disable building a couple programs in mil_vision in #95 because of a change in some OpenCV data type. There is probably an equivalent. So uncomment the lines commented in this PR, see what the build errors are, and fix it.
As discussed in the last two meetings, we are developing a branch of LabelMe to label logged data with object polygons for testing and training. We discussed producing bag files from these labels, containing images and the labeling data. We also discussed having a python class which will play these special bags and, provided with a verification predicate, assess the efficacy of a vision algorithm. I will be PRing the message files we agreed for storing this data.
@tessbianchi can you write the tooling needed to produce these bag files from the labeling data? Note: the bag should contain all the images of the original bag, not just the labeled images.
There's a really nice python tool called easy_thresh we ported from Subjugator. It seems to be broken on ros kinetic / 16.04. It still runs fine on my 14.04/Indigo system. After selecting a region to threshold, the 3D plot of the colors in this region opens briefly, then crashes, with a segmentation fault being reported in the terminal that opened it and no other errors. I tried my hand at fixing it, but it uses several libraries I have no experience with. Does anyone know who originally wrote this?
Add a node to replace the "fake objects" from navigator_lidar_oa. This node will allow humans/programs to place named markers in the global frame marking points of interest. This allows us to program in "priors" on where various challenges are, so the autonomy can explore these regions.
Some features to include:
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.