LEGO Self Balancing Robot algorithms
I would get the algorithms & software used for the Lego NXT self balancing
robot that has been demonstrated by us Saha (spelling?) during the FIRST
robotics competition. I searched the site but can't find
information related to the algorithm or even the software. If you
could help provide this information I would be very happy.
Thank you, Jon Hauris
I'm not sure of which showed an Anu, but here is a link to a really nice solution of an individual balancing NXT using a gyroscope.
It is a student of the Fachhochschule Nordwestschweiz in Switzerland project. They have created two versions:
- Download VI for the NXT and let it run stand-alone
- Run the VI on the host computer by using a USB to the NXT connection (this way you see all the command parameter more it offers management port)
http://projekte6.FHNW.ch/Technik/EIT/Herbst2007/BruWid/
You will find screws, videos and more on the page of the project (in German).
Tags: NI Products
Similar Questions
-
Bluetooth connection with the Lego Mindstorms NXT robot
Hello
I got a license for Bluetooth Stack for Windows by Toshiba.
I try to connect to the Lego Mindstorms NXT robot: http://mindstorms.lego.com/en-us/default.aspx
But it does not work.
The connection seems to be good and NXT and PC to find them, but when I try to connect, the NXT said "the line is busy".
Is someone can tell me if he can get through this issue?
Toshiba and Lego have an agreement on the connection of the questions?
Thank you.Hello
Do you have Toshiba notebook or just use the Toshiba BT stack?
How to pass through this issue? Should anyone of us spent 250 Euros to buy it and test it at home? Dear oracid it's user forum and you can get help from someone who has the same home equipment and can help you with his experience.
Agreement between Toshiba and Lego in my opinion it is not problem. Any manufacturer who build material and want to use BT must know how it works. On the market of equipment, there are specific characteristics for each communication technology and what do we do Toshiba is to build and offer the specified material.
In your case, you must contact the Lego support and ask for help. they, no doubt, tested own stuff with different hardware platforms, the operating systems and software BT so Lego should have enough experience with own products.
-
Hello!
I'm working on an autonomous LEGO Mindstorm NXT robot who should use a webcam on a tripod, as a means of navigation through an obstacle course (video capture with webcam sent to the robot via Bluetooth) connected to a laptop-> analysis of photo/video on laptop-> algorithmic detection of movement/direction on laptop. For this I was looking for tutorials on Java Media Framework (JMF) and Java Advanced Imaging, but then fell on a JavaFX.
As I also discovered that JMF, apparently, was discontinued in 2001, I would have preferred to learn and work with a more current API that JavaFX, on paper, sounds like exactly that.
Before I delve more in JavaFX, can someone please give a quick recommendation on whether or not JavaFX would be good API for me to work with, given record criteria above? Also, if this is the case, what are some good resources to start, given that I intend to use it for?
Thank you! :)I once worked on a project like that, it worked by looking not for the video stream, but instead that he used a snapshot on the webcam feature to create images that can be analyzed. This was made to work through Java, somehow, but at the end of the native code was used to make the image loading and analysis because the performance was not good enough using ImageIO.
To your question: do not use JMF as indeed he died like a stiff. A simple google for 'java webcam' provides alternative methods, however, like this:
http://LTI-civil.org/
Post on the Forum with the example code:
-
the running program on myRIO with access to controls via wifi
I built balancing robot using myRIO. It does not perform very well and I can control it via wifi. I have now the Setup is simple enough: I can control and set PID and Kalman (accelerometer gyroscope) values. However, there are significant delays associated with the wifi connection. Therefore, if I am happy with my performance robot WiFi (all the controls value) and then I deploy my program on myRIO - changes in performance of robots since the program is run on myRIO now and there is no bottleneck related to sending the data back and forth between computer and myRIO.
To avoid this: is it possible to run the program under myRIO but have a link with all the necessary controls on wifi?
Kind regards
Drakon
Drakon,
Looks like you want to use your computer as a GUI that will read and write variables shared network your myRIO can also connect to.
http://www.NI.com/white-paper/5484/en/
It is quite common to all the treatment more push to a real-time controller while having a user interface on a computer that will basically just reading and writing shared variables. I don't know if this is what you were asking, could you explain what you are currently on your myRIO and your computer, problems you have with your current setup and you want to change?
-
Hello
I don't know how to work the breakpoint.
Since the LabVIEW is all about data flow, I was wondering I able to break a middle of the block to see the last block? For example, in my VI, he had three large blocks (means the piece of code), may be able to break 2 to see the link on Block1 and block3 to block? I don't think block2 and block3 relate directly, that why I ask can I break 2
Thank you
When you place a breakpoint, the program is paused the execution of that part of the code when, due to data flow, he meets the breakpoint. If you have other sections of your code that work independently they will be not be self-balanced.
Try it and see what happens. You can place, disable or remove breakpoints at will.
If a section of code is waiting for data from the section you have a breakpoint, too, depending on how it is structured, wait when you arrive on the breakpoint.
-
ENQ: TX - index for cars running
Hi all
The system configuration is node 2 11 GR 2 cars used by 11.5.10.2 application ERP on RHEL 5
Face claim to index to insert it on the big table with 27 million.
We have solved this after purging of data to reduce the lines to 4 million and rebuild the index.
I was against the approach to keep mind that the tree index B are self balanced do not rebuold
I have presentation Joel and JLewis comments on this wait event
QuestionsIndex stats before purge : SQL> select NAME,HEIGHT,BLOCKS,LF_ROWS,LF_BLKS ,LF_BLK_LEN,BR_BLKS,DISTI NCT_KEYS ,BTREE_SPACE,USED_SPACE ,PCT_USED from index_stats; NAME HEIGHT BLOCKS LF_ROWS LF_BLKS LF_BLK_LEN BR_BLKS DISTINCT_KEYS BTREE_SPACE USED_SPACE PCT_USED ------------------------------ ---------- ---------- ---------- ---------- ---------- ---------- ------------- ----------- ---------- ---------- OE_PROCESSING_MSGS_TL_U1 3 151040 27108882 149878 4276 422 27108882 644266144 516301179 81 Index stats After purge : SQL> select NAME,HEIGHT,BLOCKS,LF_ROWS,LF_BLKS ,LF_BLK_LEN,BR_BLKS,DISTINCT_KEYS ,BTREE_SPACE,USED_SPACE ,PCT_USED from index_stats; NAME HEIGHT BLOCKS LF_ROWS LF_BLKS LF_BLK_LEN BR_BLKS DISTINCT_KEYS BTREE_SPACE USED_SPACE PCT_USED ------------------------------ ---------- ---------- ---------- ---------- ---------- ---------- ------------- ----------- ---------- ---------- OE_PROCESSING_MSGS_TL_U1 3 14816 4763902 14556 5644 34 4763902 82618912 90654959 110 ASH data before data purge ----------------------- Top User Events DB/Inst: PROD/PROD1 (Apr 04 12:00 to 13:00) Avg Active Event Event Class % Event Sessions ----------------------------------- --------------- ---------- ---------- db file sequential read User I/O 32.36 9.69 read by other session User I/O 19.43 5.82 enq: TX - index contention Concurrency 11.29 3.38 enq: TX - row lock contention Application 10.78 3.23 CPU + Wait for CPU CPU 7.32 2.19 ------------------------------------------------------------- Top Service/Module DB/Inst: PROD/PROD1 (Apr 04 12:00 to 13:00) Service Module % Activity Action % Action -------------- ------------------------ ---------- ------------------ ---------- PROD NPIWIPLR 23.90 Concurrent Request 23.90 OMRSVORD 9.44 Concurrent Request 9.44 NPIIMGION 8.65 Concurrent Request 8.65 OEOIMP 4.53 Concurrent Request 4.53 OEXOEORD 3.83 FRM:B82562:NPI Cus 1.09 ------------------------------------------------------------- Top User Events DB/Inst: PROD/PROD2 (Apr 04 12:00 to 13:00) Avg Active Event Event Class % Event Sessions ----------------------------------- --------------- ---------- ---------- db file sequential read User I/O 30.41 5.62 CPU + Wait for CPU CPU 22.40 4.14 enq: TX - row lock contention Application 13.71 2.53 enq: TX - index contention Concurrency 8.24 1.52 read by other session User I/O 7.80 1.44 ------------------------------------------------------------- Service Module % Activity Action % Action -------------- ------------------------ ---------- ------------------ ---------- PROD NPIWIPLR 10.21 Concurrent Request 10.21 OEXOIMPT 9.60 FRM:B60221:NPI Cus 4.31 FRM:N11217:NPI Cus 2.75 FRM:N13737:NPI Ord 2.54 OEXOEORD 8.78 FRM:N11247:NPI Cus 3.80 FRM:C35809:NPI Cus 1.34 FRM:N11218:NPI Cus 1.20 NPIIMGION 6.67 Concurrent Request 6.67 NPISLIM 5.41 Concurrent Request 5.41 -------------------------------------------------------------
(1) even if it seems he does not index unique sequence but the claim is there?
(2) after reconstruction, we see pct_used > 110, what will happen?
(3) prior use was 81 per cent, is higher and would lead to node splits for large indsddexes?
Concerning
KGKG says:
Face claim to index to insert it on the big table with 27 million.
We have solved this after purging of data to reduce the lines to 4 million and rebuild the index.
I was against the approach to keep mind that the tree index B are self balanced do not rebuoldFirst point to note - if you delete M 23 rows in a table with 27 million lines, it is probably a good idea to rebuild the table and the index to recover the space empty, unless you wait another 20 million lines to be arriviing soon and re-use of space very soon. In fact, you can use the dbms_redefinition package to extract the data you want to keep rather than a deletion. Alternatively you could actually marked as unused as an index on the table that you can get away with before to delete data and (optionally) make an area of narrowing.
>
Index before you purge statistics:
SQL> select NAME,HEIGHT,BLOCKS,LF_ROWS,LF_BLKS ,LF_BLK_LEN,BR_BLKS,DISTI NCT_KEYS ,BTREE_SPACE,USED_SPACE ,PCT_USED from index_stats; NAME HEIGHT BLOCKS LF_ROWS LF_BLKS LF_BLK_LEN BR_BLKS DISTINCT_KEYS BTREE_SPACE USED_SPACE PCT_USED ------------------------------ ---------- ---------- ---------- ---------- ---------- ---------- ------------- ----------- ---------- ---------- OE_PROCESSING_MSGS_TL_U1 3 151040 27108882 149878 4276 422 27108882 644266144 516301179 81 Index stats After purge : SQL> select NAME,HEIGHT,BLOCKS,LF_ROWS,LF_BLKS ,LF_BLK_LEN,BR_BLKS,DISTINCT_KEYS ,BTREE_SPACE,USED_SPACE ,PCT_USED from index_stats; NAME HEIGHT BLOCKS LF_ROWS LF_BLKS LF_BLK_LEN BR_BLKS DISTINCT_KEYS BTREE_SPACE USED_SPACE PCT_USED ------------------------------ ---------- ---------- ---------- ---------- ---------- ---------- ------------- ----------- ---------- ---------- OE_PROCESSING_MSGS_TL_U1 3 14816 4763902 14556 5644 34 4763902 82618912 90654959 110
(1) even if it seems he does not index unique sequence but the claim is there?
(2) after reconstruction, we see pct_used > 110, what will happen?
(3) prior use was 81%, it is higher and would lead to node splits large index?One of the comments in one of the blogs I wrote on the index highlights a key problem: http://jonathanlewis.wordpress.com/2009/07/20/index-quiz-1/#comment-33897
Note the LF_BLK_LEN in both cases: it is well below the 8000 bytes you get in general for an index btree, built in a block size of 8 KB. This is because the ITL list in some of the blocks sheet has grown to manage concurrent changes to the blocks, and the command ANALYZE took the biggest list ITL as typical of ALL blocks in the index. 110% and 81% are a side effect of this as Oracle took the used_space and the number of lf_blks * lf_blk_len to calculate the percenage: for example 90654959 / (5644 * 14556) = 1.1035You have created the index with a very large INITRANS, either a number of pads of sheets have already been under pressure concurrent insert and hit the "ITL Explosion" bug, losing a lot of inputs ITL which can not be recovered without some sort of index maintenance.
You said that the index is not based on a sequence - but is it based on some form of monotonous increasing value (for example, a timestamp), you don't need a sequence to hit the problem you just need values that continue to increase. The problem is the number of basis 8767925 bug, fixed in paragraph 12.1 with backports available for some versions.
Concerning
Jonathan Lewis -
just for fun. I play with a code, but does not work with the second member function f_deposit. The opening balance of $1,000 and a subsequent filing 200 will give me a result 1200. can someone with a better coding can change this please.
-run this
SET SERVEROUTPUT ON
DECLARE
V_ACCOUNT_OBJ ACCOUNT_OBJ;
BEGIN
V_ACCOUNT_OBJ: = ACCOUNT_OBJ (1000);
V_ACCOUNT_OBJ. BALANCE: IS V_ACCOUNT_OBJ. BALANCE;
DBMS_OUTPUT. Put_line ('Account balance is' | v_account_obj.f_DisplayBalance ());
DBMS_OUTPUT. Put_line ('Deposit account is' | v_account_obj.f_Deposit (200));
END;
/ }
{DROP SCOTT TYPE. ACCOUNT_OBJ;
CREATE OR REPLACE TYPE SCOTT. ACCOUNT_OBJ IS OBJECT
(NUMBER OF THE BALANCE,
F_DisplayBalance RETURN of the FUNCTION MEMBER VARCHAR2.
F_Deposit RETURN NUMBER of MEMBER FUNCTION
);
/
DROP TYPE BODY SCOTT. ACCOUNT_OBJ;
CREATE OR REPLACE TYPE BODY SCOTT. ACCOUNT_OBJ AS
-display of balance
FUNCTION MEMBER f_DisplayBalance
RETURN VARCHAR2
IS
BEGIN
RETURNING the balance + 0;
END f_DisplayBalance;
-deposit + balance
FUNCTION MEMBER f_Deposit (NUMBER deposit_in)
RETURN NUMBER
IS
v_balance NUMBER;
BEGIN
RETURN v_balance = balance + deposit_in;
END f_Deposit;
END ;}Here's a possible solution (because you change SELF you must declare it as OUT in the description):
SQL> DROP TYPE ACCOUNT_OBJ; Type dropped. SQL> SQL> CREATE OR REPLACE TYPE ACCOUNT_OBJ IS OBJECT 2 (BALANCE NUMBER, 3 MEMBER FUNCTION f_DisplayBalance RETURN VARCHAR2 , 4 MEMBER FUNCTION f_Deposit(self IN OUT ACCOUNT_OBJ, deposit_in NUMBER) RETURN NUMBER 5 ); 6 / Type created. SQL> show errors No errors. SQL> SQL> SQL> SQL> CREATE OR REPLACE TYPE BODY ACCOUNT_OBJ AS 2 --display balance 3 MEMBER FUNCTION f_DisplayBalance 4 RETURN VARCHAR2 5 IS 6 BEGIN 7 RETURN balance; 8 END f_DisplayBalance ; 9 10 -- deposit + balance 11 MEMBER FUNCTION f_Deposit (self IN OUT ACCOUNT_OBJ, deposit_in NUMBER) 12 RETURN NUMBER 13 IS 14 BEGIN 15 self.balance := self.balance + deposit_in; 16 RETURN self.balance; 17 END f_Deposit; 18 19 END; 20 / Type body created. SQL> show errors No errors. SQL> SQL> SET SERVEROUTPUT ON SQL> SQL> DECLARE 2 V_ACCOUNT_OBJ ACCOUNT_OBJ; 3 BEGIN 4 V_ACCOUNT_OBJ := ACCOUNT_OBJ( 1000 ); 5 DBMS_OUTPUT.PUT_LINE( 'Balance on the account is ' || v_account_obj.f_DisplayBalance () ); 6 DBMS_OUTPUT.PUT_LINE( 'Deposit on the account: new balance is: ' || v_account_obj.f_Deposit (200) ); 7 DBMS_OUTPUT.PUT_LINE( 'Balance on the account is ' || v_account_obj.f_DisplayBalance () ); 8 END; 9 10 / Balance on the account is 1000 Deposit on the account: new balance is: 1200 Balance on the account is 1200 PL/SQL procedure successfully completed.
-
What load balancing algorithm using the LRT224?
I was wondering if anyone knew what algorithm of load balancing the LRT224 use since I can't find it anywhere and the telephone support line does not. It is very similar to the RV320 of Cisco that uses Weighted Round Robin, but I don't think that the Linksys uses this algorithm because it includes speeds of bandwidth unlike the cisco that does not work. and if anyone can also check that this unit doesn't package base rather than load balanced session load balancing. as much information as possible would be appreciated!
The standard of the LRT load balancing is alternated:
Example:
1 TCP connection to website-online WAN1
2 TCP connection to website2.com-online WAN2
3 TCP connection to website2.com-online WAN1
4 TCP connection to website1.com-online WAN2
If you enable the feature (recommended) sticky load balancing load balancing is done on a base per session instead of the base of the connection.
Example:
1 TCP connection to website-online WAN1
2 TCP connection to website2.com-online WAN2
3 TCP connection to website2.com-online WAN2
4 TCP connection to website1.com-online WAN1
-
Hi Experts:
I designed and developed a data form in HFM to calculate the amount of the MARGIN in the inventory of the beneficiary company (when the beneficiary company received an intercompany partner inventory).
Someone at - it experience or ideas how to write a rule (or use the IC logic) in order to automatically remove this amount calculated IC deduct cost of sales?
Cost of goods sold in IC will be the same at the margin in the inventory (but it is not vented separately in any account - just buried in the DAC).
Does anyone have suggestions for a rule/account/IC logic that might automatically enter this calculated balance in the inventory and remove from the inventory as well as reduce the IC_COGS?
We prefer to do this automatically if possible elim entry. Is it possible to make a log entry for 'auto' that could enter these amounts? Or we could use a rule to fill an IC account so that it would be self eliminate?
Should implement us a part of the elim account and automatically fill through rules, then leave to use HFM it is built in the elim IC logic? The problem is that this entry occurs on a single entity, but I know that it is possible to set IC accounts so that you can book a balance with yourself.
How do I get this elim entry automatically in HFM?
Inventory
$1,000 that it equals HFM.
IC_COGS
$1,000 that will be equal to above
Thank you
MarkHello. Try this. Label it as an intercompany account (use Y instead of R) and give it an account card. Place the account the decision-making in the WHEELS. Basically you do a unilateral elimination.
Elimination of profit in inventory isn't easy, and if this fixes things for you, then, you are on the easy side of it.
Kind regards
Eric
-
Hi, I have 2010 LabView and NXT module for labview 2010
I runnig a bit of line follower robot a GUI (a XY chart in the front panel) programmed in Labview, but when I disconnect the USB my robot Don t work at all, so I guess that the program is running on the computer and send just kind of commands to the robot, but I want to do an autonomous robot because you know a litle Dingo goes behind the robot my laptop whit, also I Don t have the dongle Bluettooth =)
Is it possible to:
(1) make your NXT code in Labview
(2) download the code for the NXT brick
(3) disconnect the USB cable from the computer and the NXT brick
(4) run the program without a computer
I m sure it s posibble and maybe this is a silly question but I can´t find a way to make it work by miself, thanks for the answer! = D
Best regards
Diego
Hi Diego,.
You must change the "target" of your program of line follower.
With your connected NXT brick, go in the file menu of your program and select "target to NXT.
The lower left corner of your window should turn on orange to display the name of the NXT that you will shoot.
You can right click it to switch/scan nxts as well.
Once you target, you can use the button to compile, download and run your program.
-Ethan
-
Always load balancing algorithms "static mapping vSwitch port for Teddy adapter?
I'm looking for a LBT for my move to 10 G ethernet and see this KB
It is said
"""
In vSphere 4.0, there are three strategies:
- Route based on the originating Virtual Port ID
- Function hash IP route
- Route in function interference source to the MAC
These three policies provide a static mapping of vSwitch for Teddy adapter port.
"""
I always thought that IP hash would allow a virtual machine to use more than one bear, so she sent to several IP addresses, am I wrong or the Ko?
Tom
Maybe it is not described as clearly as it could be. However, the traffic of a VM (IP address) to a specific target (IP address) is always sent over the same bear. That's what the article described as static.
Since you are looking to balance the load. Have you already taken a glance to vSphere 4.1. It offers "focused on the burden of reunification." Maybe you want to read http://blogs.vmware.com/performance/2010/12/vmware-load-based-teaming-lbt-performance-.html for details and performance.
André
-
How to use the path generated by a star to guide the robot to move?
I now know how to use a star planning on Voronoi path and I can run this program successfully. \
However, my problem now is how I can use the path data (generated by the planning algorithm * path) to guide the robot rolling along this path? Well, I guess I can get a set of points (denoted by x and there contact information) of the path and use those points to guide the robot?
can someone please help?
Thank you very much
You must only post the question once.
-
LABVIEW NXT LEGO firmware issue
Hello world
I'm trying to connect with labview NXT LEGO mindstorm robot, I installed the latest version of LABVIEW toolkit. but when I tried to connect the NXT it gives me this error that I do not understand why, because I have the latest version of the toolkit installed on my PC with LABVIEW 8.6 and updated in NXT firmware to 1.05. even if I tried with 1.04 and 1.02, but it is still giving me the same error (attached). anyone has idea what's wrong on my side?
Thank you
forward
Concerning
Hussain...
The latest version of NXT kit is 2.0, which was released recently. If you use this version of the Toolkit, the firware version should be 1.26. If you have installed NXT toolkit 2.0, you can update your firmware 1.26 using tools > NXT Modules > firmware update.
To download 2.0, please follow the instructures on this page:
http://zone.NI.com/DevZone/CDA/tut/p/ID/4435
Please let us know if this solves the problem.
-
How does the floodfill algorithm?
Hey people:
I am currently working on the design of a car of little robot for a Micro Mouse contest. To program, I found that the best way to solve a maze using the Flood Fill algorithm. I understand the concept of it - the mouse has to move always to a smaller number, until it reaches the Center, which is represented by a zero - but I still don't understand the update it should do as the mouse moves through the maze. Maybe someone has a good explanation or maybe an example for this so I understand better. If you need more information, feel free to ask.
The help is very appreciated.
-Sergio
Thanks BCho, but apparently there are two flood-fill algorithms. Described in the son you sent is used to change images or draw. One I need is used to program a 'mouse' so that it can reach the center of a maze with no help.
After watching a lot, I finally found a good web page that has a great explanation: http://www.micromouseinfo.com/introduction/mfloodfill.html
Thanks for the help anyway.
-Sergio
-
BlackBerry Storm 2, Bluetooth and Lego NXT
RIM has developed an application that allows the Storm 2 to remote control a robot Lego NXT via Bluetooth. It has been the demonstration had conferences in 2009 and 2010. The application has already been posted\shared for the community? Or is it available at retail?
The 2009 BlackBerry® Developer Conference participants had the opportunity of robots LEGO® MINDSTORMS race using smartphones BlackBerry Storm2 for a chance to win fabulous prizes!
http://www.YouTube.com/watch?v=cV5JdVeDCCc&feature=related
Explanation of day developer Robot at the Mobile World Congress 2010, Barcelona
LEGO robots controlled by the Smartphones from BlackBerry Storm 2http://www.YouTube.com/watch?v=DagWt-xX_dY&Nr=1
Welcome on the support forums.
to my knowledge, it has been without this release.
You can write to [email protected] to ask them if they maybe want to share code. or, if you know who was responsible for this you can try to contact them directly.
Maybe some fun code to see, I guess, but I don't know if it would be very useful
Maybe you are looking for
-
How can I send that email to a certain number of people and that their name appears.
When I send an email to a certain number of people, I want to show him that he went to them, but none of the other persons, when they receive it.
-
Satellite P300 with XP hangs at the screen "starting windows."
I recently bought the Satellite P300 - 01 and had XP installed on it. I have fixed all the problems except for the question, that I'm going to start. When I turn on the laptop it loads everything flashes on the login screen and then hangs at 'startin
-
Free download Flash Player to play Club Penguin
How can I download Flash Player? I'm unable to learn how to play Club Penguin
-
Computer model gateway laptop MT 6707 - Windows Vista family premium has a blue screen with the error code of the BIOS after FireFox loading - after a reboot, that it does not start. Now power turns on but the screen is black. The computer none made
-
Connection of superelevation in EA6500
HelloI have some problems with to connect my ea6500 for smart WiFi service.I have the valid password to my router and all very well when the router will not connect to internet, but when I connect it to the internet, I can not connect to router. I ge