Coder Social home page Coder Social logo

navigator's Introduction

NaviGator

This repository has been merged into the MIL monorepo.

You can view the repository prior to the merge here

navigator's People

Contributors

brooksturtle avatar dssoto avatar ericgorday avatar forrestv avatar grymestone avatar jaxnb avatar jmmarotta avatar jnez71 avatar jpanikulam avatar kev-the-dev avatar mattlangford avatar rustybamboo avatar saltyan007 avatar sentree avatar tessbianchi avatar thedpws avatar thefata avatar viron11111 avatar whimbree avatar yichen89 avatar zachgoins avatar zobeld avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

navigator's Issues

Mission scripts crashing

Caused by something asking for odom before odom has been received by the navigator singleton object I THINK. The navigator singleton object needs to wait for odom if it hasn't been received yet if that is indeed the problem.

Continuous Integration

Using Semaphore Continuous Integration requires admin privileges of the repo to set it up. @zachgoins are you the admin? Since we have the install script now, it should be simple to actually set it up but you need to be the git admin.

Mission should not set other mission's inputs (Mission Planner should)

Considering the ambiguity in the rules of the use of mission outputs (scan the code colors, coral survey shapes, pinger gate) in determining mission inputs (shape to dock in, color to shoot at), I think we should abstract this decision making away from missions. Each mission should only set the parameters corresponding to the observed data (if any) of that mission. Then the mission planner should decide how to use that data to run other missions with different inputs. This way we have one file to edit for scripting all the missions together. Thoughts?

Example: Scan the code sets Colors=[GREEN,BLUE,YELLOW], Coral Survey sets SHAPE_2=TRIANGLE, then the mission planner runs detect deliver with inputs SHAPE=TRIANGLE, COLOR=GREEN

Implement simulation

While we get the hardware and electrical components up and running we should start experimenting with creating a sim from scratch or perhaps using a third party product. Having a working simulation is necessary for control implementation.

Simulator does not publish bounds

The simulator does not launch a bounds server (it can't because it doesn't have absolute odom), so the ogrid, and therefore everything that relies on it (obstacle avoidance, missions) do not work in the sim. This can be a pretty quick fix , jut publish bounds that are in a square the size of the gazebo world.

RobotX write up

Missing write up on simulator, acoustic based transit, and stereo vision.

Install script does not check if git is in installed

Daniel just tried to use the install script from a brand new Ubuntu 14.04 install. We noticed that it does not install git. Might be nice to add this to the script so it can be run without installing anything else first

Kill Alarm

Is there a reason to have an alarm to both kill and revive the boat? The AlarmRaiser class has a clear_alarm method that could be used to clear the kill alarm removing the redundancy.

Implement embedded protocol

Create serial node to communicate with the micro controller we decide to use. I do not know how much we will need to communicate between micro and ROS right now but it is good to start with serial early so it is ready when we need it

Considerations

  • Baud Rate
  • data input type (USB, RS485)

GPS waypoints

NaviGator is having problems going to GPS way points. Boat local Lat/long are very far off from Google Earth points.

Correct me if I'm wrong but it seemed that the boat was unable to return to recorded (using Sylphase INS) points using own INS system. Maybe an error from translation of relative to world?

Downward looking camera

Need TF for downward looking camera. Camera will be mounted on 2x4 cross beam at a depth less than 1 meter. Lucas has been notified. Has anyone done the camera calibration for the camera? The camera is in 121 on the file cabinet next to the window.

Side camera (for shooter) has unreliable auto whitebalance/exposure/brightness

The pointgrey camera on the right side of navigator, under the shooter, is unreliable in the auto configuration as compared to the front cameras, which look quite good at any of the tested conditions. This could be for a few reasons:

  • The camera is physically in a tube which blocks a significant portion of its field of view the border of which is white. This could throw off the auto white balance or other settings.
  • The settings on the camera/driver need to be tuned more

