Giter VIP home page Giter VIP logo

robocup's Issues

Review NUData and NUActionatorsData

These classes kind of bloated. There's a fair bit I'm not too fond of here.
(a bunch of stuff about the Actionators in general looks a little questionable at the moment)

I feel that we should review these classes after Robocup, and look into making them neater and clearer.

Find robust improvements for RANSAC

Our RANSAC implementation is amazingly good at what it does, and we should capitalize on it by continuing to improve it in various ways. List any ideas you have on this issue, as it will help us in our search for better ways of doing RANSAC type stuff.

One paper I came across that looks like it could be useful is this one:
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.134.4816
It already has an example of circle-finding, and fits closely with RANSAC's sample-and-see methods.

Vision not taking into account head pitch/yaw

You can test this by going into zombie mode and moving the head and watch the localisation of the ball move on NUbugger/NUview.

Very important for this to be fixed before RoboCup!

Ball detection needs improving.

Currently even given a perfectly classified ball the detection method can fail to correctly fit the bottom - this is a big issue as this leads to large errors in distance calculations.

Robot #4 - Motor Issues

Motors id#1 (R_SHOULDER_PITCH) and id#11 (R_HIP_PITCH) of robot No.4 aren't working.
They're not stuck + i can move them around fine, but they return errors and dxl_monitor fails to connect to them:

[ID:200(SUB_BOARD)] scan

 Check ID:1(R_SHOULDER_PITCH)     ... FAIL
 Check ID:2(L_SHOULDER_PITCH)     ... OK
 Check ID:3(R_SHOULDER_ROLL)      ... OK
 Check ID:4(L_SHOULDER_ROLL)      ... OK
 Check ID:5(R_ELBOW)              ... OK
 Check ID:6(L_ELBOW)              ... OK
 Check ID:7(R_HIP_YAW)            ... OK
 Check ID:8(L_HIP_YAW)            ... OK
 Check ID:9(R_HIP_ROLL)           ... OK
 Check ID:10(L_HIP_ROLL)          ... OK
 Check ID:11(R_HIP_PITCH)         ... FAIL
 Check ID:12(L_HIP_PITCH)         ... OK
 Check ID:13(R_KNEE)              ... OK
 Check ID:14(L_KNEE)              ... OK
 Check ID:15(R_ANKLE_PITCH)       ... OK
 Check ID:16(L_ANKLE_PITCH)       ... OK
 Check ID:17(R_ANKLE_ROLL)        ... OK
 Check ID:18(L_ANKLE_ROLL)        ... OK
 Check ID:19(HEAD_PAN)            ... OK
 Check ID:20(HEAD_TILT)           ... OK
 Check ID:111(UNKNOWN)            ... OK
 Check ID:112(UNKNOWN)            ... OK
 Check ID:200(SUB_BOARD)          ... OK

