loading
 
Mindstorm project
Panayiotis Mousarris from United Kingdom  [20 posts]
16 year
  I have to program a robot for my final year project. I am using the Nxt kit and with a camera. I will not be using the ultrasonic sensor. The robot must be able to find and pick a ball, pass through an area of obstacles ( of which the size and color can be known ), and finally find a target ( of known size and color ) to release the ball.
  I am confused as to how I can accomplish this efficiently and if roborealm has any features that will make the development a lot easier. I am looking to find ways to accomplish this project, like if mapping is a good choice and if possible with a camera and how, other better alternatives, how to easily avoid obstacles estimating the direction it must keep travelling where the destination will probably exist. My image processing knowledge is limited, as well as of any extra functions I will need to find and use with java programming that may perhaps be required for the AI techniques that I will use.
  Any solutions are welcomed. Just asking if someone can shade the light so I can start researching on the ways of how to do this.
Anonymous 16 year
hey u have come to the right place.
yes this is xactly possible using RR, and it's easier than u think.
just go through the forum, there is a lot of help for path planning , and about object dtection you could see the given examples.


hope it helps.....
Panayiotis Mousarris from United Kingdom  [20 posts] 16 year
Yes, but from what I see, the path planning module of RR only works in the case of having picture taken from top level of the robot's enviroment. So, I don't think that it will be a solution in my case. My camera will be facing like a head on front of the robot. Other than that, could you suggest alternatives? Or maybe I am missing something.
Anonymous 16 year
Panayiotis,

The path planning module is really only to be used by static overhead cameras. What you are looking to do is easier since the camera is onboard the robot. The tutorial at

http://www.roborealm.com/tutorial/ball_picker/slide010.php

shows how to control the NXT to do something very similar to what you want. Have a look through that tutorial and let us know if you need any further explanations that may differ from your project.

STeven.
Panayiotis Mousarris from United Kingdom  [20 posts] 16 year
  The tutorial is helpful. I know how to search for the ball, make the robot take it and when the robot is near it's destination place the ball at the correct spot, just like in the tutorial.
  Still, I have one remaining problem. Before the robot will be able to find it's destination, it will need to pass a few obstacles ( green objects laying around ), by not hitting them and driving through, in order to find the destination. How can that work?
Anonymous 16 year
Panayiotis,

Avoidance is essentially the opposite of tracking. I.e. if you see a green object then move away instead of towards it. Alternatively you can detect everything that is NOT green and track towards that as you will need to do in order to track the ball.

Note that the logic here is probably the easy part. We're curious how you intend to move the camera out of the way of the ball such that the robot can actually see the floor? Have you managed to work out the mechanics yet?

STeven.
Panayiotis Mousarris from United Kingdom  [20 posts] 16 year
  I am thinking of building my robot to just have a space where the ball can go, as when the robot moves straight to it and pick it. Something like the grabbers of the tribot tutorial, but instead, I won't have them to grab the ball, just remain fixed at a position wide enough to place the ball inside and stop the ball from moving outside left or right. I probably won't ever need to have the robot move backwards so I don't think there will be a problem with being assured that the ball remains in place. Once the robot has placed the ball inside the hands of the robot, I suppose the robot will be able to see the floor, and also since I may build the hands to be smaller in length. Please correct me on this idea if I am wrong.
  Before we continue discussing other problems, I need to be re-assured that certain things can be done with the software. First, I believe that I should be able to get the coordinates of x and y of an object inside my main program in java by using the API. Second, can I track more than 1 object at a time? Since the obstacles will be more than 1 object near to each other, I think this will be necessary to estimate where the robot should go in order to avoid them. Third, is there a way to get the variables from the rotation sensors already existing on the nxt motors into my main program in java and how?

Thank you
Anonymous 16 year
Panayiotis,

First off, RoboRealm is distributed as a free application and we make no assurances whatsoever as to the capabilities and functionality of the application. You use it at your own risk and need to make your own assurances of what you think it can accomplish for your project. We take no responsibility in this aspect. You are welcome at any time to stop using RoboRealm and search for alternative solutions such as numerous opensource solutions that can be found at http://www.roborealm.com/links/vision_software.php or other commercial applications (that require payment) that do provide assurances with the sale of their product.

Having said that, yes, it sounds like your robot plan can work. The camera should be able to view over the ball and still see the floor.

1. You should be able to get the x,y cog coordinates using the Java version of the API.
2. See the blob_filter or geometric analysis module which can track/filter more than one blob at a time. We'd need to see a picture in order to determine if the robot can figure out where to go based on the obstacles. This will really depend on how well the arena is lighted and the surface colors/texture that the robot is traveling over.
3. You should be able to grab the rotation number using the NXT interface and assign that value to a variable. This variable will be accessible just as the cog variables are.

Again, we make no assurances as to what the application can do. I suggest you spend some time exploring the documentation and other tutorials and determine on your own if it can support your needs. We, of course, aim to help guide users towards their goals but are not required to respond to questions nor responsible for the success/failure of their projects.

STeven.
Anonymous 16 year
  I acknowledge what you said and thank you for your help. I plan on using the iejos nxt java to develop my software on the pc using the icommand api that will communicate via bluetooth with the robot. Can I use roborealm's java api within the icommand api to control roborealm?

Thank you

This forum thread has been closed due to inactivity (more than 4 months) or number of replies (more than 50 messages). Please start a New Post and enter a new forum thread with the appropriate title.

 New Post   Forum Index