Write identify and dock perception / mission

By competition, we should have a mission written for the identify symbols and dock mission. It will likely use the same perception used for detect deliver (but running on the front camera). So far here is the plan:

  • Generate a "fake" ogrid in the same region as the dock, with smooth lines representing the docking bays, so that obstacle avoidance can navigate inside the bays without collisions from the ogrid dilation.
  • Determine the position and orientation of the three bays
  • Move in front of each bay to identify the symbols using perception
  • Navigate to the correct bay(s)

Simulator launching problems

There seems to still be some frustrating problems trying to launch the sim. It is probably a matter of timing. Sometimes gazebo will just freeze on a black screen, sometimes gazebo doesn't come up at all. Sometimes it freezes in spawning models. Happens on slow computers and fast computers

Don't really have a more detailed bug report. Just launch it a couple times in a row and you’ll see some issues.

Seems like it is mostly is gazebo crashing, which freezes everything else up.

Navigator singelton should have methods for setting mission parameters

It would be nice if mission-specific parameters could be set through the navigator singleton with methods similar to what we have implemented the vision services. A yaml file would list all the mission parameters and their valid values.

Ex:

detect_deliver_shape:
  param: /mission/detect_deliver/Color
  args: ['GREEN','BLUE','RED']

Then in a mission (like scan the code):

if scan_the_code_color[2] == "RED"
  #Throws error if color is invalid, warnings if already set, etc
  navigator.set_mission_param('detect_deliver_shape','RED')

I'll work on this. Not sure how this will work into mission planer system...

Implement primitive driver

Create node to turn a desired wrench (linear and angular force) into the proper thrust to move the vehicle along this wrench.

Considerations:

  • Optimization
  • overcoming asymmetrical motor thrust

Racquetball double feed

This weekend, we double fed the ball launcher during the last run. This was caused by starting a mission and killing it before the mission completed (ball loaded but not fired). When we re-attempted the mission, the mechanism fed a 2nd ball into the chamber. Daniel thinks that this can be solved by using ROS action library.

Lidar Classification

Everyone,

We should clarify who is doing what concercing lidar classification! After our Monday meeting, my goal was to take Tess's work and merge it back into my C++ code to have 1 node handling creating the ogrid, identifying objects, volume classification, and answering service requests. This information can then be used by other nodes for various purposes!

Essentially, I wanted to try free time up for Tess and also bundle the lidar code into 1 place. This way you can yell at me for any problems/errors/mistakes.

Tess you mentioned concerns about loosing functionality but I've already got your python code converted to C++ for remembering object ids and answering service requests.

Thoughts/comments/concerns?

-Ira

Simulator issue

When the simulator starts up, the challenges do not appear. We are missing all of the challenges except for the boat. Also, I cannot see land in the simulator.

Build Issue

When running catkin_make on the current master branch I got this error:

In file included from /home/user/nav_ws/devel/include/navigator_msgs/ShooterManual.h:8:0,
from /home/user/nav_ws/src/NaviGator/mission_systems/shooter/firmware/shooter.cpp:5:
/opt/ros/indigo/include/ros/service_traits.h:31:50: fatal error: boost/type_traits/remove_reference.hpp: No such file or directory
#include <boost/type_traits/remove_reference.hpp>
^
compilation terminated.
make[6]: *** [CMakeFiles/arduino.dir/shooter.cpp.obj] Error 1
make[5]: *** [CMakeFiles/arduino.dir/all] Error 2
make[4]: *** [CMakeFiles/arduino.dir/rule] Error 2
make[3]: *** [arduino] Error 2
make[2]: *** [NaviGator/mission_systems/shooter/CMakeFiles/navigator_shooter_firmware_arduino] Error 2
make[1]: *** [NaviGator/mission_systems/shooter/CMakeFiles/navigator_shooter_firmware_arduino.dir/all] Error 2
make: *** [all] Error 2
Invoking "make -j4 -l4" failed