Things I tried:

  • recompiled the darwin.a library on the robot (with debugprinting turned on in CM730.cpp):
    • showed that motors 1 and 11 were returning RX_TIMEOUT
  • using fimrware_installer to reinstall the firmware for the motorboard + all motors:
    • motors 1 and 11 were simply skipped during the install. Allother motors installed just fine.
  • Using roboplus on windows + the USB2Dynamixel adapter to checkthe motors individually:
    • (I couldn't get the adapter to find any motors at all. Imust be doing something wrong there)
  • Unplugging both legs before the hip to check whether motor 1would work while motor 11 wasn't present:
    • motor 1 still failed in dxl_monitor

#3 Motor Offsets

Robot 3 will now run the binary fine, however there it something wrong with at least 1 motor in his left leg.

The torque is on, but the leg is at a completely wrong angle (probably ~30-40 degrees out), suggesting that the motor offsets are wrong?

The rest of him seems to function perfectly fine.

Better distance methods for vision are required.

This includes multiple things:

  • Width based measurements are about to be disabled until I get the new transformer class up and running fully leaving us only distance to point.
  • In many cases the base of the goal cannot be seen, in these cases a width measurement is more accurate as 90% of that time the goal is fairly large in the screen.
  • In the even that both the base and the side are obscured (i.e. the goal is on the bottom left or bottom right of the image) we have no way to determine distance and the goals should be thrown out.

Extend the Config System to allow users to control how configurations are stored

The Config System currently stores configurations on disk in a single colossal file.
This means that saving the current configuration to disk takes a long time - no matter how few parameters have actually changed.

A planned extension to the Config System is to allow users to choose entire branches of the tree that should be stored in their own file.

This would allow faster saving (and potentially, loading) of configurations when only a small number of parameters in the tree have changed - which could be useful for e.g. machine learning applications.

Turning the nubots account into an organisation

I just noticed the nubots account is actually just a normal account.

I suggest turning it into an organisation! That way we can have administrative rights and teams and all things that are good.

It allows us to manage admins and give (or take) specific permissions out to other users, rather than all logging in under the nubots account and making changes there.

There is a button that turns it into an org so it isn't a big deal.

Thoughts?

Fix Motor Communications

Fix delay and data corruption issues with motor communication, and give informative errors when something is wrong.

Need cleaner removal checks - currently in RobocupHacks

This is not urgent as the checks that are being done are valid (i.e. balls that are inside the quadrilateral found for a goal are being removed) but this should be done in a cleaner way, perhaps a post processing method that considers all detected object types as a collective rather than purely finding each one individually.

Fix KickScripts

fix up our scripts so we can script using IK to make balance easier.

Robots track ball incorrectly

The robots tend to keep the ball at the very edge of their view when they're trying to look at it.
(This is thought to be caused by a change in the way that localization reports the ball position)

The robot should keep the ball centered horizontally within it's view when it is attempting to track it.

Test

This is a test issue.

Fix camera issue of Robot 4

Occasionally (always?) has green horizon segfault (i.e. camera not connected). Probably needs a new camera.

Robot 1 is crashing whenever code is run

error.log

DarwinCamera::loadCameraOffset(). Unable to load camera offset.
ColourTransitionRule istream operator: UNKOWN_COLOUR match ignored.
NUCameraData::LoadFromConfigFile(). Unable to load camera specifications.
TERMINATION HANDLER: SIGSEGV
./nubotbin(_ZN5NUbot18terminationHandlerEi+0xbf) [0x80cc8af]
[0xb7751400]
./nubotbin(_ZN5Robot17SensorReadManager24FilterLimbSensorFailuresERSt6vectorIiS$
./nubotbin(_ZN5Robot17SensorReadManager31GetFilteredLikelySensorFailuresEPSt6ve$
./nubotbin(_ZN13DarwinSensors30copyFromHardwareCommunicationsEv+0x113) [0x82c13$
./nubotbin(_ZN9NUSensors6updateEv+0x2f) [0x80d107f]
./nubotbin(_ZN15SenseMoveThread3runEv+0x2d) [0x80f62ed]
./nubotbin(_ZN6Thread9runThreadEPv+0xf) [0x81556af]
/lib/i386-linux-gnu/libpthread.so.0(+0x6d4c) [0xb7604d4c]
/lib/i386-linux-gnu/libc.so.6(clone+0x5e) [0xb740adde]

When the code is run on 1 the robot often stops responding and reconnection is required.

OS + VM needs updating

Being well behind the latest, I'm sure everyone would love these to be updated to a recent OS just so we can use package managers.

Current candidate is Xubuntu. I think Gentoo was also suggested.

If anyone else has a suggestion, please say!

Upgrade strategy:

  • backup the VM
  • install a new VM using Xubuntu and get compiling working
  • backup the robot (create a disk image)
  • install a new OS on the robot
  • get the compiled binary working

Catch camera connection issues in DarwinCamera not in Vision-GreenHorizonCH

When the camera is broken, disconnected or otherwise inaccessible we get the following error in Vision.

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb23cbb70 (LWP 3108)]
0x081a4f76 in GreenHorizonCH::calculateHorizon() ()

The DarwinCamera class needs to more correctly detect these faults and give useful warning messages instead of allowing Vision to receive unallocated pointers.

Important to fix, but not urgent for RC2013 as most members currently know the root cause of the issue, and it doesn't occur in playable scenarios (i.e. if this segfault happens we couldn't have been playing anyway as we have no camera stream).

Update behaviour

Our robots were really dumb last year. We need at least better lost and team coordination behaviour. This probably depends on vision/localisation.

Robot 1 doesn't load OS

Could not SSH into the robot.
Connected a monitor via the HDMI port to see what was happening.
Was presented with the GRUB rescue prompt:

GRUB loading.
error: out of partition
grub rescue>

We're not using Git Issues (at all)

Using this issue system seems fairly worthwhile. It could help keep track of important things that more than just one or two team members need to know about, + seems more efficient/reliable than leaving post-it-notes on things / the lab's blackboard / facebook (although they all have their uses).

Any thoughts?

Do Walk Learning

We need to do walk learning on the robots to stop them from falling over.

Extend Configurable objects to allow a set of dependent paths

A configurable object may only need to subscribe to changes in small sets of parameters stored in separate parts of the config tree.

Currently, the Configurable object would be forced to subscribe to all changes below some mutual ancestor of the parameters it needs (which, in the worst case, is the root node), causing it to be updated unnecessarily often (every time any parameter is changed, in the worst case).

A performance improvement would be to allow a set of base paths, so that the Configurable can subscribe only to what it needs.

CPU clock slows when on battery.

As discovered today, the CPU/Ubuntu slows itself when taken off mains power (presumably to save battery power). It caused a very effect on the number of frames received by NUbugger per second (~25-30 to 3-6).

This needs to be further investigated into regarding how to disable it and how long the robot can last on full speed.

Implement additional validation for the Config System

The Config System is missing a number of validation checks.
Until these (and probably others) are implemented, it will be possible for users to corrupt the robot's configuration state just by calling the Config System's interface methods.

Missing checks include:

  • Creating parameters that aren't leaf nodes of the tree,
  • Creating parameters whose paths contain the names of existing parameters.
  • Reading interim paths as parameters (although this will almost always fail anyway).
  • Storing parameter names containing dots.
  • Setting a range on a parameter whose current value does not satisfy the new range.

(If additional necessary checks are identified, they should be added to this issue)

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.