Matt Langford said he and Tess ran catkin_make clean to fix

Write coral survey perception and mission

So far, no work has been done to write the perception or mission for the Underwater Shape Identification (previously Coral Survey) challenge. By the competition, we should have the mission written and the best perception we can get based on the sim, the footage in hawaii, and potential testing in a pool.

Implement remote control

Create node to turn inputs from a game controller into a desired wrench to send to the primitive driver. It is advised to use the default Ubuntu drivers to maintain cross platform integration

Semaphore Build Failing

It fails for almost every build. No idea what the problem could be. See me if youd like ssh access into the semaphore VM.

We could make our own CI system that wouldn't be garbage by having a script on mil plumbusi that pulls from any pr branches it sees and tests the build on there. Not sure how we would get the cool checkmark or x that semaphore has tho

Create constants for object database keys

So missions can know what object to search the database for, it would be helpful to define constants for the keys to use in the message file. For example

string SHOOTER=detect deliver target
string DOCK=find and dock

Object classifcation database should return the original data (Buoy.msg)

Currently, a service call to /database/single or /database/full returns data in the format of PerceptionObject.msg, which contains the objects id, name, size, and position. This removes some of the data of the original Buoy.msg sent by object detection, such as a normal and the 3D points of the object. For use in missions and for less confusion, perhaps this should just be one message format?

Simulation publishes wrong topic for right camera

The simulation publishes the right (shooter side) camera to /right, whereas on the real boat it is /right/right. It should be the same on both. For convenience, let's change the sim to use /right/right

Acoustic based transit gotcha

The rules give an example of the pinger mission where the boat drives through one gate, circles a buoy, and then drives back through another gate (page 19, http://robotx.org/images/files/2016-MRC-Tasks-2016-11-03.pdf). We'll have to be careful with how we define this mission since the pinger mission cannot be dependent on itself (ie, running a pinger mission immediately after a pinger mission, pinger mission dependent on pinger mission). Recommend breaking the mission into three parts: pinger mission, circle mission, pinger mission. Thoughts?

Add Service to get depth from Image Pixel Location using the Lidar

Once we have found the object we are trying to find in the image we typically want to make some maneuver based on that object. ie, we need to know it's relative location in 3D space relative to the boat.

I will make a service that given a pixel location and camera extrinsic to the boat will use the lidar to tell where the object is. So in the mission system we just use one function to get the distance rather than interacting with the lidar directly.

Simulator does not have correct sensor locations

One thing holding me back from making serious use out of the simulator has been apparent differences between the location of sensors on Navigator in gazebo and the transformations publishes by tf.launch. Rather then trying to get these numbers just right, perhaps the simulator should just publish it's own TF's based on the boat model. A quick Google seems to show that this may even be the default behavior of a ros-ified gazebo.

Simulator identify & dock model is inaccurate

Considering we will have almost no testing with the identify and dock challenge before hawaii, we really need a good model for the sim. Right now the displayed symbols are too dark (like detect deliver used to be). The model should be fixed and make it easy to change which symbols are present

Thrusters config reset

The thrusters config get reset whenever the driver gets launched. This causes problems with the controller since the default acceleration is low.

Object misclassifications / Behaviors

Please leave as detailed descriptions of object misclassification you have noticed at the last few lakedays so we can get them resolved by competition. We should also discuss the desired behaviors of the object database, such as what to do when the type of an object changes.

I'll start

  • Some totem markers present in the acoustic pinger challenge are not identified (remain unknown) preventing the gates from being identified
  • Scan the Code is often identified as a totem

@maverick7170

Thrusters not giving feedback

Not sure if it's a hardware, firmware, or software issue. The thrusters won't return feedback information (we mainly just want battery voltage)

TF stereo messed up

hey

This is what stereo TF looks like right now. It looks like one stereo is right in front of the other.

I don't think this is intended. @DSsoto Is there a reason for this change?